# زبان های اسکریپتی > PHP > حرفه ای: Sarkesh فریمورک PHP ایرانی

## morrning

فریمورک سرکش به خانه خود مهاجرت کرده و این تایپینگ به دلیل تغییر کاربری به روز نخواهد شد.




برای ورود به وب سایت رسمی پروژه این پیوند را دنبال کنید.


با تشکر
بابک علی زاده

----------


## morrning

Hip HOP
 :تشویق: 
 SARKESH

----------


## morrning

Hip HOP
 :تشویق: 
SARKESH

----------


## Javidhb

سلام،

فقط یواش یواش روی documents هم کار کنید، تا هر کی دانلود میکنه زودتر با روند کار و ... آشنا بشه.

با آرزوی موفقیت بیشتر برای زندیق و برنامه نویسش :چشمک:

----------


## morrning

Hip HOP
 :تشویق: 
SARKESH

----------


## morrning

Hip HOP

SARKESH

----------


## morrning

Hip HOP
 :تشویق: 
SARKESH

----------


## morrning

Hip HOP
 :تشویق: 
SARKESH

----------


## morrning

Hip HOP
 :تشویق: 
SARKESH

----------


## morrning

Hip HOP
 :تشویق: 
SARKESH

----------


## morrning

Hip HOP
 :تشویق: 
SARKESH

----------


## godofphp

ببخشید دارم ازتون ایراد میگیرم اما فرم ورک شما از نظر مهندسی کاملا مردوده چون اصلا از یه الگوی معماری استفاده نمیکنه
پس امنیت و سرعت واسه کارای بزرگ صفره !!!
 هیچ پترنی در نظر گرفته نشده !!! حداقل از پترن mvc استفاده میکردید !
من که تست کردم فرمورک که حالا نمیشه گفت فرم ورک بهتره بگم برنامه شما ! خیلی مبتدی هست و کسی که قصد داره همین رو واسه سایتش استفاده کنه میتونه به راحتی یه نسخه مثل این اپلیکشن تولید کنه و استفاده کنه که مزایای زیادی هم واسش داره 
امیدوارم بیشتر تلاش کنید و یه چیز نوین و قوی ببینیم 
موفق باشید

----------


## morrning

Hip HOP
 :تشویق: 
SARKESH

----------


## godofphp

موفق باشید . من تنها قصد داشتم با نظر خودم کمک کنم بیشتر رو استانداردها کار کنی . اگه میخوای گسترشش بدی و پیشرفت کنی کل پروژت رو شی گرا کن و mvc  هم که مثل آب خوردنه و همه بلدند رو روش کار کن
جدیدا یک فرم ورکی به نام گتنا که تاییدیه شورای عالی انفورماتیک هم گرفته منتشر شده تو ایران من باهاش خیلی کار کردم ببینم چی داره .
 آقا ما فهمیدیم طرف اومده همون فرم ورک کدایگنایتر رو برداشته نام همه کلاساشو تغییر داده و دو سه تا کلاس جدید بهش اضافه کرده . من نمیدونم اینا تو شورای عالی انفورماتیک .... میزارن که به همه تاییدیه میده ؟ 
همه شرکتها فرم ورکهای مورد استفاده خودشونو تغییر میدن و چند کلاس بهش اضافه میکنن . قرار بگیم اونا فرم ورک جدیدی ساختند ؟
جان من برید دانلود کنید با کدایگنایتر مقایسش کنید میمیرید از خنده

----------


## morrning

Hip HOP
 :تشویق: 
SARKESH

----------


## morrning

Hip HOP
 :تشویق: 
SARKESH

----------


## morrning

Hip HOP
 :تشویق: 
SARKESH

----------


## morrning

Hip HOP
 :تشویق: 
SARKESH

----------


## morrning

Hip HOP
 :تشویق: 
SARKESH

----------


## morrning

Hip HOP
 :تشویق: 
SARKESH

----------


## morrning

Hip HOP
 :تشویق: 
SARKESH

----------


## morrning

Hip HOP
 :تشویق: 
SARKESH

----------


## morrning

Hip HOP
 :تشویق: 
SARKESH

----------


## morrning

Hip HOP
 :تشویق: 
SARKESH

----------


## morrning

Hip HOP
 :تشویق: 
SARKESH

----------


## morrning

Hip HOP
 :تشویق: 
SARKESH

----------


## morrning

Hip HOP
 :تشویق: 
SARKESH

----------


## morrning

Hip HOP
 :تشویق: 
SARKESH

----------


## mahdirabbani

سلام و خداقوت خدمت شما.
می شه بفرمائید هدفتون از ساختن این فریمورک چی هست؟

----------


## morrning

Hip HOP
 :تشویق: 
SARKESH

----------


## refugee

سلام وقت بخیر و خسته نباشید دوست عزیز ؛ اول اینکه سپاس گذارم وقتتون رو گذاشتین و یک مجموعه فریم ورک کاملا ایرانی نوشتید . انشالله اختصاصی تر کنید .دوم اینکه این فریم ورک چی است ؟ من که سر در نیاوردم از سرکش شما ...سوم اینکه اگه ایرانی است چرا همه چیزش انگلیسی است ؟ http://s5.picofile.com/file/81143341...th_captcha.png نمیخواهم ایراد  بگیرم فقط خواستم سوالاتی که تو ذهنم بود و بیان کنم . سپاس

----------


## MRmoon

دقت کرده باشین یه جا داره برا تغییر زبان.

----------


## morrning

Hip HOP
 :تشویق: 
SARKESH

----------


## morrning

Hip HOP
 :تشویق: 
SARKESH

----------


## morrning

Hip HOP
 :تشویق: 
SARKESH

----------


## ramtin2025

سلام
امیدوارم پروژه موفقی باشه و همیشه شاهد پیشرفتتون باشم
برای ترجمه توصیه میکنم از سایت http://crowdin.net استفاده کنید که بصورت آنلاین همه بتونن کمک کنن و از دوباره کاری و ... جلوگیری بشه

موفق باشید

----------


## morrning

Hip HOP
 :تشویق: 
SARKESH

----------


## morrning

Hip HOP
 :تشویق: 
SARKESH

----------


## morrning

*پلاگین ها در سرکش چطور کار میکنند؟
*
برای تعریف پلاگین اینطور میشه گفت که مجموعه ای از چند فایل هست که یه سری امکانات اضافه به هسته فریمورک اضافه میکنه.
در سرکش تمام پلاگین هایی که نوشته شده و خواهند شد باید از ساختار برنامه نویسی mvc استفاده کنند.
در سرکش تمام پلاگین ها برای شناسایی توسط هسته حتما باید در داخل پوشه plugins قرار داده بشن.
همچنین حتما باید نام پوشه با نام پلاگین که در نامگذاری کلاس های اون پلاگین استفاده میشه یکی باشه.


در یک کلام mvc مجموعه ای از سه کلاس module,view,controller هست که طبق تصویر زیر با هم در ارتباط هستند.*
**
برای آشنایی با ساختار برنامه نویسی mvc در php به مقاله زیر مراجعه کنید.
*http://en.wikipedia.org/wiki/Model%E...0%93controller
*البته مباحث مربوط به مسیر یابی در mvc توسط فریمورک پیاده سازی میشود و نیازی به پیاده سازی مجدد آن نیست.



قوانین mvc در سرکش:*

نام گذاری کلاس های module ,view, controller باید به این صورت باشه که ابتدا نام پلاگین نوشته میشه سپس آندرلاین و سپی module یا view یا controller برای مثال content_module, content_view, content_controllerدر کلاس controller از هر پلاگین وجود متد action که به صورت public تعریف شده باشه الزامی است. سرکش از طریق این متد با پلاگین ارتباط برقرار میکنه.اگر در پلاگین خود قصد دارید از ajax استفاده کنید وجود متد service الزامی است.

*
چطور به متد action از یک پلاگین دسترسی پیدا کنیم؟
*برای دسترسی به این متد در مرورگر به صورت زیر عمل میکنید:
http://site.com/?plugin=plugin_name&action=action_name


با ارسال مقادیر plugin و action سرکش یک چهارچوب از پلاگین ذکر شده ایجاد میکند و متد action از کلاس controller آن را فراخوانی میکند و همچنین مقدار action که در مثال بالا برابر با action_name هست رو به عنوان پارامتر ورودی برای تابع مذکور ارسال میکنه.


در صورت استفاده از ajax در پلاگین ها میتونید از متد service در پلاگین استفاده کنید. این متد باید در کنترلر این پلاگین و به صورت public تعریف شده باشه.
نحوه فرآخوانی هم به این صورت است که توسط متد های آیجکس درخواست خود را به صورت زیر ارسال میکنید.
http://site.com/?service=1&plugin=plugin_name&action=action_name
در واقع با ارسال مقدار 1 به پارامتر service فریمورک میفهمد که باید به صورت single mode راه اندازی شود.
در این حالت یک چهارچوب از پلاگین مورد نظر ایجاد شده و برای متد service از کلاس کنترلر آن مقدار action که در این مثال action_name است ارسال میشود.
*
فرق بین متد های action و service در پلاگین ها در چیست؟*
زمانی که یک درخواست به صورت عادی اجرا میشود باعث لود شدن کل سایت از جمله بلوک ها و هدر ها و ... شده که من اسم این حالت رو GUI mode گذاشتم که سایت به صورت کامل لود شده و مقدار بازگشتی از متد action از پلاگین مورد نظر در موقعیت content از فایل قالب قرار میگیرد.
اما در حالت اجرای service هیچ یک از اجزای فرعی وب سایت مانند هدر ها و بلوک ها و ... اجرا و نمایش داده نمیشود! نمیشود! و تنها مقدار بازگشتی از متد service از پلاگین مذکور روی مرورگر نمایش داده میشود من این نوع اجرا را SINGLE mode نامگذاری کرده ام.
*
برای شروع نوشتن پلاگین با سرکش میتونید به پلاگین hello که یک پلاگین نمادین هست مراجعه کنید که همراه با سورس کد ها کامنت ها میتونن شما رو یاری کنند.
برای مشاهده آخرین نسخه از این پلاگین روی لینک زیر کلیک کنید.
*https://github.com/morrning/sarkesh/.../plugins/hello
*
این مطلب فعلا کامل نیست و بعدا تکمیل خواهد شد.




*

----------


## morrning

به دلیل اینکه زبان اصلی که سرکش ازش استفاده میکنه انگلیسی هست و برای استفاده از سایر زبان ها باید از فایل های mo/po استفاده بشه برای چند زبانه سازی سرکش به کمک دیگر دوستان نیازمندم.
بنده یه پروژه در سایت زیر ایجاد کردم که بتونم از بقیه دوستان برای ترجمه رشته ها به فارسی کمک بگیرم.
https://crowdin.net/project/sarkesh


با ثبت نام در این سایت میتونید به قسمت زبان فارسی مراجعه کنید و سپس نسبت به ترجمه رشته ها اقدام کنید.
رشته های ترجمه شده در نسخه آلفا به سورس ها ملحق میشه.


همچنین چون بنده هم زبان انگلیسیم زیاد قوی نیست اگه در رشته های انگلیسی به غلط املایی یا معنایی برخورد کردین لطفا یا در همین تایپینگ یا در بخش پرسش و پاسخ سایت crowdin مطرح کنید.


اگه بعضی از دوستان در زبان های غیر فارسی مثل فرانسوی و اسپانیایی و عربی و ... تخصص دارند لطفا از طریق پیام خصوصی اعلام کنند که براشون اون زبان رو فعال کنم.


ترجمه کار سختی نیست :چشمک:

----------


## MRmoon

ترجمه ۱۰۰٪ شد  :لبخند گشاده!:

----------


## morrning

> ترجمه ۱۰۰٪ شد


 :متعجب:  آقا رکورد ترجمه رشته ها رو در جهان شکستید . ممنونم که در توسعه مشارکت میکنید. راستی نام کاربریتون در CROWDIN چی هست؟

----------


## MRmoon

> آقا رکورد ترجمه رشته ها رو در جهان شکستید . ممنونم که در توسعه مشارکت میکنید. راستی نام کاربریتون در CROWDIN چی هست؟


m_m_gh نام کاربریم هست.

چند تا اشکال هم تو رشته های انگلیسی دیدم یه جا زده بودین : active_acount

----------


## morrning

> m_m_gh نام کاربریم هست.
> 
> چند تا سوتی هم تو رشته های انگلیسی دیدم یه جا زده بودین : active_acount


سعی میکنم اصلاحشون کنم.
غیر از این مورد دیگه چه چی سوتی هایی موجود بود؟ :لبخند گشاده!:

----------


## MRmoon

> سعی میکنم اصلاحشون کنم.
> غیر از این مورد دیگه چه چی سوتی هایی موجود بود؟


هیچی دیگه.... تو مواردی که ترجمه کردم همین بود :لبخند گشاده!:  

امیدوارم موفق باشی.

----------


## morrning

> هیچی دیگه.... تو مواردی که ترجمه کردم همین بود 
> 
> امیدوارم موفق باشی.


خواهش میکنم

----------


## piter11

سلام با تشکر از آموزش کار با فریم ورکتون  میشه در مورد کلاس draw , cache  توضیح با مثال عملی بزنید

----------


## cpuram

سلام براتون آرزوی موفقیت دارم.
روی xampp نصب کردماین ارور رو میده.
           Error In query from database! 
 reason: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'b.permissions' in 'field list'

----------


## morrning

> سلام براتون آرزوی موفقیت دارم.
> روی xampp نصب کردماین ارور رو میده.
>            Error In query from database! 
>  reason: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'b.permissions' in 'field list'


اطلاعات مربوط به اتصال به بانک اطلاعاتی رو در فایل config.php رو چک کنید ببینید درست وارد کردید.
همچنی از پست زیر آموزش نصب رو مطالعه کنید.
https://barnamenevis.org/showthread.p...=1#post1995052

----------


## morrning

> سلام با تشکر از آموزش کار با فریم ورکتون  میشه در مورد کلاس draw , cache  توضیح با مثال عملی بزنید


draw و cache کلاس نیستند بلکه متد های کلاس raintpl هستند.
برای آموزش کلاس raintpl به لینک زیر مراجعه کنید.
https://barnamenevis.org/showthread.p...=1#post2004187
برای مثال عملی هم میتونید پلاگین hello رو مشاهده کنید.
https://github.com/morrning/sarkesh/.../plugins/hello
در فایل view.php هر دو متد استفاده شده و فایل html داخل پوشه tpl هم فایل قالب هست که با متد draw کامپایل میشه

----------


## cpuram

بله درست وارد شده.آموزش رو هم دیدم. نشد.

----------


## morrning

> بله درست وارد شده.آموزش رو هم دیدم. نشد.


فایل sarkesho.sql موجود در پوشه install رو در بانک اطلاعاتی import کردید؟

----------


## cpuram

بله کاملا موفق

----------


## morrning

> بله کاملا موفق


اصولا این خطا زمانی به وجود میاد که اتصال با بانک اطلاعاتی به درستی انجام شده باشه و موتور بانک اطلاعاتی جدول مورد نظر رو نتونه پیدا کنه.که دلیلش یا ایمورت نکردن فایل sql هست یا اینکه شما فایل sql رو در دیتابیسی غیر از اونی که مشخصاتش رو در config.php وارد کردید ایمپورت کردید.
یه سوال دیگه هم داشتم و اونم اینکه شما فایل پروژه رو از کجا دانلود کردید؟
پیشنهاد میکنم آخرین نسخه ها رو از مخزن پروژه بر روی سایت github که در پست اول اشاره شده دانلود کنید.

اگه مشخصات اتصال به دیتابیس رو اشتباه وارد کرده باشید با خطای زیر مواجه میشید.
Error In query from database! 
 reason: SQLSTATE[28000] [1045] Access denied for user 'username'@'domain' (using password: YES)

----------


## cpuram

از اینجا
https://codeload.github.com/morrning/sarkesh/zip/master
ایمپورت انجام میشه .اتصال به پایگاه داده هم درسته چون وقتی اسم ها رو عوض میکنم کلا access deny میشه.

----------


## morrning

> از اینجا
> https://codeload.github.com/morrning/sarkesh/zip/master
> ایمپورت انجام میشه .اتصال به پایگاه داده هم درسته چون وقتی اسم ها رو عوض میکنم کلا access deny میشه.


با phpmyadmin وارد بانک اطلاعاتی بشید ببینید داخل لیست جدول ها جدولی با نام permations وجود داره؟

----------


## cpuram

بله اینم محتواشCapture.JPG

----------


## morrning

> از اینجا
> https://codeload.github.com/morrning/sarkesh/zip/master
> ایمپورت انجام میشه .اتصال به پایگاه داده هم درسته چون وقتی اسم ها رو عوض میکنم کلا access deny میشه.


دیتابیس رو خالی کنید و فایل ضمیمه رو در اون امپورت کنید ببینید مشکلتون حل میشه؟
البته قبل از امپورت اونو از حالت فشرده خارج کنید.

----------


## cpuram

بله ممنونم
حالا به این صورت شده.Capture.JPG

----------


## morrning

> بله ممنونم
> حالا به این صورت شده.Capture.JPG


لطفا ابتدا CTRL + U رو بزنید و سورس صفحه رو قرار بدید همچنین آدرس URL موجود در آدرس بار مرورگر رو هم قرار بدید.

----------


## cpuram

```
<!DOCTYPE html> 

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<meta name="generator" content=" Sarkesh CMS! - Open Source Content Management" />
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<script src="./core/ect/scripts/jquery.js"></script>
<script src="./core/ect/scripts/bootstrap.min.js"></script>
<script src="./core/ect/scripts/bootstrap-dialog.js"></script>
<script src="./core/ect/scripts/pace.min.js"></script>
<link rel="stylesheet" type="text/css" href="./core/ect/styles/bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="./core/ect/styles/bootstrap-dialog.css" />
<link rel="stylesheet" type="text/css" href="./core/ect/styles/normalize.css" />
<link rel="stylesheet" type="text/css" href="./core/ect/styles/bootstrap/bootstrap-theme.min.css" />
<link rel="stylesheet" type="text/css" href="./core/ect/styles/pace/pace-theme-corner-indicator.css" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="./themes/blog/style.css" />
<link rel="shortcut icon" href="./themes/blog/favicon.ico" type="image/x-icon">
<link rel="icon" href="./themes/blog/favicon.ico" type="image/x-icon">
<script src="./core/ect/scripts/tinymce/tinymce.min.js"></script>
<script> tinymce.init({selector:'textarea.editor',directionality: "LTR",language: "en"});</script>
<script src="./core/ect/scripts/functions.js"></script>


<title>Sarkesh | Register</title>
</head>
<body>
    <nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="/">Sarkesh</a>
        </div>

        <!-- Collect the nav links, forms, and other content for toggling -->
        <div class="collapse navbar-collapse navbar-ex1-collapse">
           <div class="navbar-collapse collapse">
            <ul class="nav navbar-nav">
	      
	      
	      <li><a href=".">Home</a></li>

	      
	      
	      <li><a href=".?plugin=forum">Forums</a></li>

	      
	      
	      <li><a href=".?plugin=content&action=show&cat=download">Downloads</a></li>

	      
	      
	      <li><a href=".?plugin=content&action=show&id=about_us">About us</a></li>

	      
	      
	      <li><a href=".http://google.com">TEST</a></li>

	      
              
            </ul>
</div>        </div><!-- /.navbar-collapse -->
      </div><!-- /.container -->
    </nav>
    
    <div class="container">

      <div class="row">
        <div class="col-xs-8 main">
	  	
        </div>
        
        <div class="col-xs-4 sidebar">
	  <div class="row">
	  <div class="panel panel-default"><div class="panel-heading"><h3 class="panel-title">User Sign in</h3></div><div class="panel-body"><div id="users_login" class="users_login" >
	<script language="javascript" type="text/javascript" src="../plugins/users/scripts/users.js"></script>
	<div id="msg" class="users_login_msg" ></div>
	<form id="users_login">
		<div class="form-group users_login">
			<label for="users_username"> Username: </label>
			<input type="text" id="users_username" class="form-control" name="users_username" placeholder="Username">
			<label for="users_password"> Password: </label>
			<input type="password" id="users_password" class="form-control" name="users_password" placeholder="******">
			<div class="checkbox">
				<label>
					<input type="checkbox" id="users_remember" name="users_remember" value="yes">
					Remember me!
				</label>
			</div>
			<input type="button" class="form-control btn btn-primary" onclick="users_login()" value="Sign in">
			<a href=".?plugin=users&action=forget_password" >Forget your password?</a>
			<br />
			
				
				<br />
				<div>
					<p>Don't have account? <a href=".?plugin=users&action=register" class="btn btn-primary btn-sm" role="button"> Sign up </a></p>
				</div>
			
		</div>
	</form>
</div></div></div><div class="panel panel-default"><div class="panel-heading"><h3 class="panel-title">Reset password</h3></div><div class="panel-body"><div id="users_login" class="users_login" >
	<script language="javascript" type="text/javascript" src="../plugins/users/scripts/users.js"></script>
	<div id="msg" class="users_forget_password" ></div>
	<form>
		<div class="form-group users_forget">
			<label for="users_email"> Email: </label>
			<input type="text" id="users_email" class="form-control" name="email" placeholder="Email">
			<br />
			<div><p>Enter your email and we send reset password request to your email.</p></div>
			<input type="button" class="form-control btn-primary" onclick="users_forget_password()" value="Send email">
		</div>
	</form>
</div></div></div><div class="panel panel-default"><div class="panel-heading"><h3 class="panel-title">Languages</h3></div><div class="panel-body"><div id="languages_select" class="languages_select" >
	<script language="javascript" type="text/javascript" src="../plugins/languages/scripts/languages.js"></script>
	<div id="msg" class="languages_select_msg" ></div>
	<form>
		<select class="languages_selector form-control" onchange="languages_change()">
			
				<option value="en_US">  English - United States </option>
			
				<option value="fa_IR">  فارسی - ایران </option>
			
		</select>
	</form>
</div></div></div><div class="panel panel-default"><div class="panel-heading"><h3 class="panel-title">User Menu</h3></div><div class="panel-body"> <div class="navbar-collapse collapse">
            <ul class="nav-pills nav-stacked"">
	      
	      
	      <li><a href=".">about us</a></li>

	      
              
            </ul>
</div></div></div>	  </div>
	  <div class="row">
	            </div>
        </div>
      </div>
      
      <hr>
      
      <footer>
        <div class="row">
          <div class="col-xs-12">
	    <p></p>
            <p>Copyright &copy; Sarkesh LTD 2013</p><br />
          </div>
        </div>
      </footer>

    </div><!-- /.container -->
  </body>
</html>
```

اینم آدرس 


```
http://localhost/sarkesh/?plugin=users&action=register
```

----------


## morrning

> ```
> <!DOCTYPE html> 
> 
> <head>
> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
> 
> <meta name="generator" content=" Sarkesh CMS! - Open Source Content Management" />
> <META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
> <script src="./core/ect/scripts/jquery.js"></script>
> ...


مشکل شما با کامیتی که الان روی پروژه ارسال کردم احتمالا باید حل بشه . لطفا یه بار دیگه پروژه رو از مخزن دانلود کن و با سورس های قبلی جایگزین کن. احتمالا مشکلتون حل میشه!

----------


## cpuram

ببخشید از اینجا دانلود کردم
https://bitbucket.org/morrning/sarkesh/downloads
الان این شده ولی دکمه ثبت نام کار نمیکنه.
Capture.JPG

----------


## morrning

> ببخشید از اینجا دانلود کردم
> https://bitbucket.org/morrning/sarkesh/downloads
> الان این شده ولی دکمه ثبت نام کار نمیکنه.


مشکلی وجود نداره چون کامیت های ارسالی روی تمام مخزن ها ارسال میشن.
از بابت دکمه ثبت نام هم باید به نکات زیر دقت کنید.
حداقل طول کاراکتر برای کلمه عبور 8 کاراکتر هست.تا زمانی که خطاهای مربوط به نام کاربری و ایمل و ... بالای صفحه با رنگ قرمز وجود داشته باشند فرم ثبت نام ارسال نمیشود.

اگه میخوایید به سیستم ورود کنید میتونید از نام کاربری sarkesh و کلمه عبور sarkesh123456 استفاده کنید . همچنین برای ورود به محیط مدیریت میتونید از آدرس زیر استفاده کنید
http://localhost/?panel=admin

----------


## morrning

همچنین فایل ضمیمه رو دانلود و جایگزین فایل زیر کنید
/plugins/users/module.php

----------


## cpuram

مرسی .فقط دکمه کار نکرد .موفق باشید .
شب خوش.

----------


## zoghal

ضمن عرض خسته نباشید و تشکر برای زحماتی که دارید می کشید.
دیدم اگر صحبتی نکنم در راهی اشتباهی که دارید میرید شریک میشم. پس با اجازه چند نکته بیان می کنم و هدفم فقط انتقاد سازنده و جلو گیری از اتلاف وقت شما هست.

ببینید اگر شما  قصد دارید کتابخانه یا فریم ورکی رو برای کارهای شخصی خودتون ایجاد کنید که هیچ جای صحبتی نیست. چهار دیواری اختیاری و کسب تجربه و ... همراهش هست.

اما اگر قصد دارید یک فریم ورک ایجاد کنید که ابزار کار شما و افراد دیگه ای بشه. و در کار توسعه آن افرادی دیگر هم مشارکت داشته باشند. باید خیلی جدی تر روی لاجیک فریم ورک کار کنید. من چند مورد رو اشاره می کنم :
۱- فریم ورک ها از یک یا ترکیبی از چند معماری پشتیبانی و تبعیت می کنند. در صورتی که در پروژه شما دیده نمیشه . 
۲- فریم ورک ها از یک استاندارد کلی برای نام گذاری و کلا قواعد نام گذاری استفاده می کنند. در فریم ورک های پی اچ پی این استاندارد ها در چهار نسخه تهیه شده که در آدرس http://www.php-fig.org/ قرار دارند.

فریم ورک تخصصی من کیک پی اچ پی هست. اما چون با نسخه های مختلف استاندارد ها آشنایی دارم.  خیلی راحت می تونم سویچ کنم روی لارول یا سیمفونی یا زند. به این دلیل که هر کدام از فریم ورک ۹۵٪ استاندارد ها رو رعایت می کنند. پس برایم  این تغییر بستر کاری غریبه و سخت نیست. و همین هم باعث میشه که فردا افرادی رو جذب کنید. تا با شما در توسعه یاری بدند.

در کل آرزوی پیشرفت و موفقیت براتون دارم. اگر دوست داشتید می تونم مباحث ریشه ای تر مثل چرخه زندگی درخواست ها در فریم ورک و نحوه ارتباط لایه ها رو بیشتر براتون باز کنم.

----------


## morrning

> ضمن عرض خسته نباشید و تشکر برای زحماتی که دارید می کشید.
> دیدم اگر صحبتی نکنم در راهی اشتباهی که دارید میرید شریک میشم. پس با اجازه چند نکته بیان می کنم و هدفم فقط انتقاد سازنده و جلو گیری از اتلاف وقت شما هست.
> 
> ببینید اگر شما  قصد دارید کتابخانه یا فریم ورکی رو برای کارهای شخصی خودتون ایجاد کنید که هیچ جای صحبتی نیست. چهار دیواری اختیاری و کسب تجربه و ... همراهش هست.
> 
> اما اگر قصد دارید یک فریم ورک ایجاد کنید که ابزار کار شما و افراد دیگه ای بشه. و در کار توسعه آن افرادی دیگر هم مشارکت داشته باشند. باید خیلی جدی تر روی لاجیک فریم ورک کار کنید. من چند مورد رو اشاره می کنم :
> ۱- فریم ورک ها از یک یا ترکیبی از چند معماری پشتیبانی و تبعیت می کنند. در صورتی که در پروژه شما دیده نمیشه . 
> ۲- فریم ورک ها از یک استاندارد کلی برای نام گذاری و کلا قواعد نام گذاری استفاده می کنند. در فریم ورک های پی اچ پی این استاندارد ها در چهار نسخه تهیه شده که در آدرس http://www.php-fig.org/ قرار دارند.
> 
> ...


حرف شما کاملا درسته و بنده هم اینو قبول دارم 
من خودم هم قبلا با cakephp برنامه مینوشتم . من در این پروژه قصدم فقط سریعتر کردن زمان توسعه نرم افزار ها هست. این زمان در یه بخشی در ایجاد کنترل های پیش ساخته برای برنامه نویسا کوتاه میشه و از طرف دیگه با حذف  پیچیدگی های غیرضروری سعی در رسیدن به این هدف دارم . 
بنده خودم اطلاع دارم که بعضی از جاهایی که توسعه میدم فعلا در هیچ استانداردی تعریف نشده ولی اینو به پای ساده کردن کار برای توسعه دهنده بزارید.
مثلا در بحث مسیریابی به جای دادن حق انتخاب به توسعه دهنده برای ایجاد مسیر های درخواست اومدم دو مسیر طراحی کردم که ارتباط کاربر با پلاگین های نوشته شده رو برقرار کنه این وسط خوبی هایی هم داره و اونم اینکه سردرگمی کمتری به وجود میاد ...

من در توسعه این پروژه سعی میکنم برای انجام هر کاری فقط و فقط  یک راه حل در فریمورک وجود داشته باشه تا از موازی کاری ها جلوگیری کنم. در یک کلام به جای دادن ۱۰ آپشن بی کیفیت ۱ آپشن با کیفیت در اختیار توسعه دهنده قرار داده بشه تا توسعه دهنده از مسیر اصلی که همون توسعه سریع و چابک توسعه نرم افزار هست خارج نشه.

----------


## morrning

> مرسی .فقط دکمه کار نکرد .موفق باشید .
> شب خوش.


الان خوابم فردا راه حلی براش پیدا میکنم هرچند که روی local و سرور تست کردم که بدون مشکل بود.

----------


## zoghal

پس گزینه شخصی بودن مطرح هست.  تو این حالت هیچ جای بحثی نیست. آخر آخرش اگر هیچ هم ته ماجرا نمونه همین تجربه ای  که بدست میاد خیلی ارزش داره و باعث باز شدن ذهن برای پروژه های بعدی میشه. بابت پشتکارتون نبریک میگم :تشویق:

----------


## morrning

> پس گزینه شخصی بودن مطرح هست.  تو این حالت هیچ جای بحثی نیست. آخر آخرش اگر هیچ هم ته ماجرا نمونه همین تجربه ای  که بدست میاد خیلی ارزش داره و باعث باز شدن ذهن برای پروژه های بعدی میشه. بابت پشتکارتون نبریک میگم


ممنونم.حداقل تا نسخه اولیه پایدار دنبال سادگی و سهولت استفاده هستم حالا شاید از اون به بعد روند کار تغییر کنه البته اصول طراحی هم زیاد هم بی استاندارد نیست چون کل سیستم بر پایه mvc طراحی شده و تا حد امکان سعی شده از الگوهای طراحی هم تا حدودی استفاده بشه.

----------


## morrning

روی مخزن پروژه رویداد های click پی اچ پی و جاوا اسکریپت تقریبا پیاده سازی شدن. البته فقط برای کنترل ctr_button

*حالا از همه دوستانی که قصد همکاری دارن خواهشمندم درباره رویداد ها و پروپرتی هایی که کنترل ctr_button باید داشته باشه دیدگاهاشون رو اعلام کنن. که رویداد های اضافی و پروپرتی های به درد نخور الکی پیاده سازی نشن.*
برای شروع میتونید اینجور در نظر بگیرید که  button در html چه چیزهایی نداره که باید اضافه بشه.
بنده سعی میکنم دیدگاه های مفید رو در کدنویسیم وارد کنم.

----------


## morrning

خدمت *zoghal* عزیز عرض کنم که اگه قصدم ساخت یه چیزی مثل yii یا cakephp بود مطمئن باشید دنبال این پروژه رو نمیگرفتم چون اختراع دوباره چرخ کار بیهوده ای هست.

هدف اصلی نزدیک کردن برنامه نویسی تحت وب به برنامه نویسی تحت ویندوز هست که در کنترل ها و رویدادگرایی اونا نهفته شده. در سرانجام این پروژه هم یه IDE میخوام طراحی کنم که مثل ویژوال استودیو برنامه نویس فقط کنترل ها رو روی فرمش درگ کنه و برا اونا کد بنویسه برای برنامه نویس تحت وب حتی فکر کردن به اینجور برنامه نوشتن هم زیباست. حس من اینه که این پروژه میتونه چیز جدیدی برای گفتن داشته باشه . شک نکنید اگه ایده‌ای پشت این قضیه نبود قطعا دنبالش رو نمیگرفتم.

بنده تا جایی که هدف ایدم رو بیان کنم این پروژه رو توسعه میدم و از اون به بعد منتظر فیدبک ها جامعه کاربری میمونم. ادامه پروژه از اون مرحله به بعد به حمایت جامعه کاربری بستگی داره.

----------


## morrning

ctr_button:

این کنترل در واقع یه دکمه html هست که یه سری قابلیت های جدید از جمله  توانایی پاسخ به رویداد ها مثل click در سمت سرور براش فراهم شده.
برای ترسیم این فرم ابتدا باید یه متغییر در فایل قالب در نظر بگیرید و سپس  مقدار بازگشتی از متد draw از این کنترل رو بهش نسبت بدید.

پروپرتی ها:
لیست خصوصیات این کنترل در لیست زیر قابل مشاهده هست
NAME  برای ایجاد تمایز بین کنترل های روی فرم از این پروپرتی استفاده میشه. دقت  کنید که در یک فرم هیچ دو کنترل هم نوعی نباید نام یکسان داشته باشند. اگه  نام ها رو یکسان در نظر بگیرید با مشکل در قسمت رویداد ها مواجع میشید.LABEL این پروپرتی متنی هست که باید روی دکمه نمایش داده بشه.مقدار پیشفرض این پروپرتی هم Button هستFORM این پروپرتی مشخص کننده این هست که دکمه مورد نظر به چه  فرمی نسبت داده شده .این پروپرتی یه مزیت داره و اونم اینکه در برنامه  نویسی بدون Ajax هم میشه از کنترل ها استفاده کرد.
توجه: در رویداد سمت مرورگر تنها میتوانید به المان هایی دسترسی داشته باشید که دارای پروپرتی FORM یکسانی هستند.




TYPE نوع دکمه رو مشخص میکنه که میتونه یکی از مقادیر زیر  باشه. هر کدوم از مقادیر زیر ترکیب رنگ دکمه رو تغییر میدن برای مثال  success رنگ دکمه رو سبز میکنه.

defaultprimarysuccessinfowarningdangerlinknone 
توجه:  در حالت استفاده از گذینه none کنترل از bootstrap گرفته شده و تنها توسط  استایل های تنظیم شده در پروپرتی STYLE و کلاس های تعریف شده در پروپرتی  CLASS استایل دهی خواهد شد.


DISABLE  این پروپرتی یک مقدار بولیین میگیره که به طور پیشفرض FALSE هست . در  مقدار FALSE کنترل فعال هست و اگه برابر TRUE باشه کنترل غیر فعال میشه.CLASS  این پروپرتی برای اضافه کردن کلاس های CSS به کنترل هست. اگه قصد دارید  بیش از یک کلاس به کنترل اضافه کنید با فاصله(SPACE) کلاس ها رو از هم جدا  کنید.CSS_FILE این پروپرتی برای چسپاندن  فایل CSS که کلاس های تعریف شده در پروپرتی CLASS تعریف شده اند استفاده  میشود. برای مثال میتوانید به پروپرتی CLASS مقدار TEST را نسبت دهید سپس  در فایل CSS پس از تعریف و درج دستورات CSS آدرس این فایل را برای ضمیمه  کردن به صفحه  در این پروپرتی قرار دهید. 
مثال:
$a = new ctr_button;
$a->configure('TYPE', './themes/test.css');
$a->draw();


STYLE  توسط این پروپرتی مستقیما میتوانید دستورات CSS را برای کنترل وارد کنید .  توجه داشته باشید که بین دستورات از علامت سیمی کالن (;) برای جداکردن  دستورات از یکدیگر استفاده کنید.SCRIPT_SRC این پروپرتی برای قرار دادن فایل های جاوا اسکریپت به هدر صفحات استفاده میشه. توابع جاوا اسکریپتی مربوط به رویدادها رو در یک فایل ذخیره کنید سپس توسط این پروپرتی این فایل رو به هدر صفحه سنجاق کنید. 

رویداد ها:


J_ONCLICK این پروپرتی تابع جاوا اسکریپتی رو نشون میده که در صورت کلیک روی فرم باید اجرا بشه.P_ONCLICK_FUNCTION این پروپرتی نشان دهنده تابع PHP هست که  در صورت کلیک روی فرم باید اجرا بشه. دقت کنید که این تابع باید در کلاس  controller یکی از پلاگین ها به صورت public تعریف شده باشه و یک آرگومان ورودی برای دریافت خصوصیات المان های روی مرورگر داشته باشه . دقت کنید که این تابع حتما باید همین آرگومان ورودی رو پس از ایجاد تغییرات بازگشت بده! یعنی همین  آرگومان ورودی رو return کنه. آرگومانی ورودی این تابع یک آرایه از المان های روی صفحه مرورگر هست که بسته به نوع هر المان خصوصیات هر اندیس از این آرایه فرق میکنه. برای اطلاعات بیشتر درباره این متغییر از پست اول همین تایپینگ به خصوصیات المان ها مراجعه کنید. 
توجه:یکی از اندیس های آرایه ورودی این تابه که یک مقدار رشته  ای است که با RV مشخص شده که خودش هم یه آرایه هست که اندیس value  این مقدار به رویداد J_AFTER_CLICK ارسال میشود.


P_ONCLICK_PLUGIN مشخص کننده نام پلاگینی هست که پروپرتی P_ONCLICK_FUNCTION در controller اون تعریف شده.J_AFTER_ONCLICK نام تابع جاوا اسکریپتی که بعد از  رویداد P_ONCLICK_FUNCTION اجرا میشه رو مشخص میکنه که باید فقط نام اون رو  وارد کنید. در مرحله پیاده سازی این باید به صورتی تعریف بشه که یک  آرگومان ورودی داشته باشه که این آرگومان مقدار برگشتی از رویداد  P_ONCLICK_FUNCTION در اون قرار داده میشه.J_ONBLUR این پروپرتی تابع جاوا اسکریپتی رو نشون میده که در صورتی که فوکوس از روی کنترل برداشته بشه یا اصطلاحا رویداد onblur رخ بده تابع تعریف شده در این پروپرتی اجرا میشه.P_ONBLUR_FUNCTION این پروپرتی نشان دهنده تابع PHP هست که   در صورت برداشته شدن فوکوس از روی کنترل باید اجرا بشه. دقت کنید که این تابع باید در کلاس   controller یکی از پلاگین ها به صورت public تعریف شده باشه و یک آرگومان  ورودی برای دریافت خصوصیات المان های روی مرورگر داشته باشه . دقت کنید که  این تابع حتما باید همین آرگومان ورودی رو پس از ایجاد تغییرات بازگشت بده!  یعنی همین  آرگومان ورودی رو return کنه. آرگومانی ورودی این تابع یک  آرایه از المان های روی صفحه مرورگر هست که بسته به نوع هر المان خصوصیات  هر اندیس از این آرایه فرق میکنه. برای اطلاعات بیشتر درباره این متغییر از  پست اول همین تایپینگ به خصوصیات المان ها مراجعه کنید.
توجه:یکی از اندیس های آرایه ورودی این تابه که  یک مقدار رشته  ای است که با RV مشخص شده که خودش هم یه آرایه هست که  اندیس value  این مقدار به رویداد J_AFTER_ONBLUR ارسال میشود.


P_ONBLUR_PLUGIN مشخص کننده نام پلاگینی هست که پروپرتی P_ONBLUR_FUNCTION در controller اون تعریف شده.J_AFTER_ONBLUR  نام تابع جاوا اسکریپتی که بعد از  رویداد P_ONBLUR_FUNCTION اجرا میشه  رو مشخص میکنه که باید فقط نام اون رو  وارد کنید. در مرحله پیاده سازی این  باید به صورتی تعریف بشه که یک  آرگومان ورودی داشته باشه که این آرگومان  مقدار برگشتی از رویداد P_ONBLUR_FUNCTION در اون قرار داده میشه.J_ONFOCUS این پروپرتی  تابع جاوا اسکریپتی رو نشون میده که در صورتی که فوکوس روی این کنترل قرار بگیره  یا اصطلاحا رویداد  onfocus رخ بده تابع تعریف شده در این  پروپرتی اجرا میشه.P_ONFOCUS_FUNCTION این پروپرتی نشان دهنده تابع PHP هست که   در صورتی که فوکوس روی این کنترل قرار بگیره باید اجرا بشه. دقت کنید که این تابع باید در کلاس   controller یکی از پلاگین ها به صورت public تعریف شده باشه و یک آرگومان  ورودی برای دریافت خصوصیات المان های روی مرورگر داشته باشه . دقت کنید که  این تابع حتما باید همین آرگومان ورودی رو پس از ایجاد تغییرات بازگشت بده!  یعنی همین  آرگومان ورودی رو return کنه. آرگومانی ورودی این تابع یک  آرایه از المان های روی صفحه مرورگر هست که بسته به نوع هر المان خصوصیات  هر اندیس از این آرایه فرق میکنه. برای اطلاعات بیشتر درباره این متغییر از  پست اول همین تایپینگ به خصوصیات المان ها مراجعه کنید.
توجه:یکی از اندیس های آرایه ورودی این تابه که  یک مقدار رشته  ای است که با RV مشخص شده که خودش هم یه آرایه هست که  اندیس value  این مقدار به رویداد J_AFTER_ONFOCUS ارسال میشود.


P_ONFOCUS_PLUGIN مشخص کننده نام پلاگینی هست که پروپرتی P_ONFOCUS_FUNCTION در controller اون تعریف شده.J_ONFOCUS_ONBLUR  نام تابع جاوا اسکریپتی که بعد از  رویداد P_ONFOCUS_FUNCTION اجرا میشه  رو مشخص میکنه که باید فقط نام اون رو  وارد کنید. در مرحله پیاده سازی این  باید به صورتی تعریف بشه که یک  آرگومان ورودی داشته باشه که این آرگومان  مقدار برگشتی از رویداد P_ONFOCUS_FUNCTION در اون قرار داده میشه.








 متد ها:

public function configure($key, $value) 
این متد برای تنظیم کردن پروپرتی ها استفاده میشه که در آرگومان اول نام پروپرتی و در آرگومان دوم مقدار مربوطه قرار داده میشه.


public function draw() 
این متد هیچ آرگومانی نداره و در صورت اجرا  در واقع کنترل کامپایل  میشه و کل کنترل return میشه که برای قرار دادن در محل های دلخواه استفاده  بشه.

مثال: از مرحله ایجاد کنترل تا مرحله ترسیم آن

$a = new ctr_button();
            $a->configure('J_ONCLICK_SRC','<script src="./plugins/hello/hello.js"></script>');
            $a->configure('J_ONCLICK_FUNCTION','test');
            $a->configure('P_ONCLICK_PLUGIN','hello');
            $a->configure('P_ONCLICK_FUNCTION','test');
            $a->configure('J_AFTERCLICK_SRC','<script src="./plugins/hello/hello.js"></script>');
            $a->configure('J_AFTERCLICK_FUNCTION','test1');
            echo $a->draw();


برای مشاهده نحوه ارتباط اجزا سمت سرور و سمت مرورگر و پیاده سازی کلاس ها به لینک زیر مراجعه کنید.
https://barnamenevis.org/showthread.p...=1#post2015448

----------


## Jarvis

> TYPE نوع دکمه رو مشخص میکنه که میتونه یکی از مقادیر زیر  باشه. هر کدوم از مقادیر زیر ترکیب رنگ دکمه رو تغییر میدن برای مثال  success رنگ دکمه رو سبز میکنه.
> 
> 
> 
> defaultprimarysuccessinfowarningdangerlink


فکر کنم بشه یک مورد Custom هم به این لیست اضافه کرد که کاربر در صورتی که هیچکدوم از این موارد رو نخواست بتونه خودش نوع دکمه رو طراحی کنه
به نظر من اضافه کردن همین یک گزینه میتونه انعطاف پذیری خوبی بوجود بیاره
نحوه ی کار هم به این صورت می تونه باشه که کاربر نوع رو روی Custom تنظیم کنه و بعد خودش CSS های مربوط به اون رو بنویسه...

حالا خودت حرف من رو میتونی تکمیل ترش هم بکنی...

----------


## morrning

> فکر کنم بشه یک مورد Custom هم به این لیست اضافه کرد که کاربر در صورتی که هیچکدوم از این موارد رو نخواست بتونه خودش نوع دکمه رو طراحی کنه
> به نظر من اضافه کردن همین یک گزینه میتونه انعطاف پذیری خوبی بوجود بیاره
> نحوه ی کار هم به این صورت می تونه باشه که کاربر نوع رو روی Custom تنظیم کنه و بعد خودش CSS های مربوط به اون رو بنویسه...
> 
> حالا خودت حرف من رو میتونی تکمیل ترش هم بکنی...


قبلا فکر اینجاش رو کرده بودم به همین دلیل پروپرتی CLASS رو قرار دادم که میشه باهاش نام کلاسها برای استایل دهی به کنترل اضافه بشه البته در هر صورت کلاس BOOTSTRAP اضافه میشه ولی میشه یه حالت none هم اضافه کرد که در این صورت از استایل دهی bootstrap استفاده نشه و فقط از کلاس هایی که در پروپرتی CLASS درج شدن برای استایل دهی استفاده کرد.
البته در این حالت باید یه پروپرتی دیگه برای چسباندن فایل css که کلاس ها در اون تعریف شدن هم تعریف کنیم.

مورد Custom که فرمودید میشه دربارش بیشتر توضیح بدید. منظورتون اینه که همونجا مستقیما دستورات css درج بشه یا اینکه فقط نام کلاس ها رو درج کنیم و در فایل css قالب کلاس ها رو تعریف کنیم؟
ممنونم که در بحث شرکت کردید چون واقعا داشتم نا امید میشدم! :چشمک:

----------


## MRmoon

به نظرم یه قابلیت کاستوم بذارین که فرد css بده یا اگه خواست نام کلاس رو تنظیم کنه یا آیدی المنت رو.

----------


## morrning

> به نظرم یه قابلیت کاستوم بذارین که فرد css بده یا اگه خواست نام کلاس رو تنظیم کنه یا آیدی المنت رو.


تنظیم آی دی نمیشه چون پروپرتی NAME همون آی دی المان هست.
روی تنظیم نام کلاس بحثی نیست چون با پروپرتی CLASS میشه تنظیمش کرد. به نظرتون بهتره طرف مستقیما CSS وارد کنه تا توسط پروپرتی CLASS کلاس های مربوط به المان رو تعیین کنه بعدش آدرس فایل CSS که این کلاس ها داخل اون تعریف شدن رو وارد کنه.
به نظرتون مزایا و معایب هر کدوم چی هست؟

اینکه روی کنترل باتون حساسیت دارم دلیلش اینه که میخوام موارد پیاده سازی شده برای این کنترل شبیه یه استاندارد برای همه ی کنترل های دیگه هم پیاده سازی بشه.

----------


## Jarvis

> قبلا فکر اینجاش رو کرده بودم به همین دلیل پروپرتی CLASS رو قرار دادم که میشه باهاش نام کلاسها برای استایل دهی به کنترل اضافه بشه البته در هر صورت کلاس BOOTSTRAP اضافه میشه ولی میشه یه حالت none هم اضافه کرد که در این صورت از استایل دهی bootstrap استفاده نشه و فقط از کلاس هایی که در پروپرتی CLASS درج شدن برای استایل دهی استفاده کرد.
> البته در این حالت باید یه پروپرتی دیگه برای چسباندن فایل css که کلاس ها در اون تعریف شدن هم تعریف کنیم.
> 
> مورد Custom که فرمودید میشه دربارش بیشتر توضیح بدید. منظورتون اینه که همونجا مستقیما دستورات css درج بشه یا اینکه فقط نام کلاس ها رو درج کنیم و در فایل css قالب کلاس ها رو تعریف کنیم؟
> ممنونم که در بحث شرکت کردید چون واقعا داشتم نا امید میشدم!


در مورد Custom میشه اینطور توصیف کرد که اگه کاربر این گزینه رو Set کرد ، مثلا بیاد یا آدرس فایل CSS مربوطه رو بده ، یا این که مستقیما CSS رو درج کنه .. یک چنین چیزی
در کل چیزی که بنده مد نظر دارم اینه که کاربر به بهترین نحو و به راحتی بتونه کنترل ها رو ویرایش بکنه ... چون اینا از نظر رابط کاربری که تخصص بنده هست مواردی محسوب میشن که به انعطاف پذیر شدن رابط کاربری کمک زیادی میکنن ، مثلا یه نفر دوست نداره از Bootstrap توی پروژه خودش استفاده کنه و میخواد از استایل مورد نظر خودش استفاده بکنه...
من Custom رو به عنوان مثال خدمتتون عرض کردم ، بی شک بهترین روش رو شما بهتر از من می دونید کدومه ...

البته این که گفتید سرانجام این فریمورک به یک IDE میرسه خیلی نظر منو جلب کرد و یجورایی مشتاق تر شدم که توی این پروژه نظر خودم رو بگم
چون خودم هم توی این فکر بودم که یک IDE مخصوص وب طراحی کنم ...
فقط یک سوال : IDE رو با چه زبانی قصد دارید پیاده کنید ؟

----------


## morrning

> در مورد Custom میشه اینطور توصیف کرد که اگه کاربر این گزینه رو Set کرد ، مثلا بیاد یا آدرس فایل CSS مربوطه رو بده ، یا این که مستقیما CSS رو درج کنه .. یک چنین چیزی
> در کل چیزی که بنده مد نظر دارم اینه که کاربر به بهترین نحو و به راحتی بتونه کنترل ها رو ویرایش بکنه ... چون اینا از نظر رابط کاربری که تخصص بنده هست مواردی محسوب میشن که به انعطاف پذیر شدن رابط کاربری کمک زیادی میکنن ، مثلا یه نفر دوست نداره از Bootstrap توی پروژه خودش استفاده کنه و میخواد از استایل مورد نظر خودش استفاده بکنه...
> من Custom رو به عنوان مثال خدمتتون عرض کردم ، بی شک بهترین روش رو شما بهتر از من می دونید کدومه ...
> 
> البته این که گفتید سرانجام این فریمورک به یک IDE میرسه خیلی نظر منو جلب کرد و یجورایی مشتاق تر شدم که توی این پروژه نظر خودم رو بگم
> چون خودم هم توی این فکر بودم که یک IDE مخصوص وب طراحی کنم ...
> فقط یک سوال : IDE رو با چه زبانی قصد دارید پیاده کنید ؟


منم فکر میکنم بهترین گذینه برای شخصی سازی همین هست که شما فرمودید. سعی میکنم در روز های آینده انجامش بدم .
هدف نهایی این فریمورک این نیست که یه چیزی شبیه به cakephp یا yii بشه. من تو فکر اینم که همزمان با توسعه فریمورک یه ide هم براش طراحی کنم که محیطی شبیه به توسعه برنامه های تحت ویندوز فراهم بشه که برنامه نویس فقط کنترل ها رو روی فرم بکشه و برای رویداد های هر کنترل کد بنویسه.

زبان برنامه نویسی که میخوام استفاده کنم Qt هست البته فعلا تصمیم قطعی نگرفتم  اگه گذینه بهتری مد نظرتون هست بفرمایید.
به نظرتون در درجه اول چه رویداد هایی برای کنترل ها پیاده سازی بشه که استفاده بیشتری دارند؟

----------


## morrning

تغییرات در کنترل button انجام شد.
پروپرتی TYPE اگه مقدار none بگیره استایل دهی bootstrap از کنترل حذف میشه

پروپرتی STYLE اضافه شد که توسط اون مستقیم میشه به کنترل دستورات CSS نسبت داد

پروپرتی CSS_FILE هم برای چسپاندن فایل CSS به هدر صفحه اضافه شد.

داکیومت راهنمای ویرایش شده رو میتونید از آدرس زیر مشاهده کنید.
https://barnamenevis.org/showthread.p...=1#post2006814

----------


## Jarvis

> منم فکر میکنم بهترین گذینه برای شخصی سازی همین هست که شما فرمودید. سعی میکنم در روز های آینده انجامش بدم .
> هدف نهایی این فریمورک این نیست که یه چیزی شبیه به cakephp یا yii بشه. من تو فکر اینم که همزمان با توسعه فریمورک یه ide هم براش طراحی کنم که محیطی شبیه به توسعه برنامه های تحت ویندوز فراهم بشه که برنامه نویس فقط کنترل ها رو روی فرم بکشه و برای رویداد های هر کنترل کد بنویسه.
> 
> زبان برنامه نویسی که میخوام استفاده کنم Qt هست البته فعلا تصمیم قطعی نگرفتم  اگه گذینه بهتری مد نظرتون هست بفرمایید.
> به نظرتون در درجه اول چه رویداد هایی برای کنترل ها پیاده سازی بشه که استفاده بیشتری دارند؟


Qt فریمورک خیلی قدرتمند و خوبی هست و البته متن باز و Cross-Platform ... خیلی خوب میشه اگه این IDE رو بتونیم برای سیستم عامل ویندوز و لینوکس و مک طراحی کنیم...
من خودم قصد داشتم با دلفی یک IDE بنویسم ، اما چون دیدم شما هم تو فکر ساخت IDE هستید گفتم ایده های خودم رو با شما در میون میزارم و توی این پروژه یجورایی شریک میشم باهاتون...

مثلا یکی از ایده های من Project Timeline هستش که میاد زیر پروژه یه Timeline ایجاد میکنه و شما فقط تاریخ شروع پروژه و حدود تاریخ پایان پروژه رو بهش میدید و اون میاد براتون حساب میکنه پروژه چند درصد پیشرفت کرده ، در طی ساخت پروژه کجا چه اتفاقاتی افتاده و... در کل یجورایی میاد پروژه رو مونیتور میکنه و پائین صفحه به کاربر نشون میده ... اما قابلیتی هست که کاربر میتونه اگه اون رو نخواست ازش استفاده نکنه ...
یکی دیگه از مواردی که من همیشه بهش فکر میکردم این بود که چرا پلاگین های Eclipse و Netbeans و Sublime Text و... همشون با زبان های غیر از وب نوشته میشن ؟ چرا مثلا با جاوا اسکریپت نمیشه براشون پلاگین نوشت ...
منظورم اینه که وقتی یک شرکت یا یک گروه میاد برای برنامه نویسان *وب* یک IDE طراحی میکنه پس قابلیت پلاگین نویسی اون رو هم باید با زبان های مرتبط با وب پیاده کنه ... مثلا با جاوا اسکریپت و HTML ...
من دنبال این بودم که IDE که میخوام طراحی کنم قابلیت پلاگین نویسی با جاوا اسکریپت رو داشته باشه تا هر کسی که حداقل آشنایی با این زبان رو داره بتونه یه پلاگین ساده برای خودش بنویسه
پیاده سازیش هم کار مشکلی نیست ... توی دلفی از یک Compiler ـه جاوا اسکریپت به نام PaxCompiler میشه استفاده کرد که کار ترجمه ی فایل ها رو انجام بده...

خلاصه هر IDE که من دیدم یجورایی یه ضعفی داشت ... مثلا بعضی از IDE ها Auto-Complate خوبی ندارند و...

در مورد رویداد ها هم فعلا چیزی به ذهنم نمیرسه ... از دوستان دیگه سوال کنید.

خسته نباشید.

----------


## morrning

> Qt فریمورک خیلی قدرتمند و خوبی هست و البته متن باز و Cross-Platform ... خیلی خوب میشه اگه این IDE رو بتونیم برای سیستم عامل ویندوز و لینوکس و مک طراحی کنیم...
> من خودم قصد داشتم با دلفی یک IDE بنویسم ، اما چون دیدم شما هم تو فکر ساخت IDE هستید گفتم ایده های خودم رو با شما در میون میزارم و توی این پروژه یجورایی شریک میشم باهاتون...
> 
> مثلا یکی از ایده های من Project Timeline هستش که میاد زیر پروژه یه Timeline ایجاد میکنه و شما فقط تاریخ شروع پروژه و حدود تاریخ پایان پروژه رو بهش میدید و اون میاد براتون حساب میکنه پروژه چند درصد پیشرفت کرده ، در طی ساخت پروژه کجا چه اتفاقاتی افتاده و... در کل یجورایی میاد پروژه رو مونیتور میکنه و پائین صفحه به کاربر نشون میده ... اما قابلیتی هست که کاربر میتونه اگه اون رو نخواست ازش استفاده نکنه ...
> یکی دیگه از مواردی که من همیشه بهش فکر میکردم این بود که چرا پلاگین های Eclipse و Netbeans و Sublime Text و... همشون با زبان های غیر از وب نوشته میشن ؟ چرا مثلا با جاوا اسکریپت نمیشه براشون پلاگین نوشت ...
> منظورم اینه که وقتی یک شرکت یا یک گروه میاد برای برنامه نویسان *وب* یک IDE طراحی میکنه پس قابلیت پلاگین نویسی اون رو هم باید با زبان های مرتبط با وب پیاده کنه ... مثلا با جاوا اسکریپت و HTML ...
> من دنبال این بودم که IDE که میخوام طراحی کنم قابلیت پلاگین نویسی با جاوا اسکریپت رو داشته باشه تا هر کسی که حداقل آشنایی با این زبان رو داره بتونه یه پلاگین ساده برای خودش بنویسه
> پیاده سازیش هم کار مشکلی نیست ... توی دلفی از یک Compiler ـه جاوا اسکریپت به نام PaxCompiler میشه استفاده کرد که کار ترجمه ی فایل ها رو انجام بده...
> 
> ...


ایده جالبی بود. 
برای توسعه همچین محیطی حقیقتا نیاز به همکاری بقیه هم هست که تیمی متشکل از حداقل ۵ نفر تشکیل بشه. بنده خودم میتونم در کد نویسی و تهیه مستندات uml برای توسعه کمک کنم.
البته به نظرم در این پروژه بر خلاف سرکش ابتدا کار رو با جذب نیرو شروع کنیم بهتر میتونه باشه. همچنین باید توسعه‌ی این IDE با توسعه سرکش در یک راستا باشه .هرچند ایجاد محیط پایه IDE و بخش های عمومی مثل AUTO COMPLETE و index کردن الحاقات پروژه های ورودی خودش کلی زمان میبره که توسعه داده بشه.

به نظرم برای این پروژه تایپینگ جدا در نظر گرفته بشه و دربارش بیشتر بحث بشه خیلی بهتره و مزیتش اینه که مباحث مربوط به IDE و فریمورک سرکش قاطی نمیشن.
اگه دیر جواب دادم ببخشید چون برای یه کاری مجبور شدم برم تهران و اونجا دسترسی به اینترنت نداشتم.

----------


## morrning

حلقه گم شده رویداد ها در سرکش میتونه دسترسی به المان های html و تغییر خواص اونها از طریق php باشه . با پیاده سازی این قضیه شما دیگه نگران تغییر خواص کنترل ها و نوشتن کد های زیاد javascript برای تغییر یه کنترل نخواهید بود.

هدفم یه همچین چیزی هست که در زیر میبینید که به تابع php که رویداد کلیک رو اجرا میکنه یه ارایه از اشیا از تمام کنترل های فرم به این تابع ارسال بشه و  برنامه نویس بعد از اعمال تغییرات اونو return کنه

public function test_onclick($form){
$form['control1']->name='test';
$form['ttextbox1']->label = "click me";
return $form;
}

----------


## Jarvis

> ایده جالبی بود. 
> برای توسعه همچین محیطی حقیقتا نیاز به همکاری بقیه هم هست که تیمی متشکل از حداقل ۵ نفر تشکیل بشه. بنده خودم میتونم در کد نویسی و تهیه مستندات uml برای توسعه کمک کنم.
> البته به نظرم در این پروژه بر خلاف سرکش ابتدا کار رو با جذب نیرو شروع کنیم بهتر میتونه باشه. همچنین باید توسعه‌ی این IDE با توسعه سرکش در یک راستا باشه .هرچند ایجاد محیط پایه IDE و بخش های عمومی مثل AUTO COMPLETE و index کردن الحاقات پروژه های ورودی خودش کلی زمان میبره که توسعه داده بشه.
> 
> به نظرم برای این پروژه تایپینگ جدا در نظر گرفته بشه و دربارش بیشتر بحث بشه خیلی بهتره و مزیتش اینه که مباحث مربوط به IDE و فریمورک سرکش قاطی نمیشن.
> اگه دیر جواب دادم ببخشید چون برای یه کاری مجبور شدم برم تهران و اونجا دسترسی به اینترنت نداشتم.


طبق تجربه ای که من داشتم اکثر برنامه نویسان تحت دسکتاپ ( دلفی ، کیوت و C++‎ ... ) فقط دارن این زبان ها رو یاد میگیرن و هیج جا بطور جدی ازشون استفاده نمیکنن و تعداد انگشت شماری از اونا هستن که مایل هستن که از دانشی که براش زحمت کشیدند توی یک پروژه استفاده کنند!
منظورم اینه که با وضع فعلی کپی رایت و فروش نرم افزار توی ایران ، فقط شدیم مصرف کننده ... البته خب بنده یک مقدار بهشون حق میدم ، اما خب بعضی نرم افزارها واقعا قدرت مانور دارن ، حتی توی ایران!
مثل همین IDE ... من و شما وب کار کردیم و می دونیم بین IDE هایی که برای وب استفاده میشن هیچکدوم ایرانی نیستن ...
ما اگه بتونیم یک IDE با ویژگی های خاص ، با ابزارهای جدید و بومی تولید کنیم ، و قیمت اون رو هم منصفانه ارزیابی کنیم ، احتمال موفقیت برای این نرم افزار خیلی زیاد خواهد بود...
هستند افرادی مثل خوده من که دوست دارند تا حد امکان از نرم افزارهای ایرانی استفاده کنند و اگه این اعتماد بوجود بیاد که این نرم افزار واقعا ارزش هزینه کردن رو داره حاضرن پولش رو هم پرداخت کنند
من خودم طرفدار Open-Source و نرم افزار آزاد هستم ، اما این به این معنی نیست که فقط از نرم افزارهای رایگان استفاده میکنم و حاضر نیستم واسه هیچ نرم افزاری پول بدم!!
مطمئن باشید توی ایران اکثر کسایی که وب کار میکنن حاضر میشن این IDE رو بخرن ... حداقل برای حمایت از تولید ایرانی ...
من تحت دسکتاپ آشنایی زیادی با C++‎ ندارم و چیزایی که بلدم فقط به درد خودم میخوره ... در اون حدی نیستم که بتونم توی توسعه بوسیله ی کیوت کمک کنم...
اما بالاخره هر قسمتی نیاز باشه ، مخصوصا رابط کاربری که به نظرم باید با اصول طراحی بشه میتونم کمک کنم ... و همچین گرافیک ...

فعلا باید تمرکزمون رو روی فریمورک بزاریم و اون رو به یک مرحله ی پایداری برسونیم ، مرحله ای که غیر از خودمون چار نفر آدم متخصص تر بتونن با بررسی اسمش رو فریمورک بزارن ...
وقتی فریمورک به اون مرحله برسه کم کم با تحقیق و مطالعه میشه برای شروع IDE اقدام کرد ...




> اگه دیر جواب دادم ببخشید چون برای یه کاری مجبور شدم برم تهران و اونجا دسترسی به اینترنت نداشتم.


من خودمم درگیری زیاد دارم ، این چند روزه هم صد بار اینترنتم قطع شد ... مشکلی نیست دوست خوبم  :چشمک:

----------


## morrning

> طبق تجربه ای که من داشتم اکثر برنامه نویسان تحت دسکتاپ ( دلفی ، کیوت و C++‎‎ ... ) فقط دارن این زبان ها رو یاد میگیرن و هیج جا بطور جدی ازشون استفاده نمیکنن و تعداد انگشت شماری از اونا هستن که مایل هستن که از دانشی که براش زحمت کشیدند توی یک پروژه استفاده کنند!
> منظورم اینه که با وضع فعلی کپی رایت و فروش نرم افزار توی ایران ، فقط شدیم مصرف کننده ... البته خب بنده یک مقدار بهشون حق میدم ، اما خب بعضی نرم افزارها واقعا قدرت مانور دارن ، حتی توی ایران!
> مثل همین IDE ... من و شما وب کار کردیم و می دونیم بین IDE هایی که برای وب استفاده میشن هیچکدوم ایرانی نیستن ...
> ما اگه بتونیم یک IDE با ویژگی های خاص ، با ابزارهای جدید و بومی تولید کنیم ، و قیمت اون رو هم منصفانه ارزیابی کنیم ، احتمال موفقیت برای این نرم افزار خیلی زیاد خواهد بود...
> هستند افرادی مثل خوده من که دوست دارند تا حد امکان از نرم افزارهای ایرانی استفاده کنند و اگه این اعتماد بوجود بیاد که این نرم افزار واقعا ارزش هزینه کردن رو داره حاضرن پولش رو هم پرداخت کنند
> من خودم طرفدار Open-Source و نرم افزار آزاد هستم ، اما این به این معنی نیست که فقط از نرم افزارهای رایگان استفاده میکنم و حاضر نیستم واسه هیچ نرم افزاری پول بدم!!
> مطمئن باشید توی ایران اکثر کسایی که وب کار میکنن حاضر میشن این IDE رو بخرن ... حداقل برای حمایت از تولید ایرانی ...
> من تحت دسکتاپ آشنایی زیادی با C++‎‎ ندارم و چیزایی که بلدم فقط به درد خودم میخوره ... در اون حدی نیستم که بتونم توی توسعه بوسیله ی کیوت کمک کنم...
> اما بالاخره هر قسمتی نیاز باشه ، مخصوصا رابط کاربری که به نظرم باید با اصول طراحی بشه میتونم کمک کنم ... و همچین گرافیک ...
> ...


هدف از ارائه همچین پروژه ای علاوه بر اهداف علمی و ... حقیقتا کسب درآمد هم هست.
بعد از رسیدن سرکش به پایداری میخوام از طریق فروش پلاگین های کاربردی براش کسب درآمد کنم. مثلا بعد از توسعه سرکش میخوام یه پلاگین برای سیستم های اتوماسیون اداری بنویسم که تحت همین فریمورک کار کنه.
همچنین برای بحث IDE هم قصد دارم به صورت متن باز توسعش بدم و برای پشتیبانی و نسخه های حرفه ای از مصرف کننده پول گرفته بشه. 
اگه این فریمورک کاربران زیادی پیدا کنه حتی میشه با فروش کتاب و آموزش های تصویری و برگذاری کلاس های آموزشی هم  کسب درآمد کرد ولی فعلا پلن اصلی همین فریمورک هست که کم کم در حال شکل گرفتن هست مخصوصا با کامیت هایی که به تازگی روی مخزن ارسال خواهم کرد میشه مستقیما از طریق کدهای PHP به رابط کاربری دسترسی پیدا کرد و المان های HTML رو تغییر داد یا مقدارشون رو خوند.
فعلا از همین کنترل ctr_button به عنوان نمونه استفاده میکنم و بعد از پایدار کردن و پیاده سازی ایده اصلی که مد نظرم هست سایر کنترل‌ها هم پیاده سازی میشه.
در فاز بعدی هم بحث غنی کردن کلاس های کتابخانه ای مطرح هست که باید مجموعه ای از کلاسهای کاربردی برای استفاده پلاگین نویسا در هسته قرار داده بشه .
بیشتر چیزایی که الان در سرکش پیاده‌سازی شده در واقع برای نشان دادن ایده اصلی و سازوکار استفاده هست که باید به مرور کامل بشه.

شما هم اگه قصد همکاری بیشتر دارید به نظرم تو بحث کامل کردن کلاس های کتابخانه ای برای فریمورک فعالیت کنید. اگه موافقیت تا بنده مستندات اضافه کردن کلاس ها رو براتون پیام خصوصی کنم . همچنین پروژه از سیستم کنترل نسخه git استفاده میکنه که اگه باهاش کار نکردید بفرمایید که آموزش استفاده از اون رو هم همینجا قرار بدم.

----------


## morrning

طبق آخرین کامیتی که روی مخزن ارسال شد تغییرات زیر رو اعمال کردم.
یک آرایه از کل المان های html با خواصشون که دارای خاصیت FORM یکسان هستند به تابعی که با رویداد مورد نظر قراره اجرا بشه , ارسال میشه.کلاس cls_uiobjects هم برای نگه دارای خاصیت المان های روی مرورگر کاربر اضافه شد.متد run_control از کلاس cls_router هم بازنویسی شد.

فعلا اطلاعات المان ها به سمت سرور ارسال میشه ولی فعلا اجرای تغییرات روی المان پیاده سازی نشده که در کامیت های بعدی این کار رو هم انجام میدم. با اتمام این کار اولین کنترل html که مستقیما میتونه از سمت سرور رویداد داشته باشه ساخته میشه . همچنین در سمت سرور به کل المان های html روی مرورگر هم دسترسی داریم و میتونیم  اونا رو تغییر بدیم.

با توجه به اینکه سفارش طراحی یک قطعه خودرو گرفتم که باید طراحی کنم تا حدود 3 ماه آینده شیب توسعه سرکش کمی کند میشه ولی سعی میکنم در همین 3 ماه هم تمام کنترل های مورد نظر رو پیاده سازی کنم.

----------


## Jarvis

کارتان را آغاز کنید ، توانایی انجامش به دنبال آن می آید. ( کوروش بزرگ )

----------


## morrning

برای اولین بار موفق شدم ارتباط بین مرورگر و سرور رو در کنترل button برقرار کنم به صورتی که هم میشه برای این کنترل تابع رویداد سمت سرور تعیین کرد و هم اینکه میشه از سمت سرور به المان های html روی مرورگر دسترسی داشت و پروپرتی های هر کدوم رو تغییر داد .این ارتباط به صورت ajax انجام میشه و همون لحظه تغییرات از سمت سرور روی مرورگر اعمال میشه!
بعد از کامل شدن این بخش از کار مستنداتش رو قرار میدم.


الان که فکر میکنم اصلا فکر نمیکردم از دنیای altium designer و آی سی های fpga  بیفتم تو فاز php . 
کلا حس خوبی دارم  :کف کرده!:

----------


## morrning

تغییرات جدید:

-چندین باگ در کلاس cls_page رفع شد.
-تغییر در نحوه مدیریت بلوک های روی صفحه 
-پیشرفت در رویداد onclick هم در سمت سرور و هم روی مرورگر.

جزپیات در آخرین کامیت روی پروژه قابل مشاهده هست.

----------


## morrning

فاز اجرای معماری مدنظرم برای کنترل ctr_button امشب به پایان رسید. خوشبختانه میتونم بگم با سرچ هایی که من داشتم تا حالا این ایده به ذهن کسی نرسیده که بخواد رویداد های سمت سرور رو به مرورگر متصل کنه.البته در فریمورک پردادو همچین چیزی وجود داره ولی ایجکس نیست و نیاز به ریفرش صفحه هست . ولی در سرکش همه رویداد های سمت سرور به صورت ایجکس انجام میشه و تغییرات هم به صورت ایجکس روی مرورگر اعمال میشه!
بنده تعدادی پروپرتی برای کنترل ctr_butoon در نظر گرفتم که در پست مربوطه بیشتر دربارش توضیح میدم همچنین یه سری پروپرتی جدید هم به این کنترل اضافه شده. اگه به نظر شما چیزی از قلم افتاده خوشحال میشم بگید که اعمال کنم!  :چشمک: 
برای مشاهده لیست پروپرتی ها و رویداد های این کنترل لینک زیر رو مشاهده کنید.
https://barnamenevis.org/showthread.p...=1#post2006814

همچنین برای توسعه‌ی کلاس های پایه هم به یک فهرست نیاز دارم که این کلاس ها به هسته اضافه بشه . اگه کسی لیستی مد نظرش هست دریغ(ق)  :لبخند گشاده!:  نکنه!

----------


## morrning

تغییرات جدید:

چندین باگ اساسی از ctr_button فیکس شد.
مورد بعدی رویداد onclick که خودش به سه رویداد J_BEFORE_CLICK و P_CLICK و J_AFTER_CLICK تقسیم میشه به صورت کامل پیاده سازی شد.
در CLS_UIOBJECTS هم چندین باگ فیکس شد.

----------


## morrning

ساختار مدیریت رخداد ها در سرکش و تعامل سمت مرورگر و سمت سرور توسط JSEC و PSEC

فعلا فقط برای سه رویداد ذکر شده!

----------


## morrning

روز جمعه خوبی بود!

ctr_butoon به همراه سه رویداد onclick و onfocus و onblur که هر کدوم شامل دو رویداد سمت مرورگر و یک رویداد سمت سرور هستند کاملا پیاده سازی شد.
همچنین تعدادی از پروپرتی های این کنترل که کاربرد تکراری داشتند حذف شدند.
تمام پروپرتی هایی که برای چسپاندن فایل های جاوا اسکریپت به هدر صفحات استفاده میشدن جای خودشون رو به پروپرتی SCRIPT_SRC دادند . در واقع توسعه دهنده باید توابع جاوا اسکریپتی که میخواد در صورت اجرای رویداد ها اجرا بشه رو داخل یک فایل بنویسه و آدرس اونو به این پروپرتی بده که به صفحات الصاق بشه.

همچنین برای سبک کردن حجم فایل های جاوااسکریپت برای مدیریت رخداد ها تمام فرآیندهای اجرای رخداد ها در هم ادغام شد که خروجی اون دو تا فایل هست که یکی روی مرورگر قرار داده میشه که من اسمشو گذاشتم JSEC و یکی هم متد run_control از کلاس cls_ruter هست که اسمشو گذاشتم PSEC که اینا با همکاری هم تمام رویداد های کلیک و فوکوس و بلار و .. رو هندل میکنن.
مورد بعدی اینکه چون پلاگین هایی که تا حالا واسه سرکش نوشته شده به صورت ساده هستند و از رویداد ها در اونها استفاده نشده به همین دلیل . اگه از برنامه زمانی که در پست اول قرار دادم جلو بیفتم شروع به بازنویسی اونها میکنم که از اولویت ها پلاگین محیط مدیریت و مدیریت کاربران خواهد بود.

با توجه به اینکه کسی در توسعه مشارکت نمیکنه و خودم دست تنهام متاسفانه برنامه زمانی توسعه خیلی بلند شده . ولی اگه حداقل یک تیم 4 برای توسعه فریمورک  و یک تیم 3 نفره برای توسعه IDE تشکیل داد. میشه ظرف یک سال ازش پول ساخت . خود فریمورک به صورت متن باز منتشر میشه ولی IDE پولی خواهد بود .
من اینجور فکر میکنم وقتی میشه دقیقا همون طوری که با دات نت تو ويزوال استودیو میشه برنامه نوشت و کنترل ها رو روی فرم درگ کرد و برای رویداداشون کد نوشت وقتی همچنین نوع برنامه نویسی روی مرورگر بیاد قطعا با استقبال مواجه میشه.

من فکر میکنم ایده پشت سرکش با توجه به جدید بودنش و اینکه تا حالا کسی سمتش نرفته میتونه در زمان کوتاه موفقیت زیادی به دست بیاره. که متاسفانه این زمان به سرعت برای من در حال گذر هست به صورتی که به جهت کار بنده روی چند پروژه دیگه توسعه فریمورک از  ۲۰ همین ماه تا مدتی حدود ۴ ماه به پایین ترین سرعت خودش خواهد رسید.

در این ۱۱ ماه توسعه من از چند فایل PHP که اسمشو زندیق گذاشته بودم به سیستمی رسیدم که اگه کمی بیشتر روش کار بشه مخصوصا بخش کلاس های کتابخانه ای میتونه حرفی برای گفتن داشته باشه. در توسعه سرکش ایده های بنده به همراه روش های استاندارد دیگه از جمله MVC و شی گرایی با هم پیش رفتن و در سیستم جاسازی شدند هر چند همین کار باعث شد خیلی جاها سورس هایی که کلی براشون زحمت کشیده بودم با یه شیفت دلیت  ساده پاک بشن. 

کلام آخر اینکه توسعه سرکش دیگه تو این تالار ادامه پیدا نمیکنه و در اواخر مرداد ماه  بر روی sarkesh.org منتقل خواهد شد که این وب سایت هم با همین فریمورک ساخته خواهد شد.
دوستانی هم که قصد دارن از آخرین خبر ها درباره این فریمورک و دریافت داکیومنت های آموزش کلاس ها  و ... مطلع بشن میتونن یک ایمیل خالی با عنوان news به news@sarkesh.org ارسال کنند تا خبرنامه براشون ارسال بشه.

همچنین با مراجعه با http://github.com/morrning/sarkesh از آخرین تغییرات پروژه مطلع بشید. از پروژه هم میتونید fork بگیرید.
نتیجه کامل شده ctr_button زو هم میتونید  از آدرس زیر تست کنید که چطور رویداد های سمت سرور باعث تغییر المان های html روی مرورگر میشن.
http://sarkesh.org/?plugin=users&action=test

مولا نگهدار

----------


## morrning

http://www.aparat.com/v/FwO7k

پیشنهاد میکنم حتما حتما حتما این ویدئو رو ببینید.در این ویدئو میبینیم که چطور در این فریمورک میشه توابع سمت سرور رو اجرا کرد و کنترل های روی صفحه رو تغییر داد.  فقط کمی هول شدم همش میگفتم درواقع :لبخند گشاده!: 

ابتدا یک اکشن برای پلاگین HELLO ساختم سپس یه دکمه(ctr_button ) نشون دادم. و در نهایت برای این دکمه رویداد کلیک سمت سرور تعریف کردم. دوستان عزیر در این فیلم دقیقا به ایده نو این فریمورک پی میبرید.

----------


## Jarvis

توی این ویدئو ، کدنویسی رو توی کدوم محیط انجام میدادی ؟

----------


## morrning

> توی این ویدئو ، کدنویسی رو توی کدوم محیط انجام میدادی ؟


geany
نمیدونم نسخه ویندوزی هم داره یا نه؟
با این فریم ورک دیگه لازم نیست با کد های جاوا اسکریپت و html و .... سرو کله بزنیم . همه چیز با php انجام میشه! به نظرت این چه مزیتایی داره؟

----------


## Jarvis

> geany
> نمیدونم نسخه ویندوزی هم داره یا نه؟
> با این فریم ورک دیگه لازم نیست با کد های جاوا اسکریپت و html و .... سرو کله بزنیم . همه چیز با php انجام میشه! به نظرت این چه مزیتایی داره؟


بله بابک جان ... این نرم افزار ظاهرا Cross-Platform هست...

در مورد سوالت هم به نظر من این برای همه ی کاربران شاید به درد نخوره .. ولی به درد خیلی از افراد حرفه ای میخوره .. مثلا آقای شهرکی دیگه بعد از این همه سال واقعا دیگه چه نیازیه که برای یک پروژه با کدهای Client-Side سر و کله بزنه ... به خصوص در حالتی که قالب رو یه نفر دیگه روش کار کرده باشه ...

در کل به نظر من امکان مفیدی خواهد بود.

----------


## morrning

از امروز سایت GITHUB به عنوان مخزن اصلی پروژه انتخاب شد.
تغییرات جدید
کنترل های tabbar checkbox textbox combobox پیاده سازی شدند.

قابلیتی که اکثر طراحان بهش نیاز دارن اینه که یه جدول از دیتابیس رو به یه combobox متصل کنند و این قابلیت در این کنترل قرار گرفته.
بعد از پایان کار کنترل ها طراحی سایت sarkesh.org آغاز میشه که لازمه اون یه ریویو روی پلاگین هایی هست که تاکنون نوشته شدن.
بعد از پایان توسعه کنترل ها قصد دارم یه pdf دربارشون بنویسم.

----------


## morrning

تغییرات جدید:
کنترل ctr_table با قابلیت تغزیه از آرایه های دو بعدی از دیتابیس و همچنین با قابلیت اضافه کردن سطری از آرایه تکمیل شد. 
فقط کمی روی ظاهر کنترل باید کار بشه که انشالله در روز های آینده انجام میشه.
همچنین رویداد ONCHANGE به کنترل CTR_COMBOBOX اضافه شد.
اطلاعات تکمیلی رو میتونید از لیست کامیت ها مشاهده کنید.

----------


## morrning

با توجه به اینکه در کنترل هایی که تاکنون طراحی شدن قابلیت کش کردن اطلاعات در نظر گرفته نشده به همین دلیل باید راهی برای کش کردن مجموعه ای از کنترل ها باید به وجود بیاد . به همین دلیل کنترل جدیدی نیاز هست که اگه توسعه دهنده ctr_form یا هر کنترل دیگه ای رو روش ترسیم کرد این اطلاعات ذخیره بشه و بعدا اگه همین مجموعه کنترل رو خواستیم نمایش بدیم از قابلیت کش این کنترل استفاده بشه. 
در وب همچین کنترلی نداریم به همین دلیل من یه اسم جدید براش گذاشتم. 
کاشی یا tile اسمی هست که انتخاب کردم. در این کنترل که در آینده پیاده سازی میشه اگه کنترلی رو بهش اضافه کردید میتونید بعدا به همین کنترل ولی از نوع کش شدش دسترسی داشته باشید.

با توجه به برنامه ریزی های قبلی فکر که فکر میکردم باید یه چیز کامل در نسخه آلفا ارائه بشه برنامه زمانی خیلی بلند میشد.ولی بعد از پیاده سازی کنترل های دیگه(۴ کنترل باقی مونده) و بازنویسی پلاگین های core و users و پلاگینی برای نمایش محتوا ها با نام entry . نسخه آلفا منتشر خواهد شد و کم کم امکانات جانبی اضافه میشن.

سرکش علاوه بر اینکه یک پروژه متن باز هست یک پروژه تجاری هم محسوب میشه. درآمد هم میتونه از طریق راه های زیر باشه که کل درآمد بین اعضایی که در آینده وارد گروه میشن تقسیم میشه.

منبع مالی :

-کمک های جامعه کاربری و حمایت شرکت ها و سازمان ها
-درآمد های مربوط به فروش لایسنس شرکت هایی که از این فریمورک برای کارهای تجاری استفاده میکنند.
لازم به ذکر هست پس از نسخه پایدار لایسنس انتشار تغییر میکنه . برای کار های شخصی کاربران به صورت رایگان میتون از سرکش استفاده کنن ولی برای کار های تجاری مثل وب سایت شرکت ها و ... باید یه مبلغی پرداخت بشه)
-درآمد از فروش فیلم های آموزشی و نشر کتاب و ...
-درآمد از فروش پلاگین ها
-درآمد از طراحی سایت هایی که انجامشون به گروه سپرده میشه.

----------


## morrning

کنترل هایی که تاکنون پیاده سازی شدن:

ctr_textbox
ctr_button
ctr_form
ctr_row
ctr_tabel
ctr_label
ctr_checkbox
ctr_combobox
ctr_image
ctr_tabbar

کنترل هایی که فعلا پیاده سازی نشدن
ctr_radiobutton
ctr_tile

کسی چیز جدیدی به ذهنش میرسه بفرمایید که اعمال بشه که انشالله بعد از نوشتن کنترل ها و ریویو روی پلاگین ها نسخه آلفا منتشر بشه

----------


## morrning

دنبال یه ادیتور تحت بوت استریپ که هم سبک باشه و هم انعطاف پذیر میگردم که قابلیت اضافه کردن پلاگین رو هم داشته باشه. میخوام ازش در کنترل ctr_textarea استفاده کنم.

دوستان به نظرتون چه ادیتوری بهتره؟

----------


## Jarvis

ActiveState Komodo IDE فکر کنم چنین قابلیتی داشته باشه ... البته پلاگین بوت استرپ رو داره ... نمیدونم نسخه لینوکس داره یا نه...

----------


## MRmoon

> ActiveState Komodo IDE فکر کنم چنین قابلیتی داشته باشه ... البته پلاگین بوت استرپ رو داره ... نمیدونم نسخه لینوکس داره یا نه...


فک کنم منظور ایشون یه ادیتور مثل CKEDITOR برای تکست آریا بود.

----------


## Jarvis

> فک کنم منظور ایشون یه ادیتور مثل CKEDITOR برای تکست آریا بود.


آهان .. ببخشید من منظورشون رو درست متوجه نشدم ...
فکر کن برای این کار این بدرد بخوره : http://mindmup.github.io/bootstrap-wysiwyg/

----------


## morrning

> آهان .. ببخشید من منظورشون رو درست متوجه نشدم ...
> فکر کن برای این کار این بدرد بخوره : http://mindmup.github.io/bootstrap-wysiwyg/


به نظرم باید خوب باشه . تو نسخه اولیه textarea ازش استفاده میکنم.

----------


## morrning

> آهان .. ببخشید من منظورشون رو درست متوجه نشدم ...
> فکر کن برای این کار این بدرد بخوره : http://mindmup.github.io/bootstrap-wysiwyg/




بعد از کلی سر و کله زدن با این ادیتور متوجه شدم مشکل بزرگی وجود داره و اونم اینکه این ادیتور با بوت استرپ ۲ هم خوانی داره!
فعلا در کنترل ctr_textarea از ادیتور NicEdit استفاده میکنم.انشالله در آینده ادیتور های بیشتری رو اضافه میکنم.

7 مرداد روز ارائه نسخه آلفا از فریمورک خواهد بود. البته این نسخه فاقد هیچ هر نوع پلاگینی هست و تنها فریمورک اصلی ارايه میشه.
طبق برنامه ریزی های من آبان ماه پلاگین های اساسی مثل پلاگین مدیریت هسته و کاربران و محتوا و ... رو پیاده سازی میکنم.

----------


## morrning

امروز تمام کنترل هایی که مد نظرم بود پیاده سازی شدن.
با توجه به اینکه در یک فریمورک استفاده از منابع اطلاعاتی از اولویت های  ضروری هست و متاسفانه با کلاسی که برای کار با بانک اطلاعاتی نوشتم فقط میشه با mysql ارتباط برقرار کرد و دستورات عادی رو انجام داد(حتی نمیشه تراکنش انجام داد). به همین دلیل دنبال یه کلاس یا فریمورک  قوی برای کار با دیتابیس میگردم که بتونم در فریمورکم ادغامش کنم.

فعلا دو مورد پیدا کردم
۱- http://medoo.in
۲-http://redbeanphp.com

کسی موردی که باهاش قبلا کار کرده باشه رو سراغ نداره؟

----------


## morrning

فریمورک زیر جایگزین کلاس CLS_DATABASE خواهد شد.

 
RedBeanPHP is an easy-to-use, *on-the-fly* ORM for PHP. It is     *zero config*, relying on strict conventions instead.
     Let's look at the code, this is how you do     CRUD in RedBeanPHP

//don't be afraid of the phar, just include it like a normal .php
    require 'rb.phar';
    R::setup();

    $post = R::dispense('post');
    $post->text = 'Hello World';

    $id = R::store($post);       //Create or Update
    $post = R::load('post',$id); //Retrieve
    R::trash($post);             //Delete

----------


## pswin.pooya

سلام
با تشکر از ایده و فریم ورک خوبتون. برانون آرزوی موفقیت دارم.

من تا اونجا که فریم ورک رو مطالعه می کردم یه انتقاد نسبت به اون دارم و اون هم نحوه مدیرت UI  هست. خب ما باید سعی کنیم که تا حد ممکن ui از کد php جدا باشه که توی مورد فریم ورک شما برعکسه و من وابستگی زیادی رو می بینم. حتی خیلی از فریم ورک های امروزی هم دارن از این مساله جدا میشن. فکر کنید برای کوچکترین تغییرات ui  شما باد کدهاتون رو تغییر بدید که البته این کاملا با روحیه آرتیستها و دیزاینرها مخالف هست. 

من خودم داخل فریم ورک خودم به شدت از این مساله دوری کردم. شیوه ای که من در پیش گرفتم اینجوریه که ui تصمیم می گیره که چه داده ای براش ارسال بشه و اون رو نمایش بده و تنها کنترلرها در مورد view تصمیم گیری میکنن. مثلا کنترلر admin تنها فایل admin.theme رو انتخاب می کنه و یه پارسر داخلی بقیه کارها رو انجام میده. به عنوان مثال داخل این فایل درخواست لیست منوها میشه و بعد کنترلر داده یا همون model رو در اختیار view یا همون فایل قرار میده. و در نهایت نتیجه تولید شده در صفحه رندر میشه. این شکلی بدون توجه به اینکه ui چه کاری میخواد انجام و یا چه جیزی رو چه شکلی نشون بده. کنترلر و مدل ثابت میمونن و تنها تغییر در view ها اتفاق می افته. 

من نظم اینه که به هیچ عنوان کنترلر نباید در اینکه قرار چی نشون داده بشه و چه شکلی نشون داده شه دخالت کنه و تنها معین کنه که داده باید ارسال بشه/ تغییر کنه/ اضافه بشه و اینجور چیزها تصمیم گیری بکنه. این مورد باعث میشه که برای شما فرقی نکنه که داده رو داره js نمایش میده و یا صفحه خالی از هرگونه js هست.

متاسفانه به دلیل تجاری بودن محصول نمی تونم زیاد وارد جزئیات بشم. فقط میتونم بگم که اگر میخواید محصول استیبل باشه همه چی رو از هم جدا کنید. نذارید مثلا model برای کنترلر و یا کنترلر برای view تصمیم گیری کنه.

----------


## morrning

> سلام
> با تشکر از ایده و فریم ورک خوبتون. برانون آرزوی موفقیت دارم.
> 
> من تا اونجا که فریم ورک رو مطالعه می کردم یه انتقاد نسبت به اون دارم و اون هم نحوه مدیرت UI  هست. خب ما باید سعی کنیم که تا حد ممکن ui از کد php جدا باشه که توی مورد فریم ورک شما برعکسه و من وابستگی زیادی رو می بینم. حتی خیلی از فریم ورک های امروزی هم دارن از این مساله جدا میشن. فکر کنید برای کوچکترین تغییرات ui  شما باد کدهاتون رو تغییر بدید که البته این کاملا با روحیه آرتیستها و دیزاینرها مخالف هست. 
> 
> من خودم داخل فریم ورک خودم به شدت از این مساله دوری کردم. شیوه ای که من در پیش گرفتم اینجوریه که ui تصمیم می گیره که چه داده ای براش ارسال بشه و اون رو نمایش بده و تنها کنترلرها در مورد view تصمیم گیری میکنن. مثلا کنترلر admin تنها فایل admin.theme رو انتخاب می کنه و یه پارسر داخلی بقیه کارها رو انجام میده. به عنوان مثال داخل این فایل درخواست لیست منوها میشه و بعد کنترلر داده یا همون model رو در اختیار view یا همون فایل قرار میده. و در نهایت نتیجه تولید شده در صفحه رندر میشه. این شکلی بدون توجه به اینکه ui چه کاری میخواد انجام و یا چه جیزی رو چه شکلی نشون بده. کنترلر و مدل ثابت میمونن و تنها تغییر در view ها اتفاق می افته. 
> 
> من نظم اینه که به هیچ عنوان کنترلر نباید در اینکه قرار چی نشون داده بشه و چه شکلی نشون داده شه دخالت کنه و تنها معین کنه که داده باید ارسال بشه/ تغییر کنه/ اضافه بشه و اینجور چیزها تصمیم گیری بکنه. این مورد باعث میشه که برای شما فرقی نکنه که داده رو داره js نمایش میده و یا صفحه خالی از هرگونه js هست.
> 
> متاسفانه به دلیل تجاری بودن محصول نمی تونم زیاد وارد جزئیات بشم. فقط میتونم بگم که اگر میخواید محصول استیبل باشه همه چی رو از هم جدا کنید. نذارید مثلا model برای کنترلر و یا کنترلر برای view تصمیم گیری کنه.


ممنونم از دیدگاهتون
احتمالا شما از ساختار پلاگین هایی که تا حالا نوشته شده به این نتیجه رسیدید. نظر شما کاملا درسته و بنده هم چند مدت پیش به فکر اصلاح پلاگین ها بر اساس مدل mvc افتادم ولی متاسفانه درگیر پیاده سازی قسمت دیگه ای از فریمورک و طراحی یه برد الکترونیکی هستم که کلی وقتم رو گرفتن و فعلا وقتی برای اصلاح پلاگین ها باقی نمیمونه.
در مول جدید درخواست کاربر به کنترلر ارسال میشه. کنترلر درخواست رو به ماژول منطقل میکنه . در ثسمت ماژول اگه پردازشی قراره انجام بشه انجام میشه و درخواست همراه با نتیجه پردازش به view ارسال میشه و view هم نتیجه رو نمایش میده. این همون ساختار mvc هست.

البته غیر از موردی که شما اشاره کردید یه ایراد دیگه ای هم در سیستم وجود داره که پلاگین ها validate نمیشن و همینجوری اجرا میشن. یعنی در صورت وجود پلاگین با درخواست کاربر پلاگین اجرا میشه و مکانیزمی برای غیر فعال کردن پلاگین ها غیر از حذفشون وجود نداره.

----------


## morrning

فعلا در حال تجزیه و تخلیل این فریمورک redbeanphp هستم که چطور این دو رو در هم ادغام کنم.
در کامیت بعدی روی مخزن شاهد پیشرفت بزرگی در بخش ساختار داده ای فریمورک خواهیم بود.
بعد از ادغام این دو و پیاده سازی کنترل کاشی( برای کش کردن صفحات) قصد دارم یه مجموعه فیلم آموزشی براش بسازم و همینجا قرار بدم که دوستان با نحوه کار این فریمورک بیشتر آشنا بشن.

----------


## morrning

یادم رفت اینم بگم که کنترل textarea با ادیتور nicedit پیاده سازی شد. برای ایجاد شی از این کنترل کافیه 
$A = new ctr_textarea;
$A->draw();

----------


## morrning

RedBeanPHP به فریمورک اضافه شد.
البته برای استفاده از امکانات این فریمورک باید از کلاس مربوط به اون که با نام cls_orm مشخص شده استفاده کنید.
برای مشاهده مستندات و راهنمای استفاده از این کلاس میتونید به وب سایت این فریمورک مراجعه کنید.
http://redbeanphp.com
البته در راهنماهای این وب سایت برای استفاده از توابع از کلاسی با نام R استفاده کرده که شما برای استفاده در محیط سرکش باید از کلاس cls_orm استفاده کنید.


از توانایی های این فریمورک میشه به ایجاد پایگاه داده روی حافظه موقت سیستم اشاره کرد که به on the fly گفته میشه و پشتیبانی از بانک های اطلاعاتی mysql,mariaDB,SqLite,PostgreSQL اشاره کرد.
نکته مهم در استفاده از این فریمورک این هست که باید نسخه php نصب شده روی سرور از 5.3.3 به بالا باشه!

----------


## morrning

امروز قصد دارم درباره طراحی المان ها با سرکش براتون توضیح بدم. اول از همه تصویر زیر رو ببینید.


هدف ما این هست که توسط سرکش یه همچین فرمی ایجاد کنیم بدون این که یک خط از html یا js استفاده کنیم. البته میتونید از اون ها هم برای انعطاف بیشتر در فرماتون استفاده کنید که در آینده توضیح میدم.

اگه از استاندارد برنامه نویسی MVC آشنا باشید  میدونید که کنترلر وظیفه هندل کردن دستورات کاربر رو بر عهده داره. پس ما ابتدا باید یک اکشن ایجاد کنیم.
برای مثال فایل controller.php از پلاگین hello رو باز کنید و کد زیر رو به اون اضافه کنید.

//this function return login form
    public function login(){
        return $this->module_login();
    }

اکشن ها هیچ فرقی با متد ها ندارن. هر اکشن در واقع یک متد از کلاس کنترلر هست که به صورت public باید تعریف بشه. درواقع این اکشن ها نقاط ارتباط بین کاربر و فریمورک هستند.
در کد بالا چون ما قصد داریم یک فرم ساده رو نشون بدیم درخواست رو به ماژول ارسال میکنیم.
فایل module.php از پلاگین hello رو باز کنید و کد زیر رو بهش اضافه کنید.


public function module_login(){
        return $this->view_login();
    }

خوب درخواست رو تونستیم به ماژول ارسال کنیم در این متد چون فقط قصد داریم یه فرم ساده نمایش بدیم و کار پردازشی وجود نداره درخواست نمایش به view باید فرستاده بشه.
دقت داشته باشید که طبق MVC کنترلر وظیفه هندل کردن درخواست های کاربران و معتبر سازی داده های ورودی . ماژول وظیفه پردازش اطلاعات و view وظیفه نمایش نتیجه رو بر عهده داره .

خوب فایل view.php رو باز کنید و کد زیر رو بهش اضافه کنید. 

$username = new ctr_textbox();
        $username->configure('NAME','txt_username');
        $username->configure('INLINE',TRUE);
        $username->configure('ADDON','U');
        $username->configure('PLACE_HOLDER',_('Username'));
        
        $password = new ctr_textbox();
        $password->configure('NAME','txt_password');
        $password->configure('INLINE',TRUE);
        $password->configure('LABEL',_('Password:'));
        $password->configure('ADDON','P');
        $password->configure('PLACE_HOLDER',_('Password'));
        
        $remember = new ctr_checkbox;
        $remember->configure('NAME','ckb_remember');
        $remember->configure('LABEL',_('Remember me!'));
        
        $login = new ctr_button;
        $login->configure('NAME','btn_login');
        $login->configure('LABEL',_('Sign in'));
        $login->configure('P_ONCLICK_PLUGIN','users');
        $login->configure('P_ONCLICK_FUNCTION','btn_login_onclick  ');
        $login->configure('TYPE','primary');
        
        $forget = new ctr_button;
        $forget->configure('NAME','btn_reset_password');
        $forget->configure('LABEL', _('Reset Password'));
        $forget->configure('HREF',cls_general::create_url(array('p  lugin','users','action','reset_password')));
        $forget->configure('TYPE','link');
        
        $r = new ctr_row;
        $r->add($login,3);
        $r->add($forget,9);
        
        $form = new ctr_form;
        $form->configure('NAME','users_login');
        $form->add_array(array($username,$password,$remember,$r)  );
       
return array(_('Sign in'),$form->draw());
        


خوب اگه دقت کنید . من ابتدا دو تا textbox برای نام کاربری و کلمه عبور ساختم و هر کدوم رو کانفیگ کردم
سپس یه چک باکس برای یادآوری ورود ایجاد کردم
در خطوط بعدی ابتدا یک دکمه برای ورود که به رویداد P_ONCLICK اون یک رویداد نسبت دادم
سپس یک دکمه دیگه برای پرش به صفحه بازیابی کلمه عبور ایجاد کردم.

حالا برای اینکه دو دکمه که در بالا تعریف کردم کنار هم و در یک سطر قرار بگیرند اومدم و یک ctr_row تعریف کردم و دو دکمه رو به اون اضافه کردم. آرگومان دوم متد add عرض المان رو مشخص میکنه که مجموع المان های اضافه شده نباید از ۱۲ بیشتر بشه.

و در آخر یک المان ctr_form ساختم و بعد از کانفیگ کردن name اون تمام المان هایی رو که تا حالا ساختم رو بهش اضافه کردم.
همه چیز تموم شده و حالا باید فرم رو به فریمورک برگشت بدم
برای این کار باید یک آرایه تک بعدی با دو اندیس برگشت بدم که اندیس اول برای نمایش در title صفحه و اندیس دوم برای نمایش در بخش content صفحه استفاده میشه.
برای این کار خط از کد زیر استفاده شده. (آخرین خط از متد view)

return array(_('Sign in'),$form->draw());


خوب حالا برای نمایش فرمتون مرورگر رو باز کنید و به آدرس زیر برید
http://YourSite.com?plugin=hello&action=login
login نام اکشنی هست که در فایل controller.php تعریف کردیم.

به همین راحتی میشه با سرکش اپلیکیشن طراحی کرد. در آینده درباره رویداد های سمت سرور و کنترل جادویی RV  :لبخند:  براتون توضیح میدم.

----------


## morrning

متاسفانه با توجه به اینکه دوستان رقبتی حتی برای تست برنامه هم ندارند مجبورم به یه صورت دیگه پروژه رو جلو ببرم به همین دلیل امروزwiki , iseeues روی پروژه رو فعال کردم.
تمام مطالب روی ویکی به صورت انگلیسی منتشر خواهد شد. همچنین بخش issues هم برای پرسیدن سوالات کاربران فعال کردم که همونجا هم درباره سوالات بحث خواهد شد.

دیگه این تایپینگ به غیر از خبر های درباره انتشار های پایدار به روز نمیشه. از کاربران هم خواهشمندم در صورتی که سوالی دارید روی issues پروژه در github مطرح کنید. (البته به زبان انگلیسی)
همچنین هسته فریمورک زودتر از موعود مقرر شده منتشر میشه(حدود یک ماه آینده) و بعد از اون سیستم مدیریت محتوایی بر پایه این فریمورک ساخته میشه که در نهایت این دو با هم مرچ میشن!
متاسفانه کلا از برنامه نویسای ایرانی زده شدم دلیلش رو نمیدونم  :ناراحت: 
معمولا طراحی های من بعد یه مدت خودشون رو نشون میدن  امیدوارم این مورد هم مثل بقیه باشه. :لبخند: 

فعلا مولا نگهدار

----------


## morrning

تاریخ دقیق انتشار نسخه آلفا از فریمورک سرکش روز هستم مرداد ماه میباشد.

در این نسخه چه ویژگی هایی وجود دارد.

-پشتیبانی از controls برای ترسیم فرم ها
-پشتیبانی از رویداد های سمت سرویس دهنده
-پشتیبانی از قالب ها
- قابلیت استفاده از موتور پردازش قالب raintpl
-قابلیت استفاده از موتور پردازش داده Redbean
-پشتیبانی از چند زبان با استفاده از فایل های mo/po
-محیط مدیریت برای دسترسی به تنظیمات سراسری
-قابلیت انتشار پراکنده فایل ها به صورتی که فایل های آپلود شده کاربران روی سرور های مختلف قرار داده میشود.
و امکانات دیگر که باید کشف شوند  :خجالت: 

این نسخه با نام شیخ شهاب الدین سهروردی از فیلسوفان نامدار ایرانی نامگذاری شده. درباره این فرزانه بیشتر بدانید: 

تعداد 168 کامیت روی مخزن محلی و حدود 70 کامیت روی github ارسال شده.
 امروز  355مین روزی هست که پروژه شروع  و تاکنون حدود 21724 خط کد php و 942 خط کد جاوا اسکریپت و 1893 خط کد css به پروژه اضافه شده.

----------


## piter11

به تو می گن یک برنامه نویسه کرمانشاهی نخبه  :چشمک:    راستی قیمت پیش خرید فریم ورکم اعلام کنید       دست خوش  :لبخند گشاده!:

----------


## piter11

ببخشید میشه این خصوصیت href از button یه توضیحی در موردش بدید 
$forget->configure('HREF',cls_general::create_url(array(  'p  lugin','users','action','reset_password')));

----------


## morrning

[QUOTE=piter11;2061837]ببخشید میشه این خصوصیت href از button یه توضیحی در موردش بدید 
$forget->configure('HREF',cls_general::create_url(array('p  lugin','users','action','reset_password')));[/QUOTE
$forget یه شی از کلاس button هست که href اون کانفیگ شده.
href کارش اینه که اگه ست بشه تمام  رویداد ها از کار میفتن و در صورت کلیک روی دکمه به آدرسی که در href مشخص شده صفحه جامپ میشه.

کلاس cls_general هم یه متد داره به اسم creat_url که کارش اینه که لینک میسازه. این برای بعدا به درد میخوره که clean url فعال باشه.
برای مثال خروجی تابع create_url در تابع بالا چیزی شبیه به لینک زیره
http://localhost/?plugin=users&action=reset_password

----------


## morrning

پروژه روی GITHUB  به پند زیر مجموعه تقسیم شد.
از امروز توسعه پلاگین ها خارج از مخزن هسته اصلی صورت میگیره.

SarkeshMVC در واقع هسته فریمورک هست که بدون پلاگین ها توسعه داده میشه. و هر یک از پلاگین ها هم در مخازن جدا توسعه داده میشن.
دوستان خدمتتون عرض کنم که برای نسخه آلفا که طبق برنامه ریزی قبلی اعلام کردم کمی از برنامه عقبم. از دوستانی که میتونن در توسعه کمک کنند عاجزانه تقاضای همکاری دارم.

کجا به یاری شما نیازمندیم؟
-توسعه پلاگین CORE 
-توسعه پلاگین USERS

برای استارت کار هم میتونید یه نگاهی به پلاگین USERS بندازید.

----------


## morrning

متاسفانه با توجه به مشکلاتی که برام پیش اومد نتونستم طبق برنامه زمانی که مشخص کرده بودم پیش برم و از برنامه عقب افتادم. 
در این مدت بخش‌های زیر به فریمورک اضافه شده

- محیط مدیریت برای کنترل پلاگین‌ها و تنظیمات اساسی فریمورک(البته لود پلاگین‌ها از داخل core تموم شده ولی پیاده سازی خود core مونده)
-توسعه پلاگین user
-تقسیم بندی پلاگین ها به پلاگین‌های سیستمی و عادی(پلاگین‌های سیستمی مانند کاربران و مدیریت هسته و مدیریت فایل ها و ...)
-پیشرفت در توسعه و اضافه کردن چندین کنترل جدید مثل tabbar و hidden و switch و uploader و ....
-اضافه کردن redbeanphp که یک کلاس قدرتمند برای مدیریت و دسترسی به پایگاه داده هست به فریمورک که با نام cls_orm در دسترس هست
برای مشاهده مستندات این کلاس به redbeanphp.com مراجعه کنید.
-بهبود هماهنگی و رفع چندین باگ در موتور پردازش قالب raintpl 
- آغاز توسعه پلاگین مدیریت فایل‌ها به صورتی که برای ذخیره سازی فایل ها بتوان از جندین منبع داده به صورت همزمان استفاده کرد.
-بهبود پیاده سازی mvc در فریمورک
-بازنویسی پلاگین های قدیمی و استفاده از کنترل های جدید تعریف شده در این پلاگین ها
آدرس مخزن پروژه روی github هم http://github.com/morrning/sarkesh هست. از دوستانی که میتونن تقاضامندم در تکمیل بخش wiki و تکمیل بخش های ناتمام همیاری داشته باشن

----------


## hooman.pro

ایشاالله که موفق باشید. اما خیلی ابهامات تو ذهن من با دیدن این کار شما نوشتن فرم ورک ایرانی شکل گرفت:
آیا این کار رو برای در آمد انجام میدین؟ بهتر نبود با این همه دانش به نوشتن اکستنشن ها و ... برای فرم ورک های خوب مثل یی بپردازید؟ کلا اگر هدف از این کار مشخص بشه شاید دوستانی پیدا بشن که با دونستن هدف به کمک شما بیان. من که دانشم به زور در حد استفاده از فرم ورک هست :لبخند گشاده!:

----------


## morrning

> ایشاالله که موفق باشید. اما خیلی ابهامات تو ذهن من با دیدن این کار شما نوشتن فرم ورک ایرانی شکل گرفت:
> آیا این کار رو برای در آمد انجام میدین؟ بهتر نبود با این همه دانش به نوشتن اکستنشن ها و ... برای فرم ورک های خوب مثل یی بپردازید؟ کلا اگر هدف از این کار مشخص بشه شاید دوستانی پیدا بشن که با دونستن هدف به کمک شما بیان. من که دانشم به زور در حد استفاده از فرم ورک هست


ممنونم. من کار اصلیم طراحی سخت افزار برای صنایع خودروسازی هست و تا حالا انگیزه کسب درآمد (به عنوان کار اصلی) نسبت به این قضیه نداشتم.
بنده برنامه‌نویس هستم ولی واقعا شغل خودم رو برنامه‌نویس نمیدونم . در مورد توسعه این فریمورک هم عرض کنم یه روز تصمیم گرفتم کمی برنامه‌نویسی تحت وب یاد بگیرم و بعد از مدتی که مقداری پیشرفت کردم به این نتیجه رسیدم که برنامه‌های تحت وب یه مشکل بزرگ دارن و این قضیه عدم وجود رویداد‌های سمت سرور برای کنترل‌های HTML هست. با همین ایده توسعه‌ی فریمورک رو شروع کردم و تا حالا به این سطح نزدیک شدم که شما با کنترل‌های سفارشی از پیش تعریف شده مثل دکمه و تکست‌باکس و ... بدون درگیر‌شدن با کد‌های جاوااسکریپت و html و ... فرم‌هاتون رو طراحی کنید و برای هر المانی که در داخل فرم‌هست رویداد‌های سمت سرور تعیین کنید.(مثلا به این صورت که تنظیم میکنید اگه رو این دکمه کلیک شد، فلان تابع از پلاگین فلان اجرا بشه و نتیجه این عملیات رو به صورت آیجکس میتونید مشاهده کنید.) 
با جست و جو هایی که بنده تا حالا داشتم تا حالا هیچ فریمورکی (غیر از پرادو که اونم به صورت آیجکس نیست) این قابلیت مهم رو نداره.

دوستان اگه مایل باشید یه فیلم آموزشی از رویداد‌های سمت سرور تهیه کنم و براتون بزارم ببینید چطور این فریمورک طراحی رو سریعتر و بهتر میکنه.

----------


## morrning

در این ویديو که امروز تهیه کردم یه مثال عملی از کار با فریمورک هست که میتونید بدون درگیر شدن با html css javascript . تنها با php فرم ها رو ایجاد و مدیریت کنید . همچنین رویداد های آیجکس سمت سرویس دهنده رو هم با این فریمورک پیاده‌سازی کنید.

http://s5.picofile.com/file/81399964...rkesh.mkv.html

----------


## morrning

اگه کسی ویدئو رو دیده حداقل اعلام کنه که کمی روحیه بگیرم :لبخند: .
برای تهیه یه نام دامنه )Namespace ) به کمک نیاز دارم دوستان کسی هست که بتونه راهنمایی کنه؟

----------


## MRmoon

درود.

اگخ فیلم رو با 7z قشرده می کردی جتما میدیمش.

اون فیلمی رو که تو ـپارات گذاشته بودی قبلا دیدم.

در باره ی اون موردی که تو گیت هاب بهت گفتم. استفاده از یه سیستم ترسلشن دیگه هم فکری کردی؟

منظورت از نام دامنه چیه؟؟؟

بعئد پیشنهاد اینه که فریم ورک رو بر اساس استاندارد های php-fig تنظیم کنی.
*محمد.*

----------


## morrning

> درود.
> 
> اگخ فیلم رو با 7z قشرده می کردی جتما میدیمش.
> 
> اون فیلمی رو که تو ـپارات گذاشته بودی قبلا دیدم.
> 
> در باره ی اون موردی که تو گیت هاب بهت گفتم. استفاده از یه سیستم ترسلشن دیگه هم فکری کردی؟
> 
> منظورت از نام دامنه چیه؟؟؟
> ...


اینو رو یوتیوب آپلود کردم میتونی با حدود ۱۰ کیفیت مختلف ببینیش
https://www.youtube.com/watch?v=cGGRFXGt4t8

آره رو اون مورد هم فکر کردم. همراه با این سیستم ترنسلیشن میخوام از آرایه‌ها هم استفاده کنم که در صورت نبود سیستم ترجمه اول از دومی استفاده بشه.

php-fig رو هم از هفته آینده روی فریمورک به مرور اعمال میکنم.

----------


## ABZiko

سلام، بنده در این حد نیستم که بخوام برای کار های شما نظر بدم ولی در کل از این کارتون واقعا خوشم اومد، از لحاظ گرافیکی که خیلی قشنگ بود، از لحاظ کاربرد و ساخت عناصر زبان های HTML هم که خیلی باحال بود ، یک کد می نوشتیم و خودش دیگه نیازی به استایل دهی نداشتن، در کل باید بگم خیلی جالب بود، پیروز باشید! :متفکر:

----------


## morrning

> سلام، بنده در این حد نیستم که بخوام برای کار های شما نظر بدم ولی در کل از این کارتون واقعا خوشم اومد، از لحاظ گرافیکی که خیلی قشنگ بود، از لحاظ کاربرد و ساخت عناصر زبان های HTML هم که خیلی باحال بود ، یک کد می نوشتیم و خودش دیگه نیازی به استایل دهی نداشتن، در کل باید بگم خیلی جالب بود، پیروز باشید!


خیلی ممنون. موردی که این فریمورک رو از بقیه متمایز میکنه همین قضیه هست که با چند خط کد php میشه استایل دهی ، آیجکس ، رویداد سمت سرور، و ... رو با هم داشت.
البته تمام کنترل‌هایی که تا حالا به فریمورک اضافه کردم با کانفیگ هایی که براشون در نظر‌گرفتم قابلیت شخصی سازی دارند تا جایی که طول و عرض و رنگ و ... و افزودن کلاس‌های css سفارشی و ... رو میشه بهشون اضافه کرد و خروجی مطابق سلیقتون رو در خروجی داشته باشید.
الان برای طراحی وب باید چند تا زبان رو یاد گرفت ولی بر خلاف بقیه فریمورک‌ها در اینجا هدف اینه که با فقط با php به خواسته نهاییتون برسید.
البته این فقط یه پیش‌نمایش بود و طبق برنامه‌ریزی‌ قراره قابلیت‌های بیشتری مثل ایجاد یک کنترل برای کش کردن فرم‌ها و توسعه چند پلاگین پایه‌ای و ... رو به پروژه اضافه کنم.

اگه پیشنهادی مد نظرتون هست خوشحال میشم مطرح کنید که شاید بقیه دوستان هم کمی در بحث درگیر بشن. :لبخند:

----------


## morrning

دنبال یه صفحه اختصاصی ۴۰۴ میگردم ولی متاسفانه خودم خلاقیت خوبی ندارم.
از دوستانی که میتونن این کار رو انجام بدن لطفایه صفحه ۴۰۴ اختصاصی برای این فریمورک طراحی کنید. :تشویق:

----------


## MRmoon

درود.

در چه استایلی میخواین؟؟؟

جدا باشه؟؟؟ یا نه در قالب(template, layout)خود فریم ورک...

*محمد.*

----------


## morrning

> درود.
> 
> در چه استایلی میخواین؟؟؟
> 
> جدا باشه؟؟؟ یا نه در قالب(template, layout)خود فریم ورک...
> 
> *محمد.*


میخوام به صورت تمام صفحه باشه و از html css عادی تشکیل شده باشه.
میتونید از موتور پردازش قالب raintpl هم استفاده کنید.

میخوام یه چیزی باشه که جایگزین فایل زیر بشه
https://github.com/morrning/sarkesh/...g/tpl/404.html

----------


## ABZiko

> اگه پیشنهادی مد نظرتون هست خوشحال میشم مطرح کنید که شاید بقیه دوستان هم کمی در بحث درگیر بشن.


واقعیتش این قدر کامل و زیبا بود که هر چی فکر کردم پیشنهادی به ذهنم نرسید ، فقط یک سوال داشتم، عناصری که توسط framework شما ساخته می شن، مثل framework های زبان های سمت client مثل bootstrap، رسپانسیو هستند؟
تشکر

----------


## morrning

> واقعیتش این قدر کامل و زیبا بود که هر چی فکر کردم پیشنهادی به ذهنم نرسید ، فقط یک سوال داشتم، عناصری که توسط framework شما ساخته می شن، مثل framework های زبان های سمت client مثل bootstrap، رسپانسیو هستند؟
> تشکر


کل خروجی‌هایی که توسط کنترل‌های سفارشی و با php تولید میشه بر پایه bootstrap 3 هست که رسپانسیو هست.البته اگه طراح کار کردن با bootstrap رو دوست نداشته باشه میتونه اونو غیر‌فعال کنه و css های اختصاصی بنویسه.

مد نطرم هست که یه جوری باشه که بعدا هر کسی با دیدنش بگه این سایت از این فریمورک استفاده کرده. حالت نماد بشه!

----------


## ABZiko

موفق باشین، انشالله که بیشتر با PHP و فریمورک ها آشنا شدم، میام و با اجازتون از Framework سرکش استفاده می کنم! پیروز باشید ! :چشمک:

----------


## MRmoon

> کل خروجی‌هایی که توسط کنترل‌های سفارشی و با php تولید میشه بر پایه bootstrap 3 هست که رسپانسیو هست.البته اگه طراح کار کردن با bootstrap رو دوست نداشته باشه میتونه اونو غیر‌فعال کنه و css های اختصاصی بنویسه.
> 
> مد نطرم هست که یه جوری باشه که بعدا هر کسی با دیدنش بگه این سایت از این فریمورک استفاده کرده. حالت نماد بشه!


درود.

بهتر نیست کلاس ها رو ببری تو نیم اپیس؟؟؟

*محمد.*

----------


## morrning

> درود.
> 
> بهتر نیست کلاس ها رو ببری تو نیم اپیس؟؟؟
> 
> *محمد.*


یکی از چیزایی که در php-fig اومده اینه که از نیم اسپیس استفاده بشه.
از فردا قراره رو این قضیه کار کنم . احتمالا تا آخر هفته این قابلیت هم به فریمورک اضافه بشه.

----------


## morrning

یه شاخه با نام addns روی مخزن پروژه ایجاد کردم که برای اضافه کردن namespace به فریمورک هست.
در این شاخه تمام کلاس‌های کتابخانه‌ای که تا حالا ایجاد شدن به همراه کلیه پلاگین‌های نوشته شده و کنترل‌های سفارشی همگی در name space هایی طبقه بندی میشن.

تابع autoload هم یه بازنویسی اساسی نیاز داره و باید از اول نوشته بشه.
دوستانی که قصد دارن فریمورک رو دانلود کنند حتما از شاخه master استفاده کنند چون شاخه addns به شدت ناپایداره.

----------


## DR.HTML

به امید موفقیت برای خود شما وفریمورکتون همشهری .بعضی اوقات تاپیک رو دنبال میکردم اما مدتی بود پستی ارسال نمیکردید گفتم شاید قضیه منتفی شده اگر هنوزم کمک برای ساخت پروژتون میخواین درخدمتم  :چشمک:

----------


## morrning

> به امید موفقیت برای خود شما وفریمورکتون همشهری .بعضی اوقات تاپیک رو دنبال میکردم اما مدتی بود پستی ارسال نمیکردید گفتم شاید قضیه منتفی شده اگر هنوزم کمک برای ساخت پروژتون میخواین درخدمتم


ممنونم. راستش چون هیچکی در توسعه مشارکت نمیکرد یه مدت قصد داشتم داخل این تایپینگ پستی ارسال نکنم ولی کار توسعه رو متوقف نکردم . اتفاقا بیشترین کامیت ها تو همین مدت روی مخزن پروژه ارسال شدن.
کلا تو این فریمورک به ۳ نوع کمک نیاز داریم
۱-کسایی که میتونن به پروژه برای کارای مختلف کلاس اضافه کنند که کلاس های کتابخونه ای فریمورک تکمیل بشه.
۲-کسایی که میتونن در نوشتن داکیومنت برای کلاس های مختلف و سازوکار های فریمورک مشارکت کنن
۳-کسایی که میتونن در کدنویسی قسمت‌های مختلف شرکت کنن

الان بنده به یه قالب ۴۰۴ اختصاصی نیاز دارم که در فریمورک ازش استفاده کنم.
و در حال حاضر در حال اضافه کردن namespace به فریمورکم که اختمالا باید  همه‌ی ۲۵۰۱۹ خط فریمورک بازبینی بشه.

همشهری بگو کجای این معرکه دوست داری بجنگی؟ :لبخند گشاده!:

----------


## DR.HTML

کل قسمتهارو میتونم کمک کنم شما هرکدوم دوست داری بگو من همونجا شرکت میکنم

----------


## morrning

اگه دوست دارید روی این کلاس کار کنید
https://github.com/morrning/sarkesh/...ls/cls_ftp.php
کلاسی درباره کار با منابع ftp برای مبادله فایل هست.
اگه این بخش رو دوست ندارید در هر زمینه ای که مایلید کلاس کتابخونه ای بنویسید قبلش به بنده اطلاع بدید که موازی کاری نشه.

یا اینکه روی ساخت یه صفحه اختصاصی برای صفحات 404 و 403 با استفاده از html css کار کنید.

یا اینکه در ویکی پروژه در آدرس زیر برای کنترل های تعریف شده داکیومنت تهیه کنید.
https://github.com/morrning/sarkesh/wiki/Controls

پیشنهاد من اینه که ابتدا از پروژه روی گیت هاب که در آدرس زیر هست فورک بگیرید و سپس تغییراتتون رو با pull request به مخزن اصلی ارسال کنید.
https://github.com/morrning/sarkesh

----------


## morrning

امروز نام کلاس‌های پایه همراه با یه تابع autoload جدید نوشتم. اینجور که معلومه برای پیاده سازی namespace ها در فریمورک همه‌ی کد ها باید بازبینی بشن.
تو چند روز آینده خبرشو همینجا میزارم.

امروز که داشتم php-fig رو نگا میکردم دیدم نوشته روش نامگذاری متغییر ها باید از نوع کوهان شتری باشه. نمیدونم چرا اصلا با این نوع نامگذاری راحت نیستم ولی به هر حال پلاگین‌های جدید و کد‌هایی که در آینده اضافه میشن با همین روش نام گذاری میشن

----------


## DR.HTML

فکر کنم اسمتون بابک باشه اگر اینطوره آقا بابک من یه صفحه 404 طراحی کردم فریمورکم pull کردم اما نمیدونم چی شد با پورت ssl یهو اینترنتم قاط زد خواستم ببینم چطور براتون صفحرو بفرستم ضمنن در مورد نوشتن کلاس ها چطور میتونم باهاتون صحبت کنم ؟

----------


## morrning

> فکر کنم اسمتون بابک باشه اگر اینطوره آقا بابک من یه صفحه 404 طراحی کردم فریمورکم pull کردم اما نمیدونم چی شد با پورت ssl یهو اینترنتم قاط زد خواستم ببینم چطور براتون صفحرو بفرستم ضمنن در مورد نوشتن کلاس ها چطور میتونم باهاتون صحبت کنم ؟


میتونید همینجا آپلود کنید من اعمالش میکنم. ولی راه درستش اینه که اول از پروژه روی github فورک بگیرید و بعد از اینکه صفحه ۴۰۴ رو اضافه کردید. pull request بفرستید که به پروژه اضافه بشه.
در مورد کلاس ها هم روی github یه شاخه جدید ایجاد کردم که روی این شاخه namespace ها رو اعمال کنم که هنوز تکمیلش نکردم. شما اگه خواستید فورک بگیرید از شاخه master فورک بگیرید.

----------


## DR.HTML

اقا بابک من ارسال کردم دوتا صفحرو متاسفان مثل اینکه پورت ssl من مشل  ایجاد شده براش به سختی میشه کار کرد با git همون توی شاخه اصلی اضافه کردم  و pull request رو فرستادم logo رو هم هر کار کردم نمیشد نمیدونم چرا این  پورت من خراب شده و هرکار میکردم اضافه شدنی نبود هیچ فایلی همون دوتا به زور فرستادم در صورتی که پسندید فایل logo رو بگید ارسال کنم براتون

----------


## morrning

سلام
الان پروژه رو نگا کردم متاسفانه pull request جدیدی نیومده!؟

میشه همینجا آپ کنید؟

----------


## morrning

الان pull request اومد. من اینو با شاخه addns مچ میکنم که بعدا به شاخه master انتقالش بدم. چند تا نکته هم کامنت گذاشتم که اگه وقت کردی اعمالش کن.

----------


## morrning

نیم اسپیس‌ها به شاخه addns اضافه شد.
بعد از مچ کردن با شاخه master میشه به کلاس های کتابخونه ای از دامنه core\cls و برای استفاده از کنترل‌های پیش ساخته از core\control و برای استفاده از پلاگین‌های سیستمی از core\plugin و برای دسترسی به پلاگین‌های افزوده شده به هسته از    addons\pluginname استفاده کنید.

شاخه addns فکر کنم امروز یا فردا با شاخه اصلی مچ میشه.همچنین پلاگین‌های سیستمی در آینده به مکان جدیدی منتقل میشن.

----------


## morrning

namespace ها به صورت کامل پیاده سازی شد. تو این چند روزه کل سورس ها رو ویرایش کردم و کلی پایداری فریمورک اومد پایین. ولی امروز دیگه تقریبا کار تموم شد و شاخه addns پروژه روی شاخه اصلی(master) مچ شد.
اگه باگی چیزی پیدا کردید روی گیت هاب گزارش بدید که رفعشون کنم.

به دلیل مشکلاتی که برای مخزن روی گیت هاب پیش اومده بود مجبور شدم force push کنم که یه سری از pull request هایی که قبلا اعمال شدن از بین رفتن.  دوستانی که روی پروژه pull request ارسال کردند لطفا درخواستتون رو دوباره بفرستید که دوباره اعمال بشه.

کسایی هم که فورک گرفتن. چون تغییرات خیلی زیادی روی برنامه داده شده پیشنهاد میکنم مخزن محلیشون رو آپدیت کنن که بعدا برای pull request های ارسالی مشکلی پیش نیاد.

روند نامگذاری به شکل زیر هست.
تمام پلاگین ها از core\plugin\PLUGIN_NAME  پیروی میکنن.
کلاس های کتابخانه ای هم از core\cls\TYPE\CLASSNAME استفاده میکنن . که TYPE زیر شاخه و CLASSNAME نام کلاس رو مشخص میکنه.
برای مثال:
core\plugin\users
core\cls\db\mysql
core\cls\browser\page

در آخر هم یه نکته ای اضافه کنم که نام پلاگین core به administrator تغییر پیدا کرد.

در هفته آینده هیچ تغییری روی مخزن انجام نمیشه و تمام pull request ها بعد از اطمینان از کامل بودن روز جمعه آینده روی مخزن اعمال میشن.

دوست دارم ببینم تا هفته آینده چند تا pull request داریم!؟
منتظر فیدبک هاتون هستم  :لبخند:

----------


## morrning

اینم یه اسکرین شات از محیط مدیریت فریمورک. البته فعلا پیش نمایشه و احتمال تغییرات زیاده.

----------


## morrning

میخوام برای تهیه مستندات تا زمانی که نسخه اولیه آماده میشه یه ویکی داشته باشم که دوستان دیگه هم بتونن در تولید داکیومنت ها هم همکاری کنن ولی متاسفانه wiki روی سایت github قابلیت pull request رو نداره. به نظر شما کدوم cms برای محتوا‌های ویکی مناسبتره.

----------


## DR.HTML

mediawiki امتحانشو همه جا پس داده

----------


## morrning

> mediawiki امتحانشو همه جا پس داده


گذینه خوبیه فقط خیلی پیشرفتس. یه چیز خیلی ساده میخوام.
اینم موقتیه چون اولین کاری که بعد از انتشار نسخه اولیه انجام میدم نوشتن پلاگین ها برای راه اندازی وب سایت اصلی هست. مثل ویکی و انتشار خبر و پرسش و پاسخ و نظرسنجی و ...

----------


## morrning

از امروز سعی میکنم تا دو هفته آینده روی یه قسمت جدید از فریمورک کار کنم که نصب فریمورک شبیه جوملا و ... به صورت ویزارد انجام بشه.
برای همین کار به یه قالب تک ستونه نیاز دارم که عملیات نصب فریمورک در اون قالب انجام بشه. دوستان عزیز کسی هست بتونه این کار رو انجام بده؟
البته یه قالب ساده و ترجیها بوت استرپی مد نظرم هست.

----------


## DR.HTML

تا شب يه قالب براتون ميفرستم

----------


## morrning

> تا شب يه قالب براتون ميفرستم


خیلی خیلی ممنونم.
اون قالب ۴۰۴ هم مرچ شد!

میخواستم نظرتون رو درباره قالب بخش مدیریت فریمورک بدونم.
از sarkesh.org با نام کاربری و کلمه عبور test وارد بشید بعد رو دکمه admin panel کلیک کنید تا قالب رو ببینید.

----------


## DR.HTML

بله كلاس ftp هم ديدم كه مرج كرديد باتشكر

----------


## morrning

امروز یه مقداری رو قسمت رجیستر کاربران کار کردم و uml هاش رو آماده کردم.
به نظر دوستان غیر از namespace ها چه چیزای دیگه ای باید به فریمورک اضافه بشه؟
----------------------------------------------------

یه گلگی هم از آقای شهرکی دارم که قول دادن در توسعه این فریمورک کمک کنن ولی فکر کنم پکیج ساختن همه چیزو از یادشون برده؟!
باور کنید منم نه برنامه نویسم و نه هدفم کسب درآمد از این کاره. فقط میخوام تو دنیای متن باز یه برنامه با کاربرد جهانی داشته باشیم. الان نگا کنیم اکثر توسعه دهنده های متن باز ایرانی تو کار نوشتن تقویم شمسی هستند که فقط مصرف داخلی داره و تک و توکی پیدا میشه که برنامه‌ای غیر از این مصارف رو توسعه بدن.

منم اگه هدفم کسب درآمد بود حاصل کارم رو فی سبیل الله رو گیت هاب نمیزاشتم.
یه دوستی پیام فرستاده بود: "راستشو بگو چی تو سرته؟ من که میدونم میخوای بعد از اینکه بقیه رو گول زدی و کارتو تکمیل کردی فلنگو ببندی. فایلاتم از رو این سایته برداری."
حال من واسه این بابا چطور مفهوم open source , git, fork , ... رو توضیح بدم?!
*لطفا در صورت داشتن سوال و یا درخواست همکاری،درخواست خود را در مخزن پروژه در آدرس زیر مطرح کنید.
https://github.com/morrning/sarkesh*

----------


## MRmoon

درود.

آقا بابک چند تا پیشنهاد داشتم:

اول این که بیایم کلا روش نوشتن پلاگین ها رو به MVC تغییر بدیم. الان این مدلی که شما نوشتین یه مقدار گنگ هستش و زیاد جالب نیست(شاید از نظر من).

دوم این که یک active record ِا ORM اختصاصی بنویسیم یا بیایم داکتراین رو اضافه کنیم. این RedBean زیاد جالب نیست.


----------------------

و در آخر نفهیدم این فریم ورکه ؟؟؟ CMF ؟؟؟ CMS ؟؟؟  :متفکر:

----------


## MRmoon

یه چیز دیگه.

مدل نوشتن کنترل ها هم از به نظرم زیاد جالب نیست.

حالا من یه تغییراتی تو نحوه یی کار کردنشون میدم. بعد شما نظرتون رو درباره ی مدل کارکردنشون بدید.

----------


## morrning

پلاگین‌ها که بر اساس mvc نوشته شدن. الان مثلا پلاگین users رو نگا کنی کلا بر اساس mvc هست.یهنی تو قسمت کنترلر سرویس ها و اکشن ها تعریف شدن و در ماژول کارای پردازشی و.. و ویو هم که اطلاعات رو نمایش میده.
البته خود mvc هم به نوع های مختلفی پیاده سازی میشه. یه مثال بزنی فکر کنم بهتر متوجه بشم.

کدوم قسمت کنترل ها مد نظرت هست؟ بخش مدیریت کننده رویداد های سمت سرور یا کلا خود کنترل ها؟

سرکش از دید من یه فریمورکه . ولی پلاگین‌هایی برای مدیریت محتواها هم قصد دارم براش بنویسم که پلاگین‌هایی که در آدرس 
plugins/system میبینید در همین راستا هست.هسته فریمورک از نظر من برای انتشار نسخه اولیه آمادس ولی چون میخوام این پلاگین ‌ها هم باهاش باشه که کسی که ازش استفاده میکنه اگه نمیتونه توسعه دهنده باشه حداقل بتونه یه وب سایت شخصی رو راه اندازی کنه.
انشالله تو نسخه‌های بعدی پلاگین ها از هسته جدا میشن. حالا هرکی دوست داشت میتونه پلاگین های مورد نیازشم جداگانه دانلود کنه.

در مورد لایه بانک اطلاعاتی هم من اولش قصد داشتم از doctrine استفاده کنم ولی به این نتیجه رسیدم که کار کردن باهاش خیلی پیچیدس.برای نوشتن یه کلاس اختصاصی هم برای مدیریت بانک اطلاعاتی حقیقتا خودش یه پروژه سنگین جدا محسوب میشه که به نظر من بهتره این انرژی رو روی تکمیل قسمت های دیگه قرار بدیم.
البته میشه هم زمان هم doctrine و هم redbean رو در کتابخونه فریمورک داشت که هر کسی دوست داشت از هر کدوم استفاده کنه.

----------


## MRmoon

مدل MVC که شما نوشتی میشه تو هر پلاگین فقط یک کنترلر داشت(یا اشتباه می کنم؟؟).

اینجوری زیاد جالب نیست.

----------


## morrning

> مدل MVC که شما نوشتی میشه تو هر پلاگین فقط یک کنترلر داشت(یا اشتباه می کنم؟؟).
> 
> اینجوری زیاد جالب نیست.


اون که هر پلاگین فقط یه کنترلر داره درسته.
یعنی منظورتون اینه برای رویداد ها یه کنترلر و برای سرویس ها یکی و برای اکشن ها هم یه کنترل جدا داشته باشیم؟

----------


## MRmoon

خوب نگاه کنید.

الان من میخوام تو پلاگینم دو تا کنترلر داشته باشم...

برنامه چیه؟؟

----------


## morrning

به دلیل اینکه خود php اجازه ارث بری چند گانه رو نمیده وجود چند کنترلر ممکن نیست ولی احتمالا میشه با راه حل هایی این مورد رو پیاده سازی کرد.
تو این فریمورک این قابلیت وجود نداره.یعتی فقط یه کنترلر میتونید داشته باشید.
اگه راه حلی برای رفع این مورد دارید خوشحال میشم بفرمایید.

----------


## MRmoon

نگا کن.

الان مثلا تو پلاگین هلو. چرا کنترلر اومده پرنتش ماژول شده؟؟؟

الان شما یه نگا به نحوه ی نوشتن ماژول برای زند یا yii یا جوملا بنداز.

----------


## morrning

سعی من این بوده که همچین شکلی رو پیاده سازی کنم.

----------


## morrning

با توجه به اینکه کلی کار برام پیش اومده و همه‌ی این کارا هم تو حوزه سخت افزار هست تا حدود ۲ ماه آینده فرصت یادگیری مطالب جدید تو حوزه php رو ندارم و نمیتونم تو این مدت روی پروژه کار کنم.
بر خلاف تصور دوستان منم همزمان با آموزش php دارم رو پروژه کار میکنم و قبلا در قسمت طراحی وب فعالیتی نداشتم.
تقریبا کارای هسته فریمورک تموم شده و فقط کار بر روی دو پلاگین users و بخش administrator که در هر پروژه ای مورد نیازه مونده.
دوستانی که قصد دارن توسعه این پروژه رو انجام بدن اعلام کنن و از بینشون یه نفر هم به عنوان لیدر معرفی کنند که انشالله این پروژه زمین نمونه!
نظر بنده این هست که با کمک جناب شهرکی یه تیم تشکیل بدید که هم دوستان فعالیتی انجام داده باشند و هم اینکه توسعه ی پروژه هم که متن باز هست ادامه پیدا کنه.
بنده هم اگه عمری باقی بود شاید به بقیه ملحق شدم.

----------


## morrning

از جناب آقای شهرکی بابت بازیابی تایپینک ممنونم.

امروز در توسعه این فریمورک یک جهش خوب داشتم.اول اینکه برای محاسبه میزان  مصرف رم توسط برنامه یک کلاس به کلاس های کتابخانه ای اضافه شد .و مورد  بعدی اینکه کنترل و ثبت خطا های ایجاد شده در سیستم از این به بعد توسط  برنامه مدیریت میشن و یک کانفینگ هم برای فعال/غیر فعال کردن حالت توسعه  دهندگان به فایل کانفینگ اضافه شد.

-کانفینگ های مربوط به پایگاه داده از کانفینگ های سیستم جدا شد.
-توسط افزونه reports میتونید از بخش مدیریت خطا های ایجاد شده رو مشاهده و حالت توسعه دهندگان رو مدیریت کنید.
-بخش تنظیمات پایه سیستم شامل نام سایت و شعار و متا تگ های هدر صفحه و همچنین تعیین صفحه نخست هم اضافه شد.
-در بخش نواحی و زبان های بخش مدیریت قابلیت انتخاب کشور و اختلاف زمانی و همچنین زبان پیشفرض برنامه اضافه شد.
-به بخش مدیریت, قابلیت مدیریت نمایش بلوک ها اضافه شد.به شکلی که بتوان یک  بلوک را کنترل کرد که در چه صفخاتی نمایش داده شود و در کدام صفحات مخفی  شود.
-پلاگین های غیر سیستمی از بخش مدیریت پلاگین ها قابلیت فعال /غیر فعال سازی دارند.
-پلاگین content که مدیریت مطالب به صورت شی گرا را بر عهده داره 50 در صد پیشرفت داشته.
-به موتور ارتباطی بین مرورگر و سریس دهنده علاوه بر بهینه سازی چند قابلیت جدید مانند AFTER_MODAL,URL,... اضافه شده.
-قابلیت فعال/غیر فعال سازی المان های سمت مرورگر توسط برنامه تحت وب فراهم شده.
-قالب های Sarkesh و blog به دلیل نا هماهنگی با تغییرات جدید تا اطلاع ثانوی از مخزن برنامه حذف شدند.
-قابلیت اتصال مخزن پلاگین به برنامه فراهم شده.با توسعه بیشتر این بخش نصب  پلاگین ها بدون نیاز به آپلود و ... و فقط با یک کلیک امکانپذیر خواهد  بود.
-اضافه شدن دیزاین پترن singleton به برنامه.زین پس میشه به کلاس ها و  پلاگین ها تنها با استفاده از نام فضا این قابلیت رو به کلاس ها اضافه کرد.
-کنترل های radioitem و radiobuttons به بخش کنترل ها اضافه شده.
و خیلی تغییرات دیگر ....

نکته مهم اینکه برنامه با تغییرات جدید به نسخه php بالاتر از 5.4 نیاز داره و نسخه های پایین تر پشتیبانی نمیشن.

----------


## morrning

در کامیت جدید روی پروژه تغییرات زیادی صورت گرفته که از جمله اونها ایجاد  یک پلاگین برای کنترل منو ها در سیستم هست که تنظیمات زیاد برای شخصی سازی  منو ها داره.هدف اصلی اصلی در توسعه این پلاگین کارایی 100 در 100 ی برای  وب سایت های چند زبانه بوده که میشه برای هر زبانی منو مخصوص رو ایجاد و  مدیریت کرد.

مورد بعدی افزودن قابلیت ایجاد بلوک های مجازی در سیستم هست.تا قبل از این  تمام بلوک ها وابسته به فایل و کد برنامه بودند ولی از این کامیت به بعد  میشه در بانک اطلاعاتی هم بلوک ایجاد کرد. برای مثال تمام منو هایی که توسط  پلاگین menus ایجاد میشن به صورت اتوماتیک به منو تبدیل شده و در بخش  مدیریت تنظیم بلوگ ها قابل مشاهده هستند.

مورد سوم مربوط به ترجمه رشته های زبان فارسی هست.همون طور که اطلاع دارید  پایه این سیستم بر اساس زبان انگلیسی هست و در کامیت اخیر تعداد زیادی از  رشته های زبان به فارسی برگردان شد.
مورد چهارم: افزودن قابلیت بلوک کردن آی پی هست که شبیه یک دیوار آتش داخلی  عمل میکنه.یعنی آی پی هایی که از بخش مدیریت به لیست سیاه اضافه میشن از  دیدن وب سایت منع میشن.

مورد پنجم:بخش تنظیمات کاربران برای مدیریت نحوه ثبت نام و سطوح دسترسی  کاربران و ... به پلاگین users اضافه شد البته هنوز تکمیل نیست.

مورد ششم:شروع کار بر روی پلاگین وبلاگ هست که با استفاده از قابلیت های  پلاگین content میشه باهاش یک وبلاگ راه اندازی کرد.البته فعلا در حال  طراحی uml برای این قسمت هستم.

مورد هفتم:رفع حدود 23 باگ در هسته سیستم و پلاگین ها بود که تا اونجا که بنده تست کردم همگی باگ هایی که تا حالا کشف شدن ,فیکش شدن.

وب سایت پروژه هم به آخرین نسخه به روز شد(فقط برای دمو) که میتونید با مراجعه به وب سایت 
http://sarkesh.org
با اطلاعات زیر وارد بشید و قابلیت های جدید اضافه شده رو مشاهده بفرمایید
username :test
password :test

----------


## morrning

چندین باگ از پلاگین menus رفع شد و دو پارامتر نسخه برنامه و شماره ساخت به سیستم اضافه شد که از بخش مدیریت قابل مشاهده هست.همچنین منو مدیریت از پایه دوباره طراحی شد.
لطفا نظر خود درباره محیط مدیریت رو ذکر کنید که در آینده اعمال بشه.

تصویری از آخرین نسخه روی سایت github

----------


## morrning

از جناب 2undercover بابت ترجمه رشته های جدید اضافه شده تشکر میکنم.

build number:931117
- در این نسخه مدیریت بر روی تعریف متاتگ ها و تعریف تنظیمات پایه برای هر زبان به هسته اضافه شد.
- یک گذینه برای کنترل تنظیمات هسته فریمورک اضافه شد.
- تغییرات و رفع باگ های زیادی روی قالب مدیریت اضافه شد.
- کلاس های پایه با الگوی singleton بازنویسی شدند که برای ایجاد شی از کلاس به صورت استاتیک به کلاس دسترسی پیدا میکنیم و متد singleton رو فراخوانی میکنیم.
- شروع توسعه پلاگین blog -این پلاگین به عنوان پیش نیاز از پلاگین content استفاده میکنه و انتشار این بلید کامل خواهد شد.
- قابلیت ایجاد بلوک های html به پلاگین administrator اضافه خواهد شد.
- قابلیت چک کردن هسته برای به روز بودن اضافه شد.که اطلاعات خود را از سایت service.sarkesh.org میگیرد.همچنین یاداشت های انتشار هم از آنجا قابل مشاهده است.
این شماره از فریمورک روز جمعه تکمیل و نسخه فریمورک هم روی سرور برای به روز رسانی تغییر میکنه.

----------


## morrning

بعد از انتشار این شماره بنده فقط یک شماره جدید(931129) برای نسخه آلفا منتشر میکنم و بعد از اون با نسخه 1.0.0 بتا در خدمتتون خواهم بود.
سیستم مقداری پایدار شده و عوامل کرش داخلی هسته خیلیاش رفع شده و اگر مشکلی وجود داشته باشه به احتمال زیاد از پلاگین هایی هست که به هسته پین شدن.

لازم دونستم از تعدادی از دوستان که در این راه تقریبا دو و خورده ای ساله بنده رو همراهی کردند تشکر کنم.اما واقعیتی که وجود داره اینه  بنده دست تنها هستم و تقریبا از زمان غیر کاریم برای توسعه استفاده میکنم . به همین دلیل عاجزانه خواهشمندم دوستانی که میتونن در توسعه مشارکت داشته باشند کمک خودشون رو از پروژه دریغ نکنند.
همچنین جناب آقای شهرکی در پیام خصوصی که خیلی وقت پیش با همدیگه داشتیم قول کمک دادید ,انشالله کارهاتون رو به راه شد بنده کماکان منتظر مشارکت جنابعالی در پروژه هستم.

در آخر اگه ممکن هست در نظر سنجی شرکت نمایید.

----------


## piter11

با سلام به شما دوست عزیز عرض شود من امروز فریم ورکتونو دانلود کردم دو تا ایراد دیزاینی ازش پیدا کردم مانیتور من 17 اینچ  با رزولیشن 1024 در 768  منو اصلی بالا حدود 20 درصد محتوای پیشخوان  میگیره و از طرفی دیگه منوساید بار راست وقتی همشونو کشویی باز میکنی به گزینه آخر که میرسی یعنی بلاگ اسکرول عمودی صفحه دیگه نمیاد پایین برای نمایشش, انگار فوتر مانع نمایشش شده ویه چیزه دیگه  قسمت وسط مدیریت چرا اینقدر فضای خالی داره :متفکر:   اینم دو تا عکس ازش گرفتم لطفا برطرفش کنید  :چشمک: 
Untitled.jpgUntitled1.jpg

----------


## morrning

> با سلام به شما دوست عزیز عرض شود من امروز فریم ورکتونو دانلود کردم دو تا ایراد دیزاینی ازش پیدا کردم مانیتور من 17 اینچ  با رزولیشن 1024 در 768  منو اصلی بالا حدود 20 درصد محتوای پیشخوان  میگیره و از طرفی دیگه منوساید بار راست وقتی همشونو کشویی باز میکنی به گزینه آخر که میرسی یعنی بلاگ اسکرول عمودی صفحه دیگه نمیاد پایین برای نمایشش, انگار فوتر مانع نمایشش شده ویه چیزه دیگه  قسمت وسط مدیریت چرا اینقدر فضای خالی داره  اینم دو تا عکس ازش گرفتم لطفا برطرفش کنید 
> Untitled.jpgUntitled1.jpg


مشکل از دراپ دوم های بوت استرپ بود که در کامیت 9904b5c0ed0248257ffd0a936ff329b1362bf29e رفع شد. فعلا وب سایت تا شماره ساخت 931117 به روزد نمیشه و بعد از اون این تغییرات هم اعمال خواهد شد.

----------


## morrning

931117:
بازنویسی کلی پلاگین contentشروع توسعه پلاگین blog و پیشرفت حدود 60 درصدیرفع باگ در بخش نمایش منو مدیریتایجاد قابلیت بلوک ایستا که میتوان برای هر زبانی آن را سفارشی کرد.قابلیت چک کردن برای به روز بودن هسته به فریمورک اضافه شد.فونت و نوار مدیریت به روز شد.قابلیت انتخاب آیکون برای پلاگین های مختلف جهت نمایش در بخش مدیریت اضافه شد.و رفع باگ های دیگر که باید در گیت هاب ببینید

اسکرین از پلاگین وبلاگ


اسکرین از بخش مدیریت

----------


## morrning

در تغییرات اخیر بوت استرپ هم راست به چپ و  هم چپ به راست به نسخه 3.2.0 به روز شدند و قالب پایه هم به رنگ آبی تغییر کرد.
قابلیت افزودن دیدگاه به پلاگین بلاگ اضافه شد و چندین قابلیت جدید به هسته اضافه شد. لوگ تغییرات در مخزن پروژه موجود است:

اسکرین از صفحه اول




اسکرین از بخش مدیریت

----------


## amin7x

سلام دوست عزیز
امیدوارم در این راه موفق و سربلند باشید.
میخواستم بدونم این فریم‌ورک از سیستم کشینگ فریم ورک Yii استفاده میکند؟

----------


## MMSHFE

خیر این فریمورک کلاً از پایه نوشته شده و با فریمورکهای همه منظوره فرق داره. اطلاعات تکمیلی رو با خوندن پستهای همین تاپیک از ابتدا بدست بیارین.

----------


## morrning

> سلام دوست عزیز
> امیدوارم در این راه موفق و سربلند باشید.
> میخواستم بدونم این فریم‌ورک از سیستم کشینگ فریم ورک Yii استفاده میکند؟


سلام ممنون
خط به خط این پروژه از ابتدا نوشته شده و روند توسعه در مخزن پروژه در github موجود هست .همچنین دنبال کردن این تایپینگ شما رو با روند پیشرفت کار آشنا میکنه.
برای سیستم کش هم میتونید از کنترل کاشی(Tile) استفاده کنید.
سیستم کش کردن اینجا یکم با بقیه فرق داره درواقع اگه یک کاشی بسازید و یک ابجکت رو بهش اضافه کنید برای بقیه کاربران میتونید اون شی رو کش کنید.

----------


## morrning

با توجه به بازنویسی کلی سیستم از ابتدا زمان نسخه بتا دوباره به عقب خواهد افتاد. خط به خط کد های نوشته شده از ابتدا بررسی خواهد شد و داکیومنت ها و شیوه نام گذاری تغییر خواهد کرد.در این بازبینی استاندارد php-fig بر روی سورس کد ها اعمال میشه که ارتباط بقیه رو با فریمورک بیشتر خواهد کرد.
در این بازنویسی بنده یک کلاس جدید برای کار با پایگاه داده دارم مینویسم که یک نسخه مینیمال از redbeanphp خواهد بود با این تفاوت که اولا لود این کلاس خیلی کمتر از redbeanphp خواهد بود و دوما نامگذاری کلاس ها دقیقا مانند redbeanphp هست و همین قضیه ارتباط برقرار کردن باهاش رو ساده تر میکنه و همچنین برخلاف redbeanphp این کلاس جدید از الگوی singleton به جای صدا زدن استاتیک استفاده میکنه و در نسخه اولیه هم فقط mysql پشتیبانی میشه.
مورد بعدی کنترل ها هستن که برای کانفیگ کردنشون از تابع configure استفاده میشد.در این بازبینی سعی میکنم با استفاده از مقدار دهی دینامیک به صورت مستقیم بشه کنترل ها رو کانفینگ کرد.
مورد سوم و آخر اینکه باید عرض کنم به دلیل تغییرات گستره بنده بعد از اتمام تغییرات همه این بازبینی ها رو در یک کامیت بر روی پروژه ارسال خواهم کرد.

انشالله این بازبینی باعث افزایش کارایی سیستم و اضافه شدن افراد جدید به پروژه بشه.

----------


## morrning

تغییر در ساختار کلی پلاگین ها:
با توجه به اینکه رویداد ها از توابعی که برای نمایش درخواست ها استفاده میشه متمایز هستند و برای بالا بردن پایداری سیستم بنده تصمیم گرفتم به جای کلاس controller از سه کلاس event , action , service استفاده کنم که همگی از کلاس ماژول ارث بری دارند.این کار باعث تفکیک درخواست ها و جلوگیری از صدا زدن رویداد های بدون آرگومان در سیستم خواهد شد.
همچنین باگ های زیادی در سیستم فیکس شد که بدون هیچ مشکلی میشه action های مختلف رو لود و نمایش داد و تنها تغییرات در بخش event و servcie باقی مونده . اکثر کلاس های کتاخانه ای نیز دوباره نویسی شدند و در حد امکان بهینه سازی روی هر کدام صورت گرفته.
فعلا بعد از بازنویسی کامل این بخش ها حالتی نیز برای لود کردن فایل ها از پوشه www که جدیدا اضافه شده در نظر گرفتم که به تدریج پیاده سازی میشه.

----------


## morrning

clean url در کل برنامه فعال شد که از طریق متغییر استاتیک CLEAN_URL در فایل config.php میشه اون رو فعال یا غیرفعال کرد.
همچنین برای لود بلوک ها از یک کلاس جدید با نام widgets استفاده شده که همین مورد بلوک ها رو از محتواها تفکیک میکنه.
کلاس createUrl از این به بعد از clean url پشتیبانی میکنه .
پلاگین msg از یک پلاگین به یک کلاس کتابخانه ای تغییر داده شده که به صورت استاتیک میشه بهش دسترسی داشت و خروجی پیام ها رو در حالت modal و normal کنترل کرد.

----------


## morrning

تقریبا کل هسته بازنویسی شده و الان در حال بازنویسی پلاگین ها هستم همچنین پلاگین ها  از الگوی mvc پیشرفته تری استفاده خواهند کرد که بیشتر شبیه الگوی توسعه برنامه های دسکتاپ خواهد بود. همچنین قابلیت درج پیغام در زیر textbox ها از طریق رویداد ها میسر شد.
شیوه جدید دسترسی به پلاگین هخا هم تغییر پیدا کرده و از طریق متغییر q انجام میشود.
برای مثال :
http://site.com/?q=users/login
و اگه clean url رو فعال کنید به صورت
http://site.com/users/login خواهد بود و اگه بیش از یک زبان فعال وجود داشته باشدبه اول آدرس زبان وب سایت اضافه میشه
به صورت زیر
http://site.com/fa_IR/users/login
خواهد بود.
همچنین در حال توسعه یک کلاس پایه برای ارسال ایمیل ها هستم که جایگزین کلاس فعلی بشه.
در حال حاضر تقریبا هیچ مشکلی برای مشارکت بقیه دوستان در پروژه وجود نداره.

----------


## morrning

همچنین تعداد کامیت های پروژه از عدد 200 گذشت

----------


## morrning

در آخرین تغییرات صورت گرفته بخش مهمی از سیستم برای چند زبانه سازی سیستم بازنویسی شد.همچنین برای تغییر زبان پلاگین i18n جایگزین languages شد.
تابع createUrl از کلاس core\cls\core\general تغییراتی صورت گرفت که از cleanUrl پشتیبانی میکنه و لینک هایی منحصر به فرد برای هر زبان تولید میکنه. این کار باعث بهتر ایندکس شدن وب سایت در موتور های جست و جو میشه.
همچنین خیلی از کد ها علاوه بر تغییر در نام گذاری متغییر ها  و نام کلاس ها مورد بازبینی قرار میگیرند تا از لحاظ کارایی هم بهتر عمل کنند. سعی شده که کد ها خلاصه و داکیومنت های مفیدی همراه هر بخش قرار داده بشه تا در آینده در کار با سیستم مشکل خاصی نداشته باشیم.
مورد بعدی هم تغییر ساختار کلی پلاگین ها از mvc به یک الگوی تکامل یافته و منحصر به فرد برای این سیستم هست که در پست بعدی دربارش توضیحات لازم رو میدم.

----------


## morrning

بر خلاف میلم نسخه روی دامنه sarkesh.org به نسخه جدید به روز شد متاسفانه  نسخه جدید با وجود تغییرات گسترده خیلی ناپایداره و خیلی از امکاناتش هنوز  بازبینی نشدن که بتونم به این نسخه اضافش کنم. ولی با این حال این نسخه هم  مثل نسخه قبلی روز به روز پایدارتر و بهتر خواهد شد.
طبق برنامه ریزی  بنده حدود اواخر اردیبهشت نسخه آزمایشی آماده میشه. بعد از اون قصد دارم  ایده ای که مد نظرم هست رو با این پروژه راه اندازی کنم.

----------


## morrning

پلاگین ADMINISTRATOR به صورت کامل به روز رسانی شد. لوگ تغییرات در مخزن پروژه موجود است.
همچنین پلاگین های مدیریت منو ها و وبلاگ هم تا چند روز آینده کاملا بازنویسی میشوند.

----------


## morrning

تعدادی رشته جدید به فایل ترجمه اضافه شد و همچنین در پلاگین MENUS هم پیشرفت هایی حاصل شده.همچنین جندین باگ در کلاس های پایه هم رفع شده.
ترحمه ها برای دسترسی دوستان بر روی سایت CROWDIN قرار گرفت.

----------


## morrning

یک دیوار آتش به پلاگین users اضافه شد که میشه از بخش مدیریت بهش آی پی اضافه کرد و آی پی هایی که در لیست باشن رو از دیدن وب سایت منع میکنه.
همچنین پلاگین menus هم کاراش تموم شد و بدون مشکل کار میکنه و میشه باهاش و با استفاده از بوت استرپ منو های عمودی و افقی ایجاد کرد . همچنین منو ها به صورت اتوماتیک به بخش بلوک ها برای درج در وب سایت اضافه میشن.

----------


## morrning

لوگوی جدیدی برای نسخه جدید در نظر گرفتم که دوست دارم نظر بقیه رو در موردش بدونم.اون لوگوی اسب به این دلیل کنار گذاشته شده که لوگوی اسب خیلی زیاد شده از فراری بگبر تا ایران خودرو و ...

لوگو

----------


## morrning

تقریبا میشه گفت کل سیستم بازنویسی شده .
یه سری پلاگین اضافه شدن که برای نسخه اولیه به تدریج کامل میشن.فعلا فقط امکانات پایه برای پلاگین ADMINISTRATOR تکمیل شدن و بقیه پلاگین ها هم به تدریج تکمیل میشن.
همچنین سیستم مدیریت فایل هم از نو بازنویسی شد. در این تغییرات فریمورک جاوا اسکریپتی که برای آپلو فایل به پروژه اضافه شده بود رو حذف کردم و خودم از پایه یه نمونه خیلی ساده و ابتدایی رو جایگزینش کردم.
در مورد تغییر لوگو هم قبلا توضیح دادم.
یک دیوار آتش داخلی هم برای مسدود کردن آی پی ها به پلاگین users اضافه شد.
menus که برای مدیریت منو هها طراحی شده بود از نو بازنویسی شد.
در آخر هم فایل های زبان فارسی با کمک مشارکت کنندگان در سایت crowdin تکمیل شد.

----------


## morrning



----------


## morrning

تعداد 68 رشته ترجمه نشده به crowdin اضافه شد.برای مترجمان درخواست فرستادم.
همچنین مدیریت گروه ها و مدیریت کاربران و قسمت فراموشی کلمه عبور و فعال سازی با ایمیل هم از نو بازنویسی شدند.

----------


## morrning

-در هفته گذشته تغییرات زیادی در پروژه انجام شده که میتونید لیست تغییرات رو در زیر ببینید.



> Release note
> SarkeshMVC 0.9.3.1
> Build number:940115
> 
> System requirements:
> - OS: Linux +3.5.2
> - Apache: +2.0
> - PHP: +5.3
> - mysql: +4
> ...

----------


## morrning

سرانجام نسخه بتا منتشر شد.

بعد از بازنویسی کل سیستم و استاندارد سازی قسمت های مختلف امروز موفق شدم این بازنویسی ها رو تموم کنم . البته برای شروع هم دارم به عنوان سرویس دهنده به دو نرم افزار تحت اندرویید از این سیستم استفاده میکنم و همین مسئله حساسیت این بازبینی رو اضافه میکرد. در این نسخه از مدل mvc کمی فاصله گرفتم و این مدل رو بر اساس نیاز های نرم افزار تغییر دادم که تمام درخواست ها توسط کلاس های مجزا ئاسخ داده شوند . همچنین رویداد های سمت سرور هم توسط کلاس event قابل پاسخ دادن هست. 
از امروز سیاست کلی بر رفع باگ های موجود و ایجاد یک راهنما برای کار با سیستم و نوشتن افزونه ها خواهد بود.

قابلیت هایی که هنوز پیاده سازی نشده اند.
-به روز رسانی اتوماتیک
-ارسال دیدگاه در پلاگین page

همچنین دوستانی که سیستم رو تست کردند. باگ های احتمالی رو میتونن در مخزن پروژه در github ارسال کنند.

----------


## morrning

به روز رسانی اتوماتیک هم اضافه شد.
برای افرادی که نصب میکنند از این به بعد از طریق خود برنامه میشه خودش رو به روز کرد و نیازی به انتقال فایل ها نیست.

----------


## morrning

در حال کار کردن بر روی وب سرویس های پایه برای ارتباط برقرار کردن با نرم افزار توسط برنامه های دیگه هستم .همچنین کار رو بر روی پلاگینی برای ساخت انجمن گفت و گو شروع کردم.

----------


## morrning

نسخه آزمایشی از پلاگین انجمن به مخزن اضافه شد.
تو این نسخه میشه با این پلاگین یه انجمن ساده راه اندازی کرد.
همچنین باگ های مختلفی فیکس شدند.
پیش نمایش در زیر قابل مشاهده هست.

----------


## morrning

انجمن سایت هم با کمک پلاگین توسعه داده شده راه اندازی شد.
همچنین آخرین خبرها درباره نرم افزار رو میتونید از آدرس
http://sarkesh.org
دریافت کنید.

----------


## morrning

دو پلاگین donation و payment به صورت آزمایشی راه اندازی شدند و پرداخت کمک های مردمی سایت هم توسط همین پلاگین پیاده سازی شده است.
همچنین کتابخانه payline راه را برای استفاده از کتابخانه های خارجی باز کرد به همین منظور پوشه libs در ریشه اصلی پروژه اضافه شد.که از این تاریخ به بعد توسعه دهندگان خواهند توانست از کلاس های نوشته شده دیگران و حتی فریمورک های دیگر استفاده کرد.
این دو کتابخانه در روزهای آینده کاملتر خواهد شد و درگاه های پرداخت بیشتری را پشتیبانی خواهند کرد.

----------


## morrning

اولین نسخه پایدار رو میتونید از لینک زیر دریافت کنید. برای مشاهده تغییرات صورت گرفته میتوانید به یاداشت های انتشار مراجعه کنید.
https://github.com/sarkeshLtd/sarkesh/releases

نکاتی در رابطه با روند توسعه نرم افزار در آینده:
در این نسخه سعی بر استاندارد سازی کد ها ی قدیمی و توسعه و افزودن چند قابلیت جدید به سیستم بود که شکر خدا به یه مقداری از این اهداف رسیدم.از امروز که نسخه اولیه منتشر شده تغییرات جدید در سایت bitbucket روی پروژه قرار میگیره و به صورت عمومی نخواهد بود. تنها کامیت هایی به github منتقل میشن که در نقش bugfix باشند و قابلیت های جدید به سیستم اضافه نکنند و هر سه ماه یک بار قابلیت های جدید تحت یک نسخه جدید به مخزن پروژه در github منتقل می شوند.همچنین سوالات و مشکلات خودتون رو میتونید در این تایپینگ یا مخزن پروژه یا بخش انجمن سایت sarkesh.org ارسال کنید.

----------


## n0o0b_sina

سلام
من سیستم رو دانلود کردم چند تا پیشنهاد دارم:
1- composer رو به پروژه اضافه کنید.
2- autoload رو کلا حذف کنید و از autoload ، composer استفاده کنید.
3- پروژه خیلی به نظرم به هم ریخته اومد همه ی اینارو به شکله خیلی دوستانه تر هم میشد درست کرد.
4- کتابخونه های کلی رو مثل لاراول هرکدوم رو یه پکیج بکنید تا راحت بشه کنترلشون کرد. این لینک رو ببینید.
یکی از دلایلی که لاراول استفاده نمیکنم به هم ریختگیشه!!! ولی CI رو با همه ی کمبودهاش قبول دارم.
مثل لاراول هم بتونید با gulpjs و nodejs ارتباط برقرار کنید که خیلی عالی میشه.
یه نکته هم با اینکه سایت گرافیک خاصی نداره ولی برای من با یه مکث باز میشه، انگار تو پشت صحنه خبرای بدی هست و کدهات بهینه نیست.
---
ای کاش منم یه درآمدی داشتم تا میتونستیم با هم مشارکت کنیم توی توسعه ی سیستم.
در کل موفق باشی

----------


## morrning

> سلام
> من سیستم رو دانلود کردم چند تا پیشنهاد دارم:
> 1- composer رو به پروژه اضافه کنید.
> 2- autoload رو کلا حذف کنید و از autoload ، composer استفاده کنید.
> 3- پروژه خیلی به نظرم به هم ریخته اومد همه ی اینارو به شکله خیلی دوستانه تر هم میشد درست کرد.
> 4- کتابخونه های کلی رو مثل لاراول هرکدوم رو یه پکیج بکنید تا راحت بشه کنترلشون کرد. این لینک رو ببینید.
> یکی از دلایلی که لاراول استفاده نمیکنم به هم ریختگیشه!!! ولی CI رو با همه ی کمبودهاش قبول دارم.
> مثل لاراول هم بتونید با gulpjs و nodejs ارتباط برقرار کنید که خیلی عالی میشه.
> یه نکته هم با اینکه سایت گرافیک خاصی نداره ولی برای من با یه مکث باز میشه، انگار تو پشت صحنه خبرای بدی هست و کدهات بهینه نیست.
> ...


کامپوسر اضافه شد.از این به بعد پکیج های مورد نیاز در داخل پوشه lis/vendors ذخیره میشن.
ساختار فایل ها به نظر مرتب میاد سعی کردم تا حد امکان هر چیزی جای خودشو داشته باشه. اون مورد گیر کردن بخش content رو الان چک کردن cpu هم درگیر نیست نمیدونم دلیلش چیه باید بیشتر بررسی کنم.
ممنونم از اینکه پروژه رو تست کردید. هر زمان که دوست داشتید میتونید با عضویت در گروه به پروژه کمک کنید. اگر مایل بودید نام کاربریتون در github رو بفرمایید که در گروه اضافه کنم.

----------


## morrning

امروز تونستم برای پروژم اولین اسپانسرو پیدا کنم. فعلا هزینه های هاست رو برامون رایگان کردند

----------


## yones_safari

درود
دو تا مشکل اساسی داره:
1- اینکه توابع bindtextdomain و textdomain از اکستنشن gettext هستند که قبل از استفاده از اینا بهتره چک کنی ببینی اکستنشن نصب هست یا نه.برا من ارور داد. تو گیت هاب pull request دادم
2- اینکه من تو روت نذاشتم فایلهات رو، تو یه فولدر ریختمشون که متاسفانه حتی با ویرایش این خط:
define ("SiteDomain",'http://' . $_SERVER['SERVER_NAME'].'/sarkesh-lion' );
بازم Ajax کار نکرد!!
و اما جدا از این مشکلات کدهات خیلی به هم ریخته است.
کامنت گذاری رو صحیح انجام ندادی!!برا بعضی جاها کامنت گذاشتی که اصلا نیاز نیست...
 قبلا میگفتن کدها رو کامنت بزاری خوبه..الان میگن طوری کد بنویس که نیاز به کامنت نباشه!! (منظور نپیچون برنامه رو)
ولی به طور کلی بررسی نکردم تا ببینم چطوره کدهات بعضی فایلهات رو چک کردم!
موفق باشی
-----------------------
یا مثلا تو این فایل core\lib\cls\core_cls_browser_page.php خیلی زیاد از array_push استفاده کردی که کندتر از [] هستش..... 
http://snipplr.com/view/759/speed-te...push-vs-array/

----------


## morrning

> درود
> دو تا مشکل اساسی داره:
> 1- اینکه توابع bindtextdomain و textdomain از اکستنشن gettext هستند که قبل از استفاده از اینا بهتره چک کنی ببینی اکستنشن نصب هست یا نه.برا من ارور داد. تو گیت هاب pull request دادم
> 2- اینکه من تو روت نذاشتم فایلهات رو، تو یه فولدر ریختمشون که متاسفانه حتی با ویرایش این خط:
> define ("SiteDomain",'http://' . $_SERVER['SERVER_NAME'].'/sarkesh-lion' );
> بازم Ajax کار نکرد!!
> و اما جدا از این مشکلات کدهات خیلی به هم ریخته است.
> کامنت گذاری رو صحیح انجام ندادی!!برا بعضی جاها کامنت گذاشتی که اصلا نیاز نیست...
>  قبلا میگفتن کدها رو کامنت بزاری خوبه..الان میگن طوری کد بنویس که نیاز به کامنت نباشه!! (منظور نپیچون برنامه رو)
> ...


سلام ممنون بابت تست نرم افزار.
بعضی جاها چون در گذر خیلی تغییر کردن باعث به هم ریختگیشون شده که سعی میکنم به مرور مرتبشون کنم.
پول ریکوست ها رو مرچ کردم در مورد خطای کار نکردن آی جکس روی مرورگر حالت توسعه دهنده ها رو فعال کن و رسپونس برگشتی ببین چه خطایی داره؟

----------


## yones_safari

مشکل از response نیست! مشکل از آدرس دهی اشتباه در درخواستهای ajax هستش.
من الان یه فولدر با نام sarkesh-lion دارم که پروژه توش هست.
وقتی درخواست آژاکس فرستاده میشه به این آدرس ارسال میشه:
http://localhost/control/users/btnOnclickResetPassword
که باید به این آدرس ارسال بشه:
http://localhost/sarkesh-lion/control/users/btnOnclickResetPassword

----------


## morrning

قاعدتا نباید ایرادی پیش بیاد چون طبق خط 109 فایلfunction.js در  \core\ect\scripts\events
url: "/control/" + p_event_p + "/" + p_event_f,

درخواست ها اینطوری ارسال میشن. سعی میکنم فیکسش کنم
شاید خطا از فایل htaccess هم باشه

----------


## morrning

جهت ایجاد یک داکیومنت به زبان فارسی برای آموزش های نوشتن قالب و پلاگین و همچنین مستند سازی کلاس ها بخشی در وب سایت ایجاد کردم که میتونید از لینک زیر بهش دسترسی داشته باشید.البته فعلا چند صفحه بیشتر نیست ولی در آینده سعی میکنم تکمیلش کنم.

http://sarkesh.org/fa_IR/page/show/%...AF%D8%A7%D9%86

----------


## morrning

یه مخزن جدید برای ساخت یه قالب ساده برای اجرا بر روی سیستم ایجاد شده که میتونید از لینک زیر سورس ها رو مطالعه بفرمایید.
https://github.com/sarkeshLtd/sampleTheme

همچنین برای راهنمایی فارسی درباره هر کدام از فایل ها و کاربرد هر کدام میتونید به مستندات فارسی مراجعه کنید .برای دسترسی به مستندات فارسی میتونید از لینک زیر استفاده کنید.
http://sarkesh.org/fa_IR/page/show/%...A7%D9%84%D8%A8

----------


## morrning

940226 منتشر شد.
یاداشت انتشار در زیر قابل مشاهده است.

Release noteSarkeshMVC 0.9.3.1
Build number:9402XX


System requirements:
- OS: Linux +3.5.2
- Apache: +2.0
- PHP: +5.4
- mysql: +4
Warrning: multi language and some other options not working on some windows XP/VISTA/7/2002/2008/2008 R2/2014 Server/8/8.1/10 :)


Additions


    -add composer to project
	-add two web service to users plugin
	-forum plugin
	-settings page in forum plugin
	-persian language files
	-breadcrumb control
	-add two method to \core\cls\db\orm class
	-add reinstall button to plugin page
	-add payment plugin
	-add payline plugin
	-add show tags in pages in page plugin
	-add last topics in forum plugin
	-add new strings to persian po file


Removes
	-RSS plugin


fixes:
	-bug fix in use addons in menus plugin
	-bug fix in forum plugin
	-bug fix in update center from administrator plugin
	-bug fix in delete page in page plugin
	-update persian translation files
	-update database file
	-database foreign keys fixed on DELETE PLUGINS
	-edit administrator plugin for do update proccess
	-edit setup classes of page and forum plugin
	-bug fix in run services from defined plugins
	-buf fix in show block ip in utf-8 languages message.
	-bug fix in delete links in menus plugin
	-bug fix in create topic and jump to topic after submit


installation:
	-create blank database
	-upload system to your host
	-import install\import.sql to your database
	-edit db_config.php for connect to your database




Enjoy from sarkeshMVC
Babak alizadeh

----------


## morrning

یه توضیحی که لازم هست درباره روند انتشار نسخه ها بدم این هست که در این سیستم دو تا کنترل نسخه داریم . اولیش version name هست که برای نسخه اولیه lion هست که در طول یک بلید همواره ثابت خواهد بود و مورد دیگه build number هست که الان 940226 آخرین نسخه پایدار منتظر شده هست. با تغییر دو رقم آخر بلید نامبر  نام نسخه هم تغییر پیدا میکنه برای مثال اگه بلید نامبر به 95XXXX برسه نسخه بعدی منتشر خواهد شد.
همچنین روند انتشار هم به صورت غلطان خواهد بود به این صورت که همیشه و در هر زمانی امکان انتشار نسخه های جدید فراهم خواهد بود و امکانات جدید و رفع باگ های احتمالی به مرور در فریمورک اعمال خواهند شد.

----------


## morrning

در سری ساخت 9403XX پلاگین PAGE تکمیل شده و در حال کار بر روی پلاگین WALLETهستم برای مشاهده لوگ تغییرات میتونید به یاداشت های انتشار مراجعه کنید.
از مدیران خواهشمندم  این تاپیک رو دوباره به حالت اعلان در بیارید.

----------


## 1sarbaz

> در این تاپیک فریم ورک های ایرانی معرفی می شود


این تاپیک مربوط به فریم ورک سرکش هست ، چه ربطی به همه فریم ورکهای ایرانی داره ؟

----------


## morrning

تمام پلاگین های موجود در پوشه plugins/defined از هسته فریمورک جدا شده و در مخزن های جداگانه توسعه داده خواهند شد.

----------


## m.esmaeilzadeh

من یک سوالی دارم , اگر سرکش فریم ورک هستش پس چرا تصاویر شبیه به یک CMS میمونه ؟!
یعنی در کنار فریم ورک آمدید و CMS هم نوشتید که کاربران استفاده کنند ؟!
چون تا جایی که من میدونم باید بعد از یادگیری فریم ورک هر کسی شروع کنه و CMS خودش رو با فریم ورک بنویسه !!!

----------


## morrning

> من یک سوالی دارم , اگر سرکش فریم ورک هستش پس چرا تصاویر شبیه به یک CMS میمونه ؟!
> یعنی در کنار فریم ورک آمدید و CMS هم نوشتید که کاربران استفاده کنند ؟!
> چون تا جایی که من میدونم باید بعد از یادگیری فریم ورک هر کسی شروع کنه و CMS خودش رو با فریم ورک بنویسه !!!


بله دقیقا همینطور هست.
هسته فریمورک به کنترل های تحت وب که رویداد های سمت سرور رو هم پشتیبانی میکنن به همراه کلاس های کتابخانه ای و موتور پردازش درخواستها محدود میشه.
با توجه به ماژولار بودن سیستم بنده در این مدت چند تا پلاگین هم نوشتم که استفاده کننده ها به صورت عینی ببینند که سیستم کارایی لازم رو داره. برای مثال وب سایت پروژه http://sarkesh.org با همین فریمورک راه اندازی شده و پلاگین های مختلف روش نصب شده.
البته یه نکته ای رو هم نباید فراموش کرد که سرکش فریمورک مدیریت محتوا (CMF) هست و با فریمورک هایی مثل YII و ... فرق داره

----------


## morrning

امروز به قسمت پرداخت های وب سایت نگاه کردم یکی دو نفر کمک کرده بودند. راستشو بخواید یکم امیدوار شدم.
همچنین به صورت خیلی خیلی ساده بخش افزونه ها راه اندازی شد که میتونید از آدرس زیر بهش دسترسی داشته باشید.
http://sarkesh.org/fa_IR/plugins/main
البته فعلا خیلی از امکانات در این افزونه وجود نداره و باید به صورت تدیجی تکمیل بشه.همچنین قابلیت ارسال افزونه برای کاربران عضو شده آزاد هست که برای ارسال افزونه جدید ابتدا عضو شده و وارد شوید سپس به لینک زیر مراجعه کنید
http://sarkesh.org/fa_IR/plugins/newPlugin

----------

