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

الموضوع: استدعاء قالب داخل قالب ؟ . ارجو المساعده

  1. #1
    عضو نشيط جدا
    تاريخ التسجيل
    Jun 2004
    المشاركات
    517

    استدعاء قالب داخل قالب ؟ . ارجو المساعده



    السلام عليكم

    اخواني .

    لدي مجموعة من القوالب . مخزنة في قاعده البيانات .

    القوالب
    header
    footer
    home
    email


    اريد ان اقوم بطباعة محتويات القالب home في صفحة . واريد تلقائي يقوم بطباعة header و footer

    انا جربت ووضعت $header و $footer داخل تمبليت home ولم يعمل


    طبعاً طباعة محتويات home عن طريق select ولاكن السؤال كيف يتم إستدعاء قالب header و footer داخل اي تمبليت اريد ان يظهران فية ؟
    اتمنى المساعده







  2. #2
    مُجَاهِد سابقاً
    تاريخ التسجيل
    Apr 2004
    المشاركات
    12,000


    في إنتظار أساتذة البرمجة !!!





    __________________
    استخدم خاصية تنبيه المشرفين للضرورة وعند ملاحظة موضوع يخالف قوانين منتديات سوالف وسيتم مراجعة الموضوع او المشاركة المبلغ عنها على الفور

  3. #3
    عضو نشيط جدا
    تاريخ التسجيل
    Jun 2004
    المشاركات
    517


    يا شباب . والله العظيم هذي من اسهل الطرق لديكم . لا تبخلون علينا شغلي متوقف من 3 ايام بسبب هذه الطريقة

    مُجَاهِد يعطيك العافية . وفي الإنتظار ايضاً






  4. #4
    عضو نشيط
    تاريخ التسجيل
    Oct 2003
    المشاركات
    75


    و عليك السلام و رحمة الله و بركاته أخي ..

    أعتقد أن الطريقة المثلى هي وضع أسماء المتغيرات ككلمة مميزة يتم استبدالها بعد استخراج التمبليت من قاعدة البيانات.

    مثلاً:

    قم بوضع المتغيرات في التمبليت بالشكل التالي:
    كود PHP:
    <table>
    <
    tr>
    <
    td>
    <<
    header>>
    </
    td>
    </
    tr>
    </
    table
    بحيث تقوم بجلب التمليت من قاعدة البيانت ووضعه في متغير مثلاً $temblate و استبدال الكلمة <<header>> بالقيم التي تريدها بواسطة الدالة str_replace مثلاً.
    كود PHP:
    $temblate="
    <table>
    <tr>
    <td>
    <<header>>
    </td>
    </tr>
    </table>
    "
    ;

    $header="Try me";

    echo 
    str_replace("<<header>>"$header$temblate); 
    و يمكنك عمل استبدال جماعي للكلمات بمتغيراتك بواسطة نفس الدالة و لكن يجب عليك عمل مصفوفتين أحداهما تحوي الكلمات و الأخرى تحوي البدائل:
    كود PHP:
    $words = array("<<header>>""<<footer>>""<<content>>"); 
    $substitutes   = array($header$footer$content); 

    echo 
    str_replace($words$substitutes$temblate); 
    أرجو أن يساعدك هذا... و الله الموفق.






  5. #5
    عضو نشيط جدا
    تاريخ التسجيل
    Jun 2004
    المشاركات
    517


    جزاك الله خير Seanshi . طريقة استفدت منها ولاكن ليست المطلوب

    انا اريد طباعة تمبليت داخل تمبليت في القاعده . لان التصميم عندي فية اكثر من تمبليت داخل في تمبليت . وليست مرتبة . اي لا استطيع التحكم في وضع المتغير في اي مكان لانه عباره عن تقاسيم كثيره .


    كل الذي اريد . كيف اقوم بطباعة تمبليت داخل تمبليت . يعني كيف اقوم بطباعة الهيدر داخل اي تمبيليت اخر وكذالك الفوتير . اريد سطر برمجي يكتب في التمبليت لجلب محتويات تمبليت اخر في نفس التمبليت






  6. #6
    عضو فعال
    تاريخ التسجيل
    Jun 2002
    المشاركات
    1,346


    بسيطة استخدم الدالة eval
    استدعي قالبي الهيدر والفوتر من القاعدة وحطهم في متغيرين مثلا $head و $foot

    القالب اللي انت قلته home حط المتغيرين داخله دون أي إضافات وبدون وسوم البي اتش بي
    بعدين خلي الشغل على الدالة eval
    كود PHP:
    eval("\$home =\"$home\"); 
    كل ما تحتاجه
    و$home هي القالب الرئيسي على ما أظن
    تحياتي
    أتمنى تكون فهمت قصدي






  7. #7
    عضو نشيط جدا
    تاريخ التسجيل
    Jun 2004
    المشاركات
    517


    الله يعطيك الف عافية وما قصرت .

    ولاكن كيف يتم الإستدعاء ؟ واين استدعي واسند في المتغيرات ؟

    الطريقة التي ذكرتها هي الصحيحه ولاكن الشرح غير واضح

    اتمنى توضحه بشكل اكبر والله يعطيك العافية
    شكراً






  8. #8
    عضو نشيط جدا
    تاريخ التسجيل
    Jun 2004
    المشاركات
    517


    up
    :S






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


    خذ اقرأ الدرس هذا وقم بتطبيقه .. اعتبره مرجع صراحة لمن يسأل عن طريقة القوالب
    http://www.phpvillage.org/community/...php?topic=39.0


    ايضا ستجد الأخ عدام شرح هنا أيضا مثال آخر للقوالب باستخدام eval
    السؤال هنا
    http://www.swalif.net/softs/showthre...highlight=eval

    الإجابة الكاملة هنا
    http://www.swalif.net/softs/showthre...highlight=eval





    __________________
    ومامن كاتب إلا سيفنى ****** ويبقي الدهر ماكتبت يداه
    فلا تكتب بكفك غير شيء ****** يسرك يوم القيامة أن تراه

  10. #10
    عضو نشيط جدا
    تاريخ التسجيل
    Jun 2004
    المشاركات
    517


    السلام عليكم
    مشكورين شباب ويعطيك العافية

    والله يعطيك العافية دكتور سيرفر .

    طيب الان سويت الكود هذا

    كود PHP:
    <?php
    include ("config.php");

    $q = (" SELECT * FROM template where id = 1");
    $re mysql_query($q);
    while(
    $ro mysql_fetch_row($re))
    {
        
    $scr=$ro[2] ;
    }

    $q = (" SELECT * FROM template where id = 3");
    $re mysql_query($q);
    while(
    $ro mysql_fetch_row($re))
    {
        
    $header=$ro[2] ;
    }

    $q = (" SELECT * FROM template where id = 4");
    $re mysql_query($q);
    while(
    $ro mysql_fetch_row($re))
    {
        
    $footer=$ro[2] ;
    }


    $query = (" SELECT * FROM template where id = 2 ");
    $result mysql_query($query);
    while(
    $row mysql_fetch_row($result))
    {
    $home=$row[2] ;
    $home=str_replace('"',"'",$home);
    eval(
    "\$home = \"$home\";");
    echo 
    $home ;
    }

    ?>
    ممكن اعرف كيف اختصر الجمل الثلاث الاولى ؟ الي هي scr و header و footer ?
    يعني كيف اسوي لها استدعاء واحد (اخليها في جملة وحده )


    طبعاً $scr و $header و $footer هذي في القالب home وتطبع تمام ومافيها اي شي بس كيف اختصر الجمل ..

    وشكراً






  11. #11


    كود PHP:
    <?php 
    include ("config.php"); 

    $q = (" SELECT * FROM template ");
    $re mysql_query($q); 
    while(
    $ro mysql_fetch_row($re)) 

         switch (
    $ro[id]) {
        case 
    1$scr=$ro[2]; break;
        case 
    3$header=$ro[2]; break;
        case 
    4$footer=$ro[2]; break;
         }
    }

    $query = (" SELECT * FROM template where id = 2 "); 
    $result mysql_query($query); 
    while(
    $row mysql_fetch_row($result)) 

    $home=$row[2] ; 
    $home=str_replace('"',"'",$home);
    eval(
    "\$home = \"$home\";"); 
    echo 
    $home


    ?>
    اتمنى اخوي انه يكون هذا الكود هو ما تريد لاختصار الأكواد الطويلة لديك ، ويمكنك إضافة أسطر على صيغة case (num): وهكذا
    تحياتي





    __________________
    أحمد أبو النصر
    Junior php Developer
    +20166196074





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

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

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