بسم الله الرحمن الرحيم
المصدر : قرية الـ php
صمم موقعك بإستخدام نظام القوالب
مقدمة
يعلم الجميع وخصوصاً مطوري المواقع أهمية نظام القوالب والذي أنتشر انتشاراً واسعاً لما له من فوائد كثيرة . حيث يتم باستخدام هذه الطريقة فصل الشفرة البرنامج عن شفرة HTML بمعنى آخر فصل البرنامج عن التصميم . وهذا بدورة يسهل عملية تغيير التصميم بدون المساس بمحتوى الشفرة . وكذلك يسهل هذه العملية عما لو كان التصميم مدمج مع شفرة البرنامج .
لقد قرأت في هذا المنتدى موضوع عن كيفية استخدام القوالب في تصميم المواقع وقام بعض الأعضاء مشكورين بإفادة السائل واشاروا عليه بإستخدام كلاس خاص بهذه المهمة اسمه
FastTemplate ، ولقد قمت شخصياً بتحميل هذا الكلاس ولكن لم استطع التعامل معه لتعقيده وبدأت بالبحث عن كلاسات أخرى ، حتى وجدت المطلوب وهو مجموعه تحتوي على ثلاث كلاسات أحدهم للتاريخ والآخر لإرسال البريد والثالث ( وهو موضوعنا هنا ) خاص بالقوالب .
أولاً قم بتحميل الملف بزيارة الموقع الخاص به
بالضغط هنا ، اسم الملف
vLIB_3-0-10.zip .
قم بفك ضغط الملفات بأي مجلد من اختيارك ، ستجد ملف بإسم
vlibIni.php-dist قم بتغيير اسمه إلى
vlibIni.php ، هذا الملف يحتوي على متغيرات خاصة بالقوالب وقيم إفتراضية لها ( لا تقم بتغيير أي من تلك المتغيرات ) .
الآن لنقم بتصميم موقع بسيط يحتوي على نظام القوالب :
1- انشئ مجلد جديد وليكن اسمه
mysite .
2- انسخ المجلد الخاص بالمجموعه
( Vlib ) داخل هذا المجلد بحيث يصبح عنوانه
mysite/vilb .
3- تأكد من ان المجلد السابق
( Vlib ) يحتوي على جميع المجلدات والملفات الخاصة بالمجموعه .
4- انشئ مجلد جديد داخل مجلد
mysite لحفظ القوالب به وليكن اسمه
templates .
إنشاء ملف القالب
سنقوم الآن بإنشاء القالب للصفحة الرئيسية :
1- انشئ ملف جديد بإسم
mainpage.tbl ( يمكنك اختيار أي امتداد غير
tbl ولكن يفضل استخدام الإمتداد اللذي تختاره لجميع ملفات القوالب حتى تتفادى المشاكل ) مع التأكد من حفظ الملف داخل المجلد
templates .
2- ضع هذه الشفرة داخل ملف القالب :
كود:
<html dir=rtl>
<head>
<title><tmpl_var name='title'></title>
</head>
<body bgcolor="<tmpl_var name='bg'>">
<tmpl_var name='msg'>
<table border="1">
<tr>
<td>رقم المستخدم</td>
<td>اسم المستخدم</td>
</tr>
<tmpl_loop name='loop1'>
<tr>
<td><tmpl_var name='userid'></td>
<td><tmpl_var name='username'></td>
</tr>
</tmpl_loop>
</body>
</html>
-
شرح الكود السابق :
كما تلاحظون بأن الكود السابق هو كود
html عادي جداً ، ولكن هناك اوسمه
tags جديده وهي :
1-
<tmpl_var naem='VAR_NAME'>
2-
<tmpl_loob name='LOOP_NAME'>
3-
</tmpl_loop>
الوسم الأول خاص بالمتغيرات حيث سيتم إستبداله بقيمة معينه . مثل
title سيتم إستبداله بقيمة
title كما سنشاهده بعد قليل .
الوسم الثاني خاص بإنشاء دورة تكرارية أما الوسم الثالث فهو لإنهاء الدورة التكرارية ، بمعنى أن ما يكتب بين الوسم الثاني والثالث سيتم تكرارهما على حسب عدد مرات التكرار المطلوبه ( في مثالنا هذا سيتم تكرار كتابة رقم المستخدم واسمه حتى تنتهي البيانات ) .
إنشاء ملف PHP
الآن لننشئ الصفحة الرئيسية وليكن اسمها
index.php واحفظها في المجلد الرئيسي للموقع
( mysite ) ، بعد ذلك قم بفتح الملف
index.php وضع هذه الشفرة بداخله :
كود:
<?
// إضافة ملف كلاس القوالب إلى هذا الملف
include("vlib/vlibTemplate.php");
// جلب ملف القالب المطلوب التعامل معه
$tmpl = new vlibTemplate("templates/mainpage.tbl");
// يقوم السطر التالي بتغيير وسم عنوان الصفحة إلى النص المحدد
$tmpl->setVar('title', 'عنوان الصفحة');
// إضافة رسالة إلى القالب
$tmpl->setVar('msg', 'مرحباً بك، هذه معلومات اسماء المستخدمين');
// لنفترض بأن لديك مصفوفه تحتوي على ارقام واسماء المستخدمين
$rows = array();
$rows[] = array('userid' => 1, 'username' => 'Mohammed');
$rows[] = array('userid' => 2, 'username' => 'Ali');
$rows[] = array('userid' => 3, 'username' => 'Khaled Al-Omar');
$rows[] = array('userid' => 4, 'username' => 'Saud Ahmad');
$rows[] = array('userid' => 5, 'username' => 'Mobarak');
$rows[] = array('userid' => 6, 'username' => 'Hashem');
// بدء الدورة مع تحديد الإسم الذي اخترناه في القالب
$tmpl->newLoop('loop1');
foreach ($rows as $row) {
// إضافة بيان واحد إلى القالب
// سيتم التكرار حتى تنتهي البيانات من المصفوفه
$tmpl->addRow($row);
}
// إنهاء الدورة وإدخال البيانات إلى القالب
$tmpl->addLoop();
// طباعة القالب مع المحتويات الجديدة
$tmpl->pparse();
?>
-
شرح الكود السابق :
1- يتم في السطر الأول جلب ملف الكلاس الذي سيتم استخدامه في تغيير قيم المتغيرات في القالب .
2- بعد ذلك يتم جلب ملف القالب المراد استخدامه .
3- يتم تعيين قيمة "عنوان الصفحة" بدل الوسم
<tmpl_var name='title'> .
4- بـعد ذلـك يتـم تعيـين قيـمة "مرحباً بك ، هذه معلـومات اسماء المتسخدمين" بـدل الوسـم التالي
<tmpl_var name='msg'> .
5- يقوم النظام ببدء الدورة .
6- يتم تعيين القيم المدرجة في المصفوفة داخل الدورة الموجودة في القالب بحيث تتكرر حتى نهاية البيانات .
7- في السطر الأخير يتم طباعة القالب بعد تغيير قيم المتغيرات ليظهر بشكله النهائي .
عند فتح الصفحة الرئيسية
index.php سيتم جلب القالب وتغيير قيم المتغيرات وطباعة الشكل النهائي ( قم بفتح مصدر الملف الناتج واطلع على شكل شفرة
html ، ستلاحظ بأنها نفس الموجودة بالقالب ما عدا تكرار الأوسمه الخاصة بالجدول بعدد ارقام واسماء المتسخدمين ) .
يوجد عدة أمثله ( للتاريخ والبريد والقوالب ) مرفقه مع المجموع تجدونها في مجلد
vlib/examles أرجو الإطلاع عليها ومحاولة فهمها وتطبيقها ( خصوصاً أمثلة القوالب ) ، كذلك يوجد شرح وافٍ لأنواع المتغيرات والخواص ( باللغة الإنجليزية ) في الموقع الرسمي للمجموعه وعنوانه هو
http://vlib.activefish.com .
وفي الختام اتمنى من الجميع الاستفادة من هذا الدرس ، وفي حال وجود اي استفسار فأرجو عدم التردد في طرحه هنا حتى تعم الفائدة للجميع .
وأعتذر من الجميع إن كان الدرس غير واضح او غير مفهوم ، فهذه اول مرة اكتب فيها درساً كهذا . ( سامحوني على القصور ) ، وفي النهاية لا تنسونا من دعائكم في هذا الشهر الفضيل ..
المصدر : قرية الـ php