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