السلام عليكم ورحمة الله وبركاته ،،
في البداية ، أبارك لكم صدور النسخه في مستواها التطويري الثالث لكافة الأعضاء ،
ما سأتحدث عنه هو القوالب وإضافتها بنظامها الجديد وسوف أناقش التالي :-
1. آليه كاش القوالب مع تغير المتغير في هذا الجيل .
2. أليه انشاء القوالب لعرضها بدون استخدام الداله eval
3. كيفية انشاء المتغير لكي يعرض في القوالب بشكل سليم وخالي من المشاكل. أو بالاصح طباعه الصفحه بالكامل
أليه كاش القوالب :-
سابقاً كنا نستخدم الخطاف (Hook) - التالي cache_templates لعمل كاش للقوالب ، اي انه يتم استدعاء القوالب المخصصه لمنتجاتنا بدون ان نزيد استعلام . وايضاً لم يتغير اسم القالب في الجيل الجديد ، ولكن تغيرت الآليه .
سابقاً كـ التالي :-
|
|
|
$globaltemplates = array_merge($globaltemplates, array(
'my_template_name',
'my_template_name1',
'my_template_name2'
));
|
او كـ التالي :-
$globaltemplates[] = 'my_template_name';
$globaltemplates[] = 'my_template_name1';
$globaltemplates[] = 'my_template_name1';
ولكن في الجيل الجديد ، تغيرت الآليه مع وجود نفس الخطاف السابق ، اصبحت كـ التالي :-
|
|
|
$cache = array_merge($cache, array(
'my_template_name',
'my_template_name1',
'my_template_name2'
));
|
أو
|
|
|
$cache[] = 'my_template_name';
$cache[] = 'my_template_name1';
$cache[] = 'my_template_name1';
|
بالنسبه لكاش القوالب ليس بالأمر الكبيرة / ولكنه مهم فأحببت ان اسهل العمل على اخواني ووقت البحث عن الآليه الجديدة
سننتقل لما هو مهم الآن وهو القوالب وكيفية استخدامها :-
سابقاً عندما نريد تعريف متغير يحتوي على قيمة قالب من قوالب المنتدى كنا نضعه في دالة eval مع عرض القالب بأستخدام fetch_template ولكن الآن تغيرت الآليه بشكل اراها أنا افضل بكثير عن سابقتها :-
ساذكر الفروقات على شكل أمثله بالمقارنه بين الجيلين ليكون الأمر اسهل
سابقاً
|
|
|
eval('$myvar = "' . fetch_template('my_custom_template') . '";');
|
ونستخدم $myvar لعرض المحتوى على حسب الرغبه من اضافته في القوالب او دمجه او او او
ولكن هنا الآن اصبح كـ التالي : -
|
|
|
$myvar = vB_Template::create('my_custom_template')->render();
|
وهنا لم ننتهي ، حيث نستطيع استخدام $myvar في القوالب ولكن يُحبث ان نقوم بتعريفه كـ متغير كما ذكرناه في الموضوع السابق لكي يُعرض في القوالب . وساذكرها لاحقاً في نص هذا الموضوع ان شاء الله
سابقاً كنا نعرض مانريده من بيانات في داله تكرار ، بحسب البيانات وهنا ساذكر فقط while لتعدد اسخدماها واسهلها ان شاء الله
فلنقل ان عندنا بيانات جلبناها من قاعدة البيانات ، ونريد عرض النتائج بشكل متوالي :-
القالب (my_custom_template):-
|
|
|
<div> $myresult[name], $myresult[email], $myresult[joindate] </div>
|
سابقاً : كنا نكتب التالي لتكرار البيانات :-
|
|
|
while($myresult = $vbulletin->db->fetch_array($myquery)) {
eval('$myvar .= "' . fetch_template('my_custom_template') . '";');
}
|
ونستخدم $myvar لعرض البيانات في القوالب بكل بساطه !
ولكن في الجيل الرابع :-
القالب :-
[PHP]
<div> {vb:raw myresult.name}, {vb:raw myresult.email}, {vb:raw myresult.joindate} </div>[/HTML]
|
|
|
while($myresult = $vbulletin->db->fetch_array($myquery)) {
$templater = vB_Template::create('my_custom_template');
$templater->register('myresult', $myresult);
$myvar .= $templater->render();
}
|
ونستطيع استخدام
ولكن نحتاج لكي نمررها على داله ، لكي تصبح جاهزة للعرض بالآليه الجديدة .
إذاً ، انتهينا من تعريف القوالب ، عرضها بالأليه الجديدة والآن سأصل لما يقارب النهايه لذلك ، وهو طباعه الصفحه بالكامل
سابقاً ، نستخدم داله eval متظمنه لدالة الفيبولتن print_output على الشكل التالي :-
|
|
|
eval('print_output("' . fetch_template('my_final_custom_template') . '");');
|
ولكن الآن الطريقة كـ التالي :- وهي تعريف المتغيرات السابقه كـ $myvar لعرضها والخ من تلك الأمور ، وتكون الطريقة كـ التالي :-
|
|
|
$templater = vB_Template::create('my_final_custom_template');
$templater->register_page_templates();// setup header, footer, headinclude.
$templater->register('myvar', $myvar);// my result from my loop.
print_output($templater->render());
|
وإلى هنا اعتقد اني انهيت قسم القوالب ، وذكر ما تم تغييرة ،
مواقع النشر (المفضلة)