طراحی قالب برای cms خودمون ! ( چجوری ؟ )

hidensoft

Member
نظر شخصی شماست .
100% نظر منه و اگه نظر کس دیگه ای بود خودش می گفت :green:
از لحاظ الگوریتم که یکیه ولی فکر نمی کنم شباهتی بین کد نویسی من و اون باشه ...
نه به هیچ وجه از لحاظ الگوریتم یکی نیست. منظورم این بود که در کل کلاسی که گذاشتی کار خاصی انجام نمی ده. وگر نه که از لحاظ الگوریتم کد شما بسیار ضعیف تر هست.
دلالیلش هم کاملا مشخصه.
اول اینکه با این کار شما دارید خودتون رو دور می زنید. متغیر هارو از این دست به اون دست می کنید و در واقع هیج کاری خاصی انجام نداید.
اگر بخوای براش یه For بزاری چکاری باید انجام بدی ؟ در نهایت که موفق به انجام اینکار بشی مثل Smarty قوانین جدیدی برای PHP می زاری و در نهایتا هم باید از همون توابع PHP استفاده کنی. موتور قالب باید این کار هارو انجام بده یا وظایف مهم تری بر عهدش هست.
 

eliTive

Member
بجز smarty و این مدل که Mr.Steres گفت روش های دیگه ای هم وجود داره؟ اگه هست بگید تا یه نگاهی بندازیم
 

hidensoft

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

pasargad-ir

Active Member
اعتراف :

من می خوام بصورت حرفه ای یاد بگیرم.

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

eliTive

Member
ممنون از پاسختون دوستان،
ولی روش هایی مثل جوملا ، مود ایکس و حتی اسمارتی برای افراد تازه کاری مثل من خیلی سنگین هست روشی رو که دوستمون Mr.Steres معرفی کرد ، قابل قبول هست و از نظر انعطاف پذیری مشکلی ایجاد نمی کنه؟
 

hidensoft

Member
اگه منظور شما اون موتور قالب هست باید بگم باید برای دستوراتی مثل for یا foreach یا while قواعدی بسازید و سعی کنید این دستورات رو شبیه سازی کنید/
 

eliTive

Member
اگه منظور شما اون موتور قالب هست باید بگم باید برای دستوراتی مثل for یا foreach یا while قواعدی بسازید و سعی کنید این دستورات رو شبیه سازی کنید/

میشه یه مقدار بیشتر توضیح بدی ؟ ( برام مهم هست )
 

hidensoft

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

D.A.V.O.O.D

Member
سلام
سعی کنید خودتون یه کلاس واسه این کار بنویسید ، نوشتن کلاس خوبیش اینه که توی کار هر جا که گیر کنید خودتون می تونید تابع رو به هر صورتی که نیازتون هست بهش اضافه کنید ، اما اگه کلاس آماده باشه باید بشینی و بزنی تو سرت :wink:

واسه نوشت یه کلاس قالب ، فقط کافیه که کار با تمامی توابع رشته ها رو بلد باشی ، همین !

یکم فکر کن در مورد چیزی که می خوای ، بعد با استفاده از توابع ، عملیش کن !

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

واسه شروع یه کلاس واستون می گذارم ، می تونید با نگاه به این کلاس مشابه برای خودتون بنویسید .
 

پیوست ها

  • template.zip
    1.7 کیلوبایت · بازدیدها: 20

payamsp

Member
این روشی که توی پست دوم لینکش گذاشته شده (وبلاگ من)یک روش ساده و کارامد برای کسایی هست که دارن تک تک یه سری صفحه ایجاد می کنن که این صفحات توی برخی از قسمت ها با هم مشابه هستن و خیلی ها هم دارن از این روش استفاده می کنن .
در مورد این کاری که شما داری انجام میدی باید از کلاس هایی مشابه کلاس زیر استفاده کنید
PHP:
class template
{

    var $tpl_vars;

    function __construct()
    {
        $this->tpl_vars=array();
    }

    function assign($var_array)
    {
      if(!is_array($var_array))
         {
        die("خطا - دوباره سعی کنید");
         }
      $this->tpl_vars=array_merge($this->tpl_vars,$var_array);
    }

    function parse($tpl_file)
    {
        if(!is_file($tpl_file))
        {
         die("خطا - قالب وبلاگ یافت نشد");
        }
        $tpl_content=file_get_contents($tpl_file);
        foreach($this->tpl_vars as $val => $content)
        {
         $tpl_content=str_replace('{'.$val.'}',$content,$tpl_content);
        }
        return $tpl_content;
    }
    
    function display($tpl_file)
    {
        echo $this->parse($tpl_file);
    }

}
البته این یک کلاس ساده هست که می تونید ایده کار رو باهاش بفهمید
 

جدیدترین ارسال ها

بالا