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

الموضوع: للاخوة اصجاب الخبرة في برمجة php وخاصة مع ال classes و ال templates

  1. #1
    عضو فعال جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    2,270

    للاخوة اصجاب الخبرة في برمجة php وخاصة مع ال classes و ال templates



    السلام عليكم

    اخواني الكرام انا احاول في عمل محرك قوالب ( اي ليقوم باستبدال القوالب بمتغيرات وحلقات تكرارية)


    طبعا هناك العديد من المحركات الجاهزة ولاكن ارغب في عمل واحد خاص فيا (بسيط ليتناسب مع موقعي)

    الفكرة التي احاول تطبيقها هي كلتالي

    اولا استبدال متغيرات من القالب (عملتها والحمد لله 100%)
    ثانيا عمل loop وهذه التي لم استطع تنفيذها بعد!!!!!!!!!!!!

    الفكرة التي استخدمها هي تقسيم الكود المراد تكراره الى الراس والجسم والاقدام

    الرأس هو الكود ما بين <!-- Start: $blockname --> و <!-- Start Loop: $blockname -->
    والجسم هو الكود ما بين <!-- Start Loop: $blockname --> و <!-- End Loop: $blockname -->
    والقدم هو الكود ما بين <!-- End Loop: $blockname --> و <!-- End: $blockname -->

    وعندما اريد طلب الدوال اقوم بوضعه في حلقة تكرار اما while او for

    مثلا
    كود PHP:


    $tpl 
    = new Template(11);  //demo template  id = 11

    $time_run 5;
    $a=0;

    while(
    $a $time_run)
    {

    $tpl->assign('center','3 تجربة');

    print 
    $tpl->DisplayLoop("news",$time_run);

    $a++;

    وفي هذا المثال يكون كود القالب مخزن في قاعدة البيانات وهذا مثال للتجربة demo

    كود PHP:

    <!-- Startnews -->
    <
    table width=200 cellspashing=1 cellpadding=2 border=1>
    <
    tbody>
    <!-- 
    Start Loopnews -->
    <
    tr>
    <
    td>
    [
    0][0$center
    </td>
    </
    tr>
    <!-- 
    End Loopnews -->
    <!-- 
    Start Loopnews -->
    <
    tr>
    <
    td>
    [
    0][1]$center
    </td>
    </
    tr>


    <!-- 
    End Loopnews -->
    </
    tbody>
    </
    table>
    <!-- 
    Endnews -->



    <
    br> <br>
    <!-- 
    gabal --> hello
    <div align="right">$right </div>
    <
    div align="left">$left</div><br
    <
    div align="center">$center $extra</div>

    <
    br> <br>   
    <!-- 
    gabal -->  world








    <!-- Startnews -->
    <
    table width=200 cellspashing=1 cellpadding=2 border=1>
    <
    tbody>
    <!-- 
    Start Loopnews -->
    <
    tr>
    <
    td>
    [
    0][2]$center
    </td>
    </
    tr>



    <!-- 
    End Loopnews -->
    </
    tbody>
    </
    table>
    <!-- 
    Endnews --> 

    وعند العرض يكون العمل كالتالي
    اظهار head

    loop body
    foot

    وسف ارفق ملف ال class الذي يحتوي على الكود - ياريت حد من الاخوان يساعدني في هذه المسألة

    وهذا الرابط يظهر لكم ما هي النتيجة التي احصل عليها من الكود!!!!
    http://www.palintefada.com/templates/


    المشكلة:
    1) لا يقوم بعمل loop صحيح (ملاحظة في نفس التمبلت المطلوب عمل اكثر من loop المفروض يصير عنا 3 loop ولك loop يتم تكرار محتواه 5 مرات هذا المثال الي انا قمت به

    2) لا يقوم بوضع ال loop مكان ما محدد وضعه في القالب بل يظهر ال loop مكان ما وضعنا دالة ال DisplayLoop

    اخواني ياريت عدم تجاهل هذا الموضوع ومساعدتي (صارلي 5 ايام شغال في هذا الكود وللاسف مش زابط معي)





    الملفات المرفقة الملفات المرفقة
    __________________


    عاشت فلسطين وعاشت المقاومة
    http://www.palintefada.com/arabic
    http://www.palissue.com/arabic
    موقع انتفاضة فلسطين - موقع القضية الفلسطينية
    الكاسر



  2. #2
    عضو شرف
    تاريخ التسجيل
    Apr 2002
    المشاركات
    1,379


    سوف يساعدك هذا الدرس
    http://daif.net/index.php?app=artical&id=9





    __________________
    ضيف الله العتيبي مبرمج حر و مهندس معتمد من زيند (ZCE)
    الاتصال: daif@daif.net او جوال: 0556639884
    الخدمات: تقديم استشارات برمجيه, تطوير بوابات/خدمات إلكترونيه للقطاع العام او الخاص .

  3. #3
    عضو فعال جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    2,270


    السلام عليكم شكرا اخي daif

    حاولت افهم الكود نوعا ما ولاكن لم افهم هذه الدالة preg_replace

    كود PHP:


      $this->files[$this->fid] = preg_replace("'<LOOP NAME="(.+)">'i","<? foreach($this->vars[\1] as $key=>$var){ ?>",$this->files[$this->fid]);
      $this->files[$this->fid] = preg_replace("'</LOOP>'i","<? ?>",$this->files[$this->fid]);

    وشكرا





    __________________


    عاشت فلسطين وعاشت المقاومة
    http://www.palintefada.com/arabic
    http://www.palissue.com/arabic
    موقع انتفاضة فلسطين - موقع القضية الفلسطينية
    الكاسر


  4. #4
    عضو فعال جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    2,270


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




    Warning: fopen(tmp1): failed to open stream: Permission denied in /home/hpc/public_html/test/daif/daif.template.php on line 32

    Warning: fwrite(): supplied argument is not a valid stream resource in /home/hpc/public_html/test/daif/daif.template.php on line 33

    Warning: fclose(): supplied argument is not a valid stream resource in /home/hpc/public_html/test/daif/daif.template.php on line 34

    Warning: print_temp(tmp1): failed to open stream: No such file or directory in /home/hpc/public_html/test/daif/daif.template.php on line 35

    Warning: print_temp(tmp1): failed to open stream: No such file or directory in /home/hpc/public_html/test/daif/daif.template.php on line 35

    Warning: print_temp(): Failed opening 'tmp1' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/hpc/public_html/test/daif/daif.template.php on line 35


    قمت بتعديل الامر $tpl->load_file('template1.html', 'template1.html');

    وقمت باعطاء الملف template1.html الترخيص 777

    ومش الحال

    ولاكن ياريت اترد على ردي الاول لاني اريد عمل القوالب في قواعد البيانات وليس في ملفات

    وشكرا





    __________________


    عاشت فلسطين وعاشت المقاومة
    http://www.palintefada.com/arabic
    http://www.palissue.com/arabic
    موقع انتفاضة فلسطين - موقع القضية الفلسطينية
    الكاسر


  5. #5
    عضو فعال جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    2,270


    الان حاولت ان اقوم بتطبيق نفس الخظوات لكي يقوم بقرائة القوالب من قواعد البيانات ومن ثم عرضها -- للاسف لم أتمكن من اخراج القالب بنجاح!!!!!!!!!!!

    قرأت القالب من قواعد البيانات ووضعته في ال $this->content[$this->tempname]

    ولاكن المشكلة عندما اقوم بعمل print $this->content[$this->tempname] تظهر المتغيرات والاوامر ولن تظهر النتائج المفروض انو تخرج!!!!!!!!!!!!!!!!!!

    اليك رابط شغلت عليه الملف الى اخر تعديل

    http://www.palintefada.com/~hpc/test...daifscript.php

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

    ملاحظة قمت بارسال تعليق في الموقع للافادة والاستفادة http://daif.net/index.php?app=artical&id=9
    وشكرا





    الملفات المرفقة الملفات المرفقة
    __________________


    عاشت فلسطين وعاشت المقاومة
    http://www.palintefada.com/arabic
    http://www.palissue.com/arabic
    موقع انتفاضة فلسطين - موقع القضية الفلسطينية
    الكاسر


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


    لم يعمل ... لانك طبعتها بشكل مباشر ... ولم تنفذ الكود ... جرب الدالة eval لتنفيذ الكود

    eval($this->content[$this->tempname]);





    __________________
    ضيف الله العتيبي مبرمج حر و مهندس معتمد من زيند (ZCE)
    الاتصال: daif@daif.net او جوال: 0556639884
    الخدمات: تقديم استشارات برمجيه, تطوير بوابات/خدمات إلكترونيه للقطاع العام او الخاص .





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

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

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