صفحة 1 من 4 1234 الأخيرةالأخيرة
النتائج 1 إلى 15 من 52

الموضوع: تعلم : TemplatePower .. واجعل برامجك أكثر تنظيما وفعالية

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

    تعلم : TemplatePower .. واجعل برامجك أكثر تنظيما وفعالية



    تعرفون ياشباب أهمية أنظمة القوالب وفائدتها العظيمة التي تجعل من البرنامج أسرع وتسهل صيانته وتطويره لاحقا بأقل مجهود .. وسيكون لزاما على كل من يريد تعلم PHP أن يجد طريقته الخاصة أو نظامه المفضل للتعامل مع القوالب فهناك من يعتمد على نفسه لكتابة نظام الخاص وفيه ناس يعتمدون على أنظمة قوالب جاهزة في برامجهم ويستفيدون منها مباشرة بمجرد استدعائها

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

    من عادتي أفتح ملفات أي سكربت يوصلني وأطلع على كتابته وأسلوب برمجته حتى وقعت بالصدفة على نظام القوالب TemplatePower .. وكان ذلك في سيكربت ( مبوب ) وصدقوني من أول مرة قريت طريقة استدعاء القالب واستخدامه في الصفحة وجدت بأنه واضح جدا ولن يأخذ من وقتك الكثير لتبدأ باستخدامه .. صحيح أن أنظمة القوالب تكاد تكون متشابهة في الاستدعاء وفي إسناد القيم للمتغيرات .. لكن قد يجد المبتدئ صعوبة في بعض الأمور خاصة عند تداخل الحلقات والمصفوفات وطريقة ذلك القالب في التعامل معها .. أما ما يميز TemplatePower فهي السهولة التامة ومن أول مرة قمت بتجربته على منتدى بسيط قمت بكتابته وتفاجأت بالنتيجة


    كيف أستخدم TemplatePower ؟

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


    ببساطة .. وكأغلب أنظمة القوالب فإن TemplatePower يتعرف على المتغير الموجود داخل القالب إذا كان بين القوسين التاليين { } فإذا كان لديك متغير في أي جزء من القالب تريد استبداله بقيمته لاحقا فضعه بين القوسين السابقين مثلا : {a} أرقام أو حروف بدون مسافات أو علامات رياضية .

    - مثال مبتدئ : لنفرض بأنك أعددت صفحة قالب html وقمت بتسميتها temp.htm وتحتوي على الكود التالي :
    كود PHP:
    <html dir=rtl>
    <
    head>
      <
    title>تدريب على القوالب</title>
    </
    head>
    <
    body bgcolor"#FAFCEB" >
      <
    H2>{nameمرحبا بك يا : </H2>
    </
    body>
    </
    html

    قم بعمل صفحة test.php وضع داخلها التالي :

    كود PHP:
    <?php
    //أولا تعمل انكلود لملف الكائن الخاص بالنظام في صفحتك
    include_once( "./class.TemplatePower.inc.php" ); 
    //إنشاء كائن جديد أمرر له اسم صفحة القالب المراد استبدال المتغيرات فيها 
    $tpl = new TemplatePower"./temp.tpl" );

    //بعد إنشاء الكائن لابد من استخدام الدالة التالية وستتولى قراءة 
    //ملف القالب واستبدال المتغيرات بقيمها
    $tpl->prepare();

    //تقوم الدالة التالية بإسناد القيمة لمتغير محدد
    //البارامتر الأول للدالة هو اسم المتغير كما هو في القالب
    //البارامتر الثاني هو القيمة لهذا المتغير 
    $tpl->assign"name""عبد الله" );

    //إظهار النتائج النهائية
    $tpl->printToScreen();
    ?>


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


    القائمة الرئيسية ثابتة فلن تحتاج لأي متغير .. الأخبار في المنتصف قمنا بتحديد المتغيرات التي ستستخدمها وهي متغير {news_title} لعنوان الخبر ومتغير {news_text} لنص الخبر ، ومتغير {auther} لكاتب الخبر.

    القائمة اليسرى سنقوم بعرض اخر عشرة مواقع تم إضافتها للدليل .. وسيكون المتغير {last_site} عبارة عن المصفوفة التي تحمل أسماء تلك المواقع .

    الطريقة هي نفس الخطوات السابقة بالضبط .. ولوجود حلقات متعددة أو بلوكات أو أجزاء متعددة تتطلب التكرار في صفحتك فسنستخدم الوسمين التاليين :
    كود PHP:
    <!-- START BLOCK block_name -->
    <!-- 
    ُEND BLOCK block_name --> 
    تعمل هذين الوسمين على تحديد جزء معين من القالب سيتم تكراره لاحقا .. أي نضع الأول في أعلى الكود اللي نبي نكرره والثاني آخر الكود .. مثلا جدول الأخبار سيكون كالتالي :
    كود PHP:
      <!-- START BLOCK news -->
        <
    table border="1" width="80%" id="table4" style="border-collapse: collapse">
                <
    tr>
                    <
    td bgcolor="#336699" align="center">
                    <
    font face="Tahoma" size="2" color="#FFFFFF">{news_title}</font></td>
                </
    tr>
                <
    tr>
                    <
    td height="119" align="center"><font face="Tahoma" size="2">{news_text}</font></td>
                </
    tr>
                <
    tr>
                    <
    td bgcolor="#FAFCEB" align="center">
                    <
    font face="Tahoma" size="2">{auther}</font></td>
                </
    tr>
            </
    table
     <!-- 
    END BLOCK news --> 

    لاحظ وجود المتغيرات الخاصة ببلوك الأخبار بين وسمي بداية ونهاية البلوك ,, وهكذا في أي مكان تحتاج فيه للتكرار فكل ماعليك هو أن تضع اسما آخر للبلوك بدلا من news وتضعه بين الوسمين السابقين في ملف القالب ولنعطيه اسم blockat.htm

    هذا من ناحية القالب .. بقي الان ملف php :
    كود PHP:
    <?php
    include_once( "./class.TemplatePower.inc.php" ); 
    $tpl = new TemplatePower"./blockat.htm" );//اسم صفحة القالب
    $tpl->prepare();
    //لاجديد .. هذي اساسية في كل صفحة استخدم فيها القالب

    //نقوم بالاستعلام في القاعدة عن الأخبار 
    $query =mysql_query("select * from table_name limit 10");
    while(
    $news mysql_fetch_array($query)){

    //هنا نستخدم الدالة التالية للتصريح عن بلوك جديد ونمرر للدالة 
    //اسم البلوك كما هو في القالب 
    $tpl->newBlock("news");

    //الان نمرر للدالة التالية اسم المتغير الموجود في القالب أولا ثم فاصلة ونضع مصفوفة القيم
    //التي جلبناها من القاعدة 
    $tpl->assign("news_title",$news['title']);
    $tpl->assign("news_text",$news['text']);
    $tpl->assign("auther",$news['writer']);

    }  
    //نغلق الحلقات كلها أولا

    $tpl->printToScreen();  //ثم نطبع اخر شي



    وبالطريقة نفسها مع اخر عشرة مواقع .. ضع وسمي البلوك لتحدد فيها الناحية التي ستتكرر والتي تشتمل على المتغيرات أيضا .. ثم في ملف php قم بإنشاء بلوك جديد مثل :
    كود PHP:
    $tpl->newBlock("sites"); 

    وأكمل على نفس الخطوات فقط لتجد برنامجك وقد أصبح يعتمد على نظام قوالب مستقل تماما

    في نظام TemplatePower وظائف جميلة أيضا يمكن أن تكتشفها بنفسك .. وسيساعدك ايضا دليل الاستخدام العربي في موقعهم على أن تفهم القالب وتستفيد من خصائصه .

    تحياتي لكم





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


  2. لا جديد سوى الإبداع



    أستاذي القدير ,
    Dr.Server
    اسعد الله اوقاتك بكل خير ,, ها انت من جديد بإطلالة رائعه ودرس اكثر من رائع ,

    القوالب نظام رائع جدا ً وكما ذكرت لك اقتبسته مسبقا ً , وبهذا الدرس استطيع وضع النقاط على

    الحروف ليبدو مفهوم استخدام القوالب واضحا كما اردت ان يكون

    وقفت استاذي العزيز في الشرح المميز .

    جزاك الله خير ورحم الله والديك وجعله الله في موزاين حسناتك , فقد افدتني كثيرا ً

    تحياتي لك

    دمت مبدعا ً

    اخوك

    يحيى بن ابراهيم





    __________________
    أكواد نت مفهوم جديد للبرمجة العربية
    www.akwad.net
    Flash,Php,Java,ActionScript
    أنصت للإبداع..
    زمان يا نت :D

  3. #3
    عضو نشيط
    تاريخ التسجيل
    Mar 2005
    المشاركات
    281


    درس جميل
    ويجدى بالذكر انه هنالك قوالب Smarty وهذه القوالب مبرمجة تحت اشراف php.net






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


    استاذي الفاضل Dr.Server
    جزاك الله خير والله يوفقك دنيا واخره قل امين
    موضوعك جا في وقت انا بامس الحاجه له وبعد عناء وتعب شهر وانا حايسه بين الكلاسات والشروح وبدون نتيجه تذكر

    ولكن يافرحه ماتمت
    واجهتني نفس المشكله ياللى واجهتها في مختلف انظمه القوالب في حلقات التكرار خصوصا اذا كان فيه شرط في الاستعلام مثل هذا :

    كود PHP:

    $QueryNews 
    mysql_query("SELECT * FROM News WHERE (Newsid = '$Newsid') AND (Catid = '$Catid') ");
         while(
    $NewsRow mysql_fetch_array($QueryNews))
         { 
    يظهر القالب بدون ترجمه المتغيرات ياللى فيه
    ما ادري وين المشكله

    حاولت اعمل طريقه الاستاذ عمر الله يجزاه خير ولكن من خلال ملفات HTML مب من قاعده بيانات
    وسويت دمج بين طريقته وطريقتك ياللى بنفس الموضوع هذا
    http://www.swalif.net/softs/showthread.php?t=97355
    لانه عندي اسماء القوالب في متغيرات <------ وخيتك راعيه طويله ower:
    والحمد لله نجحت الطريقه الا في حلقات التكرار اذا فيها شرط اي دي الموضوع واي دي القسم
    للاسف ما يظهر القالب خير شر ولا رساله خطأ
    لكن لما الغي اي دي الموضوع من شرط الاستعلام يمشي الحال ويعرض التمبلت :con2:
    لكن بوجود اي دي الموضوع واي دي القسم ما يعرض التمبلت والشرطين ضروريات لانه ابي يعرض حسب اي دي الموضوع واي دي القسم ياللى هو تحته


    استاذي الفاضل
    بالمرفق ملف News وملف القالب تبعه
    ياليت تشوف لي وين الخطأ

    والله يجزاك الجنه

    <------ قصه حياتها





    الملفات المرفقة الملفات المرفقة
    • نوع الملف: zip News.zip‏ (1.2 كيلوبايت, 269 مشاهدات)
    __________________
    إستخدم ملفك الخاص لكتابة توقيعك

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


    شكرا لك
    جزاك الله خيرا






  6. #6
    عضو فعال جدا
    تاريخ التسجيل
    Feb 2004
    المشاركات
    2,307


    الله يجزاك الف خير

    وصراحة قالب جميل جداا .. وقد قرأت عنه من موقع الدعم الفني له بالعربي ..

    ولكن هل تعرف قالب الاستاذ عبدالله عيد ؟ ( برمجة عربية ) ..

    والف شكر لك حبيبي ..


    وتقبل تحياتي





    __________________
    بي اتش بي العرب : php-ar.com
    دروس PHP خاص : phpfaq.php-ar.com

    new site : www.naifphp.net/web

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


    طريقة رائعة و شكراً كتير ألك
    بس عندي سؤال هذه الطريقة هل هي نفسها المستخدمة في منتديات phpbb؟ ower:
    يعني بلا قواعد بيانات :nice:





    __________________
    الرجاء مساعدتي في القوالب من أصحاب الخبرة:
    http://www.swalif.net/softs/showthread.php?s=&threadid=95292

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


    Wala3 CArds أشكرك على الإطراء وكلامك الجميل الذي قد لا أستحقه .. وأسعدني كثير مرورك على الموضوع

    AsHeQ ALGaMaR حياك الله ، وبالنسبة لنظام smarty فقد جربته سابقا غير أنني وجدت TemplatePower أسهل منه وطريقته أوضح .

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

    1- خطأ في ملف القالب news.htm .. لاحظ معي وسم بداية ونهاية البلوك فقد وضعتها بالشكل التالي :
    كود PHP:
    <!-- START BLOCK News  -->
    --------------------
    --------------------

    <!-- 
    END BLOCK News --> 
    هنا قمت بتسمية البلوك News غير أنك في ملف news.php قمت بالتصريح عن اسم البلوك السابق بشكل خاطئ حيث كتبت :
    كود PHP:
    $tpl->newBlock("News.html"); 
    يجب أن تصرح عن البلوك بنفس الاسم الذي وضعته في صفحة القالب .. بحيث يصبح الشكل الصحيح للتصريح عن البلوك لديك بالشكل التالي :
    كود PHP:
    $tpl->newBlock("News"); 
    لاتقم بتمرير اسم صفحة القالب للدالة newBlock فهذا خطأ بل قم بتمرير اسم البلوك الموجود داخل صفحة القالب نفسها كما قمت بتسميته هناك .

    - خطأ جديد في السطر 41 من ملف news.php وهو استدعاء مخرجات القالب قبل اكتمال مخرجات الصفحة .. لاحظ بأنه لازال لديك بعض المخرجات والشروط بعد السطر السابق التي لن يطبق عليها القالب لأنك قمت باستدعائه قبلها .. ولو تأنيت في قراءة المثال المشروح فوق لوجدت بأننا لانستدعي القالب إلا في الأخير .. بعد شروطنا وحلقاتنا ...الخ



    بقية الشباب ... يتبع بعد الصلاة





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

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


    PHP-Master02 : وإياك يا أمير .
    جريح : نورت الموضوع .. وقد قرأت عن قالب الأخ عبدالله عيد ولكني لم أجربه لأنني كنت أستخدم Pattemplate في تلك الفترة ولكني تنازلت عنه أيضا بعد أن وجدت TemplatePower فهو صغير الحجم بالنسبة للأول الذي كان مليئا بالوظائف التي لا استفيد منها .. أنا أريد في القالب وظائف معينة واستفيد منها فعليا في برنامجي

    Tambi : أنا طلقت برامج المنتديات بالثلاث من بعد إغلاق موقعي قبل كم سنة
    ولكني سمعت أيضا بأن هذا النظام هو نفسه المستخدم في برنامج البطاقات الشهير Vcards





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

  10. #10
    عضو نشيط
    تاريخ التسجيل
    Sep 2003
    المشاركات
    61


    فاهمه عليك اخوي
    الله يجزاك خير

    اكتشفت خطأ

    كود PHP:
    $tpl->newBlock("News.html"); 
    وحليته من البارح


    والان بعد ردك جعلت الاستدعاء اخر شي بالملف قبل امر جلب الفوتر ولكن بدون فائده
    المشكله في امر الاستعلام هذا :

    كود PHP:
    $QueryNews mysql_query("SELECT * FROM News WHERE (Newsid = '$Newsid') AND (Catid = '$Catid') "); 
    بهذه الطريقه لا يترجم المتغيرات في القالب

    ولكن اذا حذفت منه شرط اي دي الخبر بهذا الشكل :

    كود PHP:
    $QueryNews mysql_query("SELECT * FROM News WHERE (Catid = '$Catid') "); 
    يتم عرض القالب ويترجم المتغيرات بشكل سليم ولكن للاسف يعرض جميييييييع الاخبار
    وانا ابيه يعرض خبر واحد فقط لان الهدف من الاستعلام هو عرض تفاصيل الخبر في صفحه مستقله عن فهرس الاخبار

    ياليت اخوي تعدل الملف اللى بالمرفق الاول وترفقه هنا والله يجزاك الجنه :shy:





    __________________
    إستخدم ملفك الخاص لكتابة توقيعك

  11. #11
    عضو نشيط
    تاريخ التسجيل
    Mar 2005
    المشاركات
    141


    مشاء الله تبارك الله
    يعطيك العافيه
    والله يجلعه في ميزان حسناتك ياغالي .





    __________________
    www.swishe.com

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


    DesignerK ياليت إرسال الملفات مع جداول القاعدة .. اختصارا للوقت

    عزيزي سويشي شرفني مرورك وجزاك الله خيرا





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

  13. #13
    عضو سوبر نشيط
    تاريخ التسجيل
    Jun 2004
    المشاركات
    678


    //أولا تعمل انكلود لملف الكائن الخاص بالنظام في صفحتك
    include_once( "./class.TemplatePower.inc.php" );


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

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





    __________________
    سبحان الله وبحمده ..... سبحان الله العظيم

    اول موقع متخصص في جمع البرامج المعربة
    الريان نت للبرامج المعربة
    www.ar1ar.com

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


    أبو مشاري الدرس مستقل ولايرتبط بدرس آخر

    أقصد من هذه الخطوة طبعا بعد وجود ملفات نظام القوالب لديك وتنزيلها من موقعها الأصلي
    http://templatepower.codocad.com/download.php

    ثم تعمل للملف انكلود في صفحتك فقط





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

  15. #15
    عضو نشيط
    تاريخ التسجيل
    Dec 2004
    المشاركات
    290


    رووووح ياشيخ جعلها في ميزان حسناااتك ...
    يالله يارب وفقه
    واشرح له صدره
    ويسر له أمره

    ---
    بصراااحه نظام قالب مهووووب صاحي .. << صار يحب انظمة القوالب ..
    بلى eval بلى قراشيع

    بس نبي نتعلم الإفال بعدين مهوب الحين لمن نفهم شوي زياده بالبرمجه ..

    على فكره ..
    اخوي سيرفر ..
    انا ابي اطبق هالطريقه على المثال الثاني اللي انت طرحته .. ولكن بدل الأخبار .. ابي اقسام ..

    على نفس الطريقه اللي بالرابط هذا ..
    http://www.phpfaq.php-ar.com/index.p...9dafdad72ddda4

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

    ياليت تفلقنا بمثال قريب يستخدم النهج
    << متعوب عليها النهج

    يارب تجعل كل عمل له بميزان حسناته جبااااال










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

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

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