بسم الله الرحمن الرحيم و الصلاة والسلام على اشرف المرسلين سيدنا محمد و على آهله و أصحابه اجمعين و على من إتبعه ليوم الدين
كل عام و انتم بخير و تقبل الله منا ومنكم الصيام
إخوتي اخواتي اليوم إن شاء الله نبدأ دروس تعليم نظام القوالب Smarty و الذي يعتبر اقوى نظام قوالب حاليا بدون منازع
عندي طلب واحد فقط من الإخوة إن المشاركات تكون منظمة ومحصورة في دروس + أسئلة
في بداية الأمر سنبدأ بتحميل البرنامج من الموقع التالي
http://www.smarty.net/do_download.ph...rty-2.6.20.zip
بعد التحميل يجب ان انوه إنه في ال Smarty يوجد مجلدين مهمين جدا
1- مجلد التكوين و عادتا مايسمى بال template_c و في هذا المجلد يقوم smarty بإنشاء صفحات php بالأكواد الناتجة عن دمج المعلومة مع القالب
2- مجلد القوالب و عادتا مايسمى بال templates و في هذا المجلد تكون ملفات القوالب
ملاحظة: كلا من المجلدات المذكورة في الأعلى يحتاج إلى تصريح 777
الحين و بعد فك ضغط الملف المضغوط و الذي تم تحميله من الرابط اعلاه ستجد المجلد libs قم بنسخه إلى المجلد الخاص بالعمل و غير إسمه إلى smarty
الحين ماذا نحتاج أيضا اول شيئ راح نسوي ملف بإسم smarty.php و نضع فيه الكود التالي
كود PHP:
$fixpath = dirname(__FILE__); //لإستخراج رابط المجلد الحالي
define ("SMARTY_DIR", "smarty/"); // تحديد مجلد الذي يوجد فيه ملفات smarty
require_once (SMARTY_DIR."Smarty.class.php"); // إدراج كلاس smarty
$smarty = new Smarty; //بدأ إستخدام الكلاس
$smarty->compile_dir = "$fixpath//template_c"; // رابط مجلد التكوين
$smarty->template_dir = "$fixpath/templates"; // رابط مجلد القوالب
الدرس التطبيقي الأول
نبدأ اليوم بعمل اول درس تطبيقي مع سمارتي و راح يكون شيئ بسيط ولاكنه اساسي في نفس الوقت
اول شيئ نقوم بإنشاء مجلد ال template_c و مجلد templates
فيصبح لدينا في مجلد العمل الرئيسي 3 مجلدات وهي smarty و الذين كان يسمى libs و مجلد templates و مجلد template_c
ولاننسى بالذكر ان لدينا ملف smarty.php و الذي يقوم بعمل الإتصال بين برنامجنا و نظام القوالب
الآن سنقوم بعمل صفحة تتكون من هيدر وفوتر و محتوى بسيط
اولا ندخل على مجلد templates ونقوم بإنشاء ملف header.tpl و footer.tpl و main.tpl
كود الهيدر يوضع في ملف header.tpl
كود HTML:
<table cellpadding="0" cellspacing="0" style="font-family:Tahoma;font-size:10pt;width: 100%; height: 50px;background:#DADADA">
<tr>
<td style="height: 50px" align="center">
<span style="font-size:25pt;color:#CC3300">سهم</span>
<span style="font-size:25pt;color:#333333">نت</span><br/>
<b>الشركة الجزائرية للبرمجيات و خدمات الإنترنت</b>
</td>
</tr>
</table>
كود الفوتر يوضع في ملف footer.tpl
كود HTML:
<table cellpadding="0" cellspacing="0" style="font-family:Tahoma;font-size:10pt;width: 100%; height: 20px;background:#DADADA">
<tr>
<td style="height: 20px" align="center">
<b>الحقوق محفوظة لكل مسلم</b>
</td>
</tr>
</table>
كود المحتوى والذي يوضع في ملف main.tpl
كود HTML:
<html dir="rtl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256" />
<meta http-equiv="Content-Language" content="ar-dz" />
<title>سهم نت الشركة الجزائرية للبرمجيات</title>
</head>
<body style="margin: 0">
{$header}
{$content}
{$footer}
</body>
</html>
شرح ملف ال main.tpl
الكل ملاحظ اننا وضعنا المتغيرات التاليه في صفحة ال main
1- {$header}
2- {$content}
3- {$footer}
وده معناه ان كل متغير من هذه المتغيرات سيتم تعويضه بشي وهذا الشيئ ممكن يكون كود HTML او كلمة او رقم او حتى فراغ(لاشيئ)
طيب الحين قوالبنا جاهزة نروح للبرمجة
نقوم بإنشاء صفحة بإسم index.php في مجلد العمل الرئيسي و نضع بيها الكود التالي
كود PHP:
require_once("smarty.php");
/*<< إستخراج محتوى الهيدر و الفوتر >>*/
$header=$smarty->fetch('header.tpl');
$footer=$smarty->fetch('footer.tpl');
/*<< ربط المتغيرات بقيمها >>*/
$smarty->assign('content','شرح نظام قوالب سمارتي من البداية و حتى الإحتراف');
$smarty->assign('header',$header);
$smarty->assign('footer',$footer);
/*<< عرض الصفحة >>*/
$smarty->display('main.tpl');
من الكود السابق يتبين لنا ان في سمارتي يوجد دوال اساسية و هي
fetch وتستخدم لإستخراج محتوى قالب آخر غير قالب الصفحة في حالتنا كان القوالب هي header.tpl و footer.tpl
assign لربط المتغير الذي في القالب بقيمته التي في البرنامج او السكربت
display تقوم بعمل تكوين و دمج كل المتغيرات بقيمهم و عرض الصفحة بمعنى ان لها تعتبر نفس دالة fetch و لاكنها تعود ب print بعكس fetch التي تعود بقيمة المتغير اي انها تنتهي ب return
تم إرفاق التطبيق الأول بالموضوع يمكنكم تحميله و مقارنة النتائج