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

الموضوع: القوالب (التمبلت) شغلة مهمة لكل مبرمج php(ارجو الدخول للضرورة)

  1. #1
    عضو نشيط
    تاريخ التسجيل
    May 2008
    المشاركات
    39

    Question القوالب (التمبلت) شغلة مهمة لكل مبرمج php(ارجو الدخول للضرورة)



    بسم الله الرحمن الرحيم


    اثناء تصفحي للانترنت لاحظت شغلة مهمة جدا بأحد المواقع , وهي كانت القوالب ونظمتها , وهذي الانظمة بتغني في اغلب الاحيان عن الcss وهي مبرمجة بالphp (في حالتنا هذه) , بحثت عن الموضوع في جوجل وغيرو عن هذي القوالب لقيت في اكثر من برنامج عربي لأنظمة القوالب , نزلت اكثر من برنامج لكن انا شايفها معقدة ومش عارف كيف استعملها مع انه في شرح الها ,لكن الشرح مش كافي لأنه ما بشرح الكود متل هذا الموقع http://bp.ma/Udem/chareh.php?Awid=chareh_1 شارح بطريقة غير مفهومة ,, حاولت ابحث عن درس يعلم كيف ممكن الواحد يعمل مثل هذي القوالب ولقيت ولله الحمد , وكان الشرح بردو مش كافي لأنه لما يشرح عن كود معين بقول(هذا الكود لعمل كذا وكذا ) ما بشرح الي داخل الكود من دوال وامور تانية متلا : كلمة new شو بتعني بالبرمجة او الاشارة <- او شو علاقة المتغير بـ<- ....وهكذا .
    من خلال البحث عرفت انه في اكتر من برنامج ومن ضمنها smarty , umed , my templete وغيرها .
    الان انا حاولت اعمل قالب بطريقتي الخاصة وهي عن طريق تبديل الكلمات بأخرى , ولكن واجهتي بعض المشاكل..
    اولا عملت صفحة اسمها function.php , وهي مختصة بالدوال الي بدنا نستخدمها (حاليا دالة وحدة):



    <?php
    function get_temp($file){
    $fp=fopen($file,"r");
    $temp= fread($fp,filesize($file));
    fclose($fp);

    return $temp;
    }

    ?>

    عرّفت في الدالة السابقة انه يفتح الصفحة الي اسمها بدل المتغير $file الي هو رح يكون الصفحة التانية الي فيها رح يكون البرمجيات الخاصة , وبعدها يقرأ الموجود داخل الملف .

    صفحة القالب وهي مكونه من جدول (صف للهيدر , صف بداخلة 3 اعمدة :يمين و يسار و وسط: , وصف لاسفل الصفحة) templete.html.

    <html>
    <body>
    <table width="100%" height="100%" border="0" cellspacing="1" cellpadding="0">
    <tr>
    <td colspan="3"> {head} </td>
    </tr>
    <tr height="100%">
    <td> {left} </td>
    <td> {midlle} </td>
    <td> {right} </td>
    </tr>
    <tr>
    <td colspan="3"> {footer} </td>
    </tr>
    </table>
    </body>
    </html>
    الان وضعت داخل كل حقل اسم بدنا نستبدله متل : {head},{footer},{left} والباقي..
    الان صفحة الاستبدال replace.php وفيها رح نعرف الشغل الى اشتغلناه فوق , ورح نحط الكلمات الي بدنا نستبدلهم بمصفوفة بسيطة(وهون بتبدا المشكلة):



    <?php
    //نقوم بتضمين ملف الفنكشن والذي يحتوي على دالة قراءة الملف
    include("function.php");
    //يتم إسناد نتيجة الدالة والتي ستكون منطقياً هي نص الملف المراد فتحه
    $temp_item = get_temp("templete.html");
    //هنا نقوم بإستخدام دالة الإستبدال ، ونقوم بإستبدال متغيراتنا السابقة بما نريده كما يلي
    $old_temp= array('{head}','{footer}','{right}','{left}','{midlle}');
    $new_temp= array('alm7trf.cscript','&copy','right-block','left-block','main body');
    $output = str_replace($old_temp,$new_temp,$temp_item);
    //طباعة الملف بعد عملية الإستبدال
    echo $output;
    ?>
    لحد الان كل شي تمام (استدعينا ملف الدالة , وعرفنا ملف القالب داخل دالتنا, عملنا متغير عباره عن مصفوفة الكلام السابق , ومتغير للمصفوفة للكلام الجديد, وابدلنا الكلام عن طريق الدالة str_replace و اخرجنا الكلام) وعملت تجربة وزبطت 100% ,,

    المشكلة هو اني عامل صفحة لكل متغير (head,footer,left,right) حتى تكون كل صفحة مختصة بشيء ,الان انا بدي ابدل الكلام الموجود بصفحة القالب مع الكلام الموجود بكل صفحة , حاولت اعمل استدعاء عن طريق include ما زبط لأنه كان يعرض الكلام كلو بأعلى الصفحة وما بعرضة بمكانه الصحيح .
    كانت هذي مشكلة رقم واحد
    المشكلة رقم 2 هي انه كيف بدي اعمل صفحات السكربت واستدعي القالب فيها ,, يعني لازم بكل صفحة اكتب (اخر كود) ولاّ لأ ..

    ــــــــــــــــــــــــــــــــــــــــــــــــــ ـــــــــــــــــــــ

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

    واتمنى التوفبق للجميع







  2. #2


    السﻻم عليكم
    بالنسبة للرابط الذي وضعته فهو خاص بمحرك برمجته انا ولم يكن في المستوى وتخليت عنه ... كذلك الشرح

    بالنسبة لكلمة new و -> فقم بزيارة هذا الموضوع http://www.swalif.net/softs/swalif45/softs180086/

    اما اذا اردت استخدام محركات جاهزة فاختر من بين:

    القالب السهل - الرئيسية

    قوالب سمارتي SMARTY خطوة بخطوة - الجزء الأول - منتدى بي اتش بي PHP

    http://www.swalif.net/softs/swalif45/softs111724/

    اما اذا اردت برمجة محرك خاص بك فاستخد احد المحركات التي وضعتها لك "وتعلم منها خصوصا محرك easy"





    __________________
    عدت
    اقتراحاتكم -> www.elbachiri.com

  3. #3
    عضو نشيط
    تاريخ التسجيل
    May 2008
    المشاركات
    39


    شكرا على ردك , واعذرني على الانتقاد.






  4. #4


    ﻻ تعتذر فانا اعترف بما قلته





    __________________
    عدت
    اقتراحاتكم -> www.elbachiri.com

  5. #5
    عضو جديد
    تاريخ التسجيل
    Jun 2007
    المشاركات
    17


    هناك طريقة سهلة لاستخدام القوالب
    افترض أن لدي الجدول التالي(lessoncat) :
    كود:
     
    CREATE TABLE `lessoncat` (
      `id` int(11) unsigned NOT NULL auto_increment,
      `name` varchar(255) NOT NULL,
      `text` text NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM
    أضف الدالة التالية إلى موقعك
    كود PHP:
    function Get_Template($name)
    {
     
    $template_dir="template/";
     if (
    $name!=urlencode($name)) {
      return 
    null;
     }
     
    $result=file_get_contents($template_dir.urlencode($name).".html");
     
    $result=addslashes($result);
     
    $result=str_replace("\'","'",$result);
     return 
    $result;

    وعند الاستدعاء
    كود PHP:
     $result=mysql_query("SELECT * FROM lessoncat ORDER BY id;");
     if (
    mysql_numrows($result)>0) {
      while (
    $row=mysql_fetch_array($result)) {
       
    extract($row);
       eval(
    "echo \"".Get_Template('list_cat')."\";");
      }
     } 
    طبعاً ملف القالب('list_cat) يجب أن يحتوي التالي
    كود HTML:
    <div align="center">
     <table border="0" cellpadding="0" cellspacing="0" width="100%" id="table2">
      <tr>
       <td align="center" style="padding: 5px" rowspan="3" valign="top">
       <img border="0" src="cat.jpg" width="50" ></td>
       <td width="100%" valign="top" style="padding: 3px"><a style="font-weight: bold" href="lesson.php?idcat=$id">
       <font color="#722000">$name</font></a></font></td>
      </tr>
      <tr>
       <td width="100%" valign="top" style="padding: 5px">$text</td>
      </tr>
     </table>
    </div>

    أرجو أن يكون الشرح واضح






  6. #6
    عضو سوبر نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    613


    لقد كانت لي تجربة بسيطة مع نظم القوالب خرجت بها بقالب بسيط ، قد يفيدك في التعلم منه كبداية لاساسيات نظم القوالب ..
    -- المبدوء بـ # تم تنفيذه
    نظام cache
    امكانية عدم وجود مجلد cache ويتم تخزين الملفات في مجلد temp
    التعرف التلقائي على المتغيرات
    دالة تكرار loop
    دالة شرط if/elseif/else
    # دالة استيراد include
    دالة تنفيذ كود php
    دالة تبديل switch
    # خاصية التعليقات
    # امكانية حفظ القالب في متغير
    # عرض اخطاء القالب
    علامات المقارنة تكون نص بدلا عن رمز eq , neq , gt , lt
    # التأكد من ان المتغير ليس فارغاً
    # تبديل المتغيرات بقيمها في الملفات المستوردة
    اما عن النظام الذي انصح به لاستخدام القوالب فهو نظام القالب السهل ، وان اردت شيئاً اكثر تشعباً فلديك smarty او النسخة الخفيفة منه template_lite .





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

  7. #7
    عضو نشيط
    تاريخ التسجيل
    May 2008
    المشاركات
    39


    مشكورين على الرد جميعكم.










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

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

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