عرض مشاركة واحدة
قديم 07-03-2006, 10:05 صباحاً   #1 (permalink)
ADMIN
.::+: Gulf Son :+::.

 
الصورة الرمزية ADMIN
 
تاريخ التسجيل: May 2005
الدولة: بلاد الخليج
المشاركات: 48,057
معدل تقييم المستوى: 53 ADMIN نشيطADMIN نشيطADMIN نشيطADMIN نشيطADMIN نشيطADMIN نشيطADMIN نشيطADMIN نشيطADMIN نشيطADMIN نشيطADMIN نشيط
إرسال رسالة عبر مراسل ICQ إلى ADMIN إرسال رسالة عبر مراسل MSN إلى ADMIN
صمم موقعك بإستخدام نظام القوالب


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

مقدمة
يعلم الجميع وخصوصاً مطوري المواقع أهمية نظام القوالب والذي أنتشر انتشاراً واسعاً لما له من فوائد كثيرة . حيث يتم باستخدام هذه الطريقة فصل الشفرة البرنامج عن شفرة 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





من مواضيع ADMIN في المنتدى
__________________


يقول الامام مالك رحمه الله:
إنما هؤلاء أقوام أرادوا القدح في النبي صلى الله عليه وسلم فلم يمكنهم ذلك، فقدحوا في أصحابه حتى يقال رجل سوء ولو كان رجلاً صالحاً لكان أصحابه صالحين.

وقال أبو الوفا بن عقيل رحمه الله:
انظر كيف اختار لمرضه بيت البنت، واختار لموضعه من الصلاة الأب، فما هذه الغفلة المستحوذة على قلوب الرافضة عن هذا الفضل والمنزلة التي لا تكاد تخفى عن البهيم فضلا عن الناطق.

ADMIN غير متواجد حالياً   رد مع اقتباس