واضح آرشیو وب فارسی:سایت ریسک: ShellPage - موتور تمپلیت ساده ولی قدرتمند EMIRATES 27 شهريور 1387, 12:15با سلام دوستان عزیز میدونید که در CMS ای که مینویسید اگه بخواین قالبش متغیر باشه یا اصلا یک قالب به صورت فایل داشته باشین باید از یک موتور قالب استفاده کنید. من خودم دنبال یه موتور واسه CMS ام بودم - یک تاپیک هم زدم یکی از دوستان گفتن Smarty رفتم و دیدم که بیشتر CMS ها از Smarty استفاده میکنن. یکم که گشتم دیدم درسته خیلی کامله ولی یادگیریش زمان میبره. یک دوست دیگه گفتن که از HTML استفاده کن. من هم رفتم دنبالش چندین موتور رو پیدا کردم ولی همه اون چیزی که میخواستم نبودن به جز همین موتور تمپلیت یعنی " ShellPage " خوب من بهتون نحوه ساخت و استفاده اون رو در CMS هاتون میگم . امیدوارم مورد استفاده شما قرار بگیره. هر سوالی بود در خدمتم. ----------------------------------------------------------------------------------------- خوب واسه استفاده از این موتور تمپلیت باید اول فایل کلاس اون رو دریافت کنید. بعد از دریافت اون - اون رو در دایرکتوری پوشه تمپلیت خودتون قرار بدین. بعد یک فایل Html درست میکنید که قالب اصلی Html اون قسمت مثلا ثبت نام یا صفحه اصلی یا... در اون بصورت HTml باشه. بعد میاید یک فایل با نام مثلا ConfigTemp درست میکنید و دونه دونه اون تگ هایی رو که تو این فایل html و یا تو این بخش از قالب مورد استفاده قرار میگیرن رو تعریف میکنید. خوب : این محتویات فایل کلاس : (این رو با نام VarPage.class.php ذخیره کنید) <?php class VarPage { var $templatefile = "./template.html"; var $varnamelist = "title,content"; var $title = "Page Title Here"; var $content = "<p>Page Content Here</p>"; function VarPage(){ } function display_page() { $vararray = explode(",",trim($this->varnamelist)); $templatearray = file($this->templatefile); $template = join("",$templatearray); foreach ($vararray as $varname) { $template = str_replace("<!--$varname-->",$this->$varname,$template); } print $template; } } ?> خوب حالا ما باید یه قالب html که توش فرم اون قسمت از قالب رو بهش دادیم رو درست کنیم. برای مثال یک فایل با نام Template.html میسازم و در اون قالب مثلا قسمت جستجو رو در اون قرار میدم. <html> <head> <meta "Content-Type" content="text/html; charset=windows-1252"> <title>New Page 1</title> </head> <body> <form method="POST" action="--WEBBOT-SELF--"> <!--webbot bot="SaveResults" U-File="fpweb:///_private/form_results.csv" S-Format="TEXT/CSV" S-Label-Fields="TRUE" --> <p align="center"><input type="text" name="T1" size="20"></p> <p align="center"><input type="submit" value="جستحو" name="B 1"><input type="reset" value="دوباره" name="B 2"></p> </form> </body> </html> خوب حالا ما باید فایل ConfigTemp رو برای تعریف کردن تگ های مورد نظر درست کنیم. برای مثال من 2 تگ میزارم یکی عنوان قسمت یکی توضیحات. فایل ConfigTemp رو به این صورت مینویسیم: 1- ابتدا فایل کلاس رو اینکلود میکنیم. <?php include("./VarPage.class.php"); ?> 2- سپس متغیر Page رو با کلاس ارتباط میدیم. <?php include("./VarPage.class.php"); $page = new VarPage; ?> 3- سپس باید فایل تمپلیت html اون قسمت از قالب رو که میخوایم معرفی کنیم. <?php include("./VarPage.class.php"); $page = new VarPage; $page->templatefile = "./template.html"; ?> 4- حالا تگ های خودمونو که میخوایم داشته باشیم معرفی میکنیم. <?php include("./VarPage.class.php"); $page = new VarPage; $page->templatefile = "./template.html"; $page->varnamelist = "title,headline,content"; ?> 5- اینم از آخرین مرحله که میتونیم با استفاده از یک متغیر یا یک نوشته تمام کد های php خودمونو که میخواستیم به صورت تگ باشن رو استفاده کنیم. <?php include("./VarPage.class.php"); $page = new VarPage; $page->templatefile = "./template.html"; $page->varnamelist = "title,headline,content"; $page->title = "جستجو در سایت"; $page->headline = "سربرگ"; $page->content .= <<<EOD جستجو در سایت EOD; ?> خوب تمام شد حالا میتونیم درون همون فایل html که واسه قالب بود تگ های ساخته شدمونو رو بزاریم. ((( توجه :: هر تگ که مثلا در فایل ConfigTemp ما اینجا مثال title رو داشتیم ------ تگ شدش برای استفاده در همون فایل HTML به این صورت در میاد :: <!--title--> ( همون چیزی که تعریف کردید رو توی <!--NAMEMOTEGHAIERTARIFSHODE--> میزارید ) شما میتونید مدل تگتون رو از فایل کلاس تغییر بدین. خوب دیدید که تموم شد. ------------------- از این موتور میتونید به راحتی برای ساخت قسمت های قالب و ساخت خود قالب اصلی CMS تون استفاده کنید. با تشکر. amir_s 27 شهريور 1387, 15:37برای کارهای خیلی خیلی ساده خوبه ... اما مثلا برای قسمت هایی از کد که باید تکرار بشن خوب نیست ... و یا مثلا دستورات شرطی و ... من هم از Smarty زیاد سر در نیاوردم ... اما خودم یه Template Engine ساده و خوب نوشتم برای کارم ... اگر دوستان مایل باشن من هم بگذارم مال خودم رو . Goroop.ir 27 شهريور 1387, 15:52این که جواب نمیده روی لوکال تست کردم ولی جواب نمیده . Goroop.ir 27 شهريور 1387, 15:55دوست عزیز اقای emirates جان والله سیستمون رو روی لوکال تست کردم جواب نداد بنظر شما مشکلش چیه ؟ اقای amir_s : اگر شما هم تمپلت انجین تون رو بزاری ممنون میشم اخه من هم دنبال یک تمپلت انجین خوب میگردم برای ویرایش قالب اموزشش هم بزاری ممنونت میشم با تشکر . yakoza 27 شهريور 1387, 16:06به نظر من بهترین روش نوشتن برنامه بر اساس معماری چند لایست موفق باشید EMIRATES 27 شهريور 1387, 16:37با سلام چرا جواب نمیده؟ من خودم تست کردم. همونطور که گفتم فایلی که باید توش خروجی بیاد configtemp.php هست. با تشکر. amir_s 27 شهريور 1387, 16:50جناب emirates اجازه می فرمایند توی تاپیک ایشون بگذارم!؟ یا تاپیک جدا باز کنم !؟ EMIRATES 27 شهريور 1387, 16:59با سلام اجازه ما دست شماست. با تشکر. Masoud 1365 27 شهريور 1387, 17:17من هم از smarty زیاد سر در نیاوردم ... اما خودم یه template engine ساده و خوب نوشتم برای کارم ... اگر دوستان مایل باشن من هم بگذارم مال خودم رو . امیر جان اگه بزارید ممنون میشیم . اگر توی تاپیک دیگه ای گذاشتید آدرسش رو در این تاپیک بزارید.ممنون amir_s 27 شهريور 1387, 19:43بفرمایید :
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 476]