النتائج 1 إلى 2 من 2

الموضوع: آلية المتغيرات الخاصة القوالب في ملفات php/ الخطاطيف للجيل الرابع

  1. #1
    عضو فعال
    تاريخ التسجيل
    Feb 2003
    المشاركات
    1,174

    آلية المتغيرات الخاصة القوالب في ملفات php/ الخطاطيف للجيل الرابع



    السلام عليكم ورحمة الله وبركاته ،،

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

    ما سأتحدث عنه هو قسم واحد فقط وهو القوالب وإضافتها بنظامها الجديد ولن أتطرق لباقي الأشياء في هذا الموضوع ، ربما ساذكرها لاحقاً في مواضيع منفصله ان شاء الله ، وسوف أناقش التالي :-


    1. آليه كاش القوالب مع تغير المتغير في هذا الجيل .
    2. أليه انشاء القوالب لعرضها بدون استخدام الداله eval
    3. كيفية انشاء المتغير لكي يعرض في القوالب بشكل سليم وخالي من المشاكل. أو بالاصح طباعه الصفحه بالكامل

    أليه كاش القوالب :-

    سابقاً كنا نستخدم الخطاف (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/ الخطاطيف للجيل الرابع" ، واذا كنت من مستخدمين تويتر ، قم بالضغط هنا لكي يتم تحديث حالتك لنشر المعلومه قدر المستطاع

    أطيب وارق تحية ،
    أخوكم / الزعابي





    __________________
    منابر المتميز | شبكة المتميز
    حالياً في الأردن : 962777775774
    -----------------------------------
    مطور ويب / JS(incl AJAX) , PHP, XML

    تتبعني في Twitter


  2. #2
    خبير سيرفرات لينكس
    تاريخ التسجيل
    Mar 1999
    المشاركات
    4,917


    بارك الله فيك - دراسة رائعة وتستحق التجاوب










المواضيع المتشابهه

ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض