PDA

مشاهدة نسخة كاملة : [شرح هام] صمم موقعك بإستخدام نظام القوالب


alsaeqah
02-07-2006, 05:04 PM
بسم الله الرحمن الرحيم
المصدر : قرية الـ php (http://www.phpvillage.org/p.php?page=0&idp=64)

صمم موقعك بإستخدام نظام القوالب

مقدمة
يعلم الجميع وخصوصاً مطوري المواقع أهمية نظام القوالب والذي أنتشر انتشاراً واسعاً لما له من فوائد كثيرة . حيث يتم باستخدام هذه الطريقة فصل الشفرة البرنامج عن شفرة HTML بمعنى آخر فصل البرنامج عن التصميم . وهذا بدورة يسهل عملية تغيير التصميم بدون المساس بمحتوى الشفرة . وكذلك يسهل هذه العملية عما لو كان التصميم مدمج مع شفرة البرنامج .
لقد قرأت في هذا المنتدى موضوع عن كيفية استخدام القوالب في تصميم المواقع وقام بعض الأعضاء مشكورين بإفادة السائل واشاروا عليه بإستخدام كلاس خاص بهذه المهمة اسمه FastTemplate ، ولقد قمت شخصياً بتحميل هذا الكلاس ولكن لم استطع التعامل معه لتعقيده وبدأت بالبحث عن كلاسات أخرى ، حتى وجدت المطلوب وهو مجموعه تحتوي على ثلاث كلاسات أحدهم للتاريخ والآخر لإرسال البريد والثالث ( وهو موضوعنا هنا ) خاص بالقوالب .

أولاً قم بتحميل الملف بزيارة الموقع الخاص به بالضغط هنا (http://vlib.activefish.com/download/) ، اسم الملف 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
(http://<b><u><font%20color=)

الآن لننشئ الصفحة الرئيسية وليكن اسمها 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 (http://vlib.activefish.com/) .

وفي الختام اتمنى من الجميع الاستفادة من هذا الدرس ، وفي حال وجود اي استفسار فأرجو عدم التردد في طرحه هنا حتى تعم الفائدة للجميع .

وأعتذر من الجميع إن كان الدرس غير واضح او غير مفهوم ، فهذه اول مرة اكتب فيها درساً كهذا . ( سامحوني على القصور ) ، وفي النهاية لا تنسونا من دعائكم في هذا الشهر الفضيل ..

المصدر : قرية الـ php (http://www.phpvillage.org/p.php?page=0&idp=64)