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

الموضوع: نظام القوالب Smarty معا من البداية و حتى الإحتراف

  1. #1
    ينتظر رسالة التوكيد
    تاريخ التسجيل
    Feb 2008
    المشاركات
    9

    نظام القوالب Smarty معا من البداية و حتى الإحتراف



    بسم الله الرحمن الرحيم و الصلاة والسلام على اشرف المرسلين سيدنا محمد و على آهله و أصحابه اجمعين و على من إتبعه ليوم الدين

    كل عام و انتم بخير و تقبل الله منا ومنكم الصيام

    إخوتي اخواتي اليوم إن شاء الله نبدأ دروس تعليم نظام القوالب Smarty و الذي يعتبر اقوى نظام قوالب حاليا بدون منازع

    عندي طلب واحد فقط من الإخوة إن المشاركات تكون منظمة ومحصورة في دروس + أسئلة

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

    http://www.smarty.net/do_download.ph...rty-2.6.20.zip

    بعد التحميل يجب ان انوه إنه في ال Smarty يوجد مجلدين مهمين جدا

    1- مجلد التكوين و عادتا مايسمى بال template_c و في هذا المجلد يقوم smarty بإنشاء صفحات php بالأكواد الناتجة عن دمج المعلومة مع القالب
    2- مجلد القوالب و عادتا مايسمى بال templates و في هذا المجلد تكون ملفات القوالب

    ملاحظة: كلا من المجلدات المذكورة في الأعلى يحتاج إلى تصريح 777

    الحين و بعد فك ضغط الملف المضغوط و الذي تم تحميله من الرابط اعلاه ستجد المجلد libs قم بنسخه إلى المجلد الخاص بالعمل و غير إسمه إلى smarty

    الحين ماذا نحتاج أيضا اول شيئ راح نسوي ملف بإسم smarty.php و نضع فيه الكود التالي

    كود PHP:
    $fixpath dirname(__FILE__); //لإستخراج رابط المجلد الحالي

    define ("SMARTY_DIR""smarty/"); // تحديد مجلد الذي يوجد فيه ملفات smarty

    require_once (SMARTY_DIR."Smarty.class.php"); // إدراج كلاس smarty

    $smarty = new Smarty//بدأ إستخدام الكلاس

    $smarty->compile_dir "$fixpath//template_c"// رابط مجلد التكوين
    $smarty->template_dir "$fixpath/templates"// رابط مجلد القوالب 
    الدرس التطبيقي الأول
    نبدأ اليوم بعمل اول درس تطبيقي مع سمارتي و راح يكون شيئ بسيط ولاكنه اساسي في نفس الوقت

    اول شيئ نقوم بإنشاء مجلد ال template_c و مجلد templates
    فيصبح لدينا في مجلد العمل الرئيسي 3 مجلدات وهي smarty و الذين كان يسمى libs و مجلد templates و مجلد template_c

    ولاننسى بالذكر ان لدينا ملف smarty.php و الذي يقوم بعمل الإتصال بين برنامجنا و نظام القوالب

    الآن سنقوم بعمل صفحة تتكون من هيدر وفوتر و محتوى بسيط

    اولا ندخل على مجلد templates ونقوم بإنشاء ملف header.tpl و footer.tpl و main.tpl

    كود الهيدر يوضع في ملف header.tpl
    كود HTML:
    <table cellpadding="0" cellspacing="0" style="font-family:Tahoma;font-size:10pt;width: 100%; height: 50px;background:#DADADA">
    	<tr>
    		<td style="height: 50px" align="center">
    		<span style="font-size:25pt;color:#CC3300">سهم</span>
    		<span style="font-size:25pt;color:#333333">نت</span><br/>
    		<b>الشركة الجزائرية للبرمجيات و خدمات الإنترنت</b>
    		 </td>
    	</tr>
    </table>
    كود الفوتر يوضع في ملف footer.tpl
    كود HTML:
    <table cellpadding="0" cellspacing="0" style="font-family:Tahoma;font-size:10pt;width: 100%; height: 20px;background:#DADADA">
    	<tr>
    		<td style="height: 20px" align="center">
    		<b>الحقوق محفوظة لكل مسلم</b>
    		 </td>
    	</tr>
    </table>
    كود المحتوى والذي يوضع في ملف main.tpl
    كود HTML:
    <html dir="rtl">
    
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1256" />
    <meta http-equiv="Content-Language" content="ar-dz" />
    <title>سهم نت الشركة الجزائرية للبرمجيات</title>
    </head>
    
    <body style="margin: 0">
    
    {$header}
    
    {$content}
    
    {$footer}
    
    </body>
    
    </html>
    شرح ملف ال main.tpl
    الكل ملاحظ اننا وضعنا المتغيرات التاليه في صفحة ال main
    1- {$header}
    2- {$content}
    3- {$footer}
    وده معناه ان كل متغير من هذه المتغيرات سيتم تعويضه بشي وهذا الشيئ ممكن يكون كود HTML او كلمة او رقم او حتى فراغ(لاشيئ)

    طيب الحين قوالبنا جاهزة نروح للبرمجة

    نقوم بإنشاء صفحة بإسم index.php في مجلد العمل الرئيسي و نضع بيها الكود التالي
    كود PHP:
    require_once("smarty.php");

    /*<< إستخراج محتوى الهيدر و الفوتر >>*/

    $header=$smarty->fetch('header.tpl');
    $footer=$smarty->fetch('footer.tpl');

    /*<< ربط المتغيرات بقيمها >>*/

    $smarty->assign('content','شرح نظام قوالب سمارتي من البداية و حتى  الإحتراف');
    $smarty->assign('header',$header);
    $smarty->assign('footer',$footer);

    /*<< عرض الصفحة >>*/
    $smarty->display('main.tpl'); 
    من الكود السابق يتبين لنا ان في سمارتي يوجد دوال اساسية و هي
    fetch وتستخدم لإستخراج محتوى قالب آخر غير قالب الصفحة في حالتنا كان القوالب هي header.tpl و footer.tpl
    assign لربط المتغير الذي في القالب بقيمته التي في البرنامج او السكربت
    display تقوم بعمل تكوين و دمج كل المتغيرات بقيمهم و عرض الصفحة بمعنى ان لها تعتبر نفس دالة fetch و لاكنها تعود ب print بعكس fetch التي تعود بقيمة المتغير اي انها تنتهي ب return

    تم إرفاق التطبيق الأول بالموضوع يمكنكم تحميله و مقارنة النتائج





    الملفات المرفقة الملفات المرفقة
    التعديل الأخير تم بواسطة سهم ويب ; 18-09-2008 الساعة 07:27 PM


  2. #2
    عضو نشيط
    تاريخ التسجيل
    Apr 2008
    المشاركات
    82


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






  3. #3


    اشكرك اخي الفاضل على ما تقدم والله يجزاك خير

    ما اود السؤال عنه هو بعض التفصيل عن آلية عمل نظام القوالب smarty ?





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

  4. #4
    عضو فعال
    تاريخ التسجيل
    Jul 2008
    المشاركات
    1,109


    ولله شكرا ليك اخي الكريم sahmnet.net وجزا الله خيرااااااااااااااااااااااااااا





    __________________
    ســـــــبحان الله وبـــــــــحمده *سبـــــــــــحان الله العظيم
    لطلب البرمجة فقط
    helal-egypt@hotmail.com

  5. #5


    كنت أظنه في البداية مجرد نظام قوالب يمكن إدخال دوال شرطية وتكرارية فيه
    ولكنه أكبر من ذلك بكثير جدااااااا

    لك جزيل الشكر
    سجلني متابع للدورة





    __________________
    السيف أصدق أنباء من الكتب

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


    معاكم ان شاء الله

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

    و شكرا علي الدرس

    و ياريت تكثر من الروابط و كلمات البحث للحث علي التوسع لمن اراد بارشادك له ..
    keywords, resources






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


    ما هو سمارتي؟

    يعتبر سمارتي بمثابة أحد محركات القوالب template engine المخصصة للغة php .
    وبشكل أكثر تحديداً, فهو يوفر لنا وسيلة سهلة وبسيطة لعزل منطق التطبيق application logic والمحتوى عن العرض presentation . وتعتبر هذه الطريقة بمثابة الطريقة المثلى في الحالات التي يكون فيها مبرمج التطبيق ومصمم القوالب شخصان منفصلان.






  8. #8
    عضو فعال جدا
    تاريخ التسجيل
    Mar 2008
    المشاركات
    2,485


    تسلم ومحتاج للدوره هذه وسجلني معك.. لي عوده






  9. #9
    عضو نشيط جدا
    تاريخ التسجيل
    Aug 2007
    المشاركات
    597

  10. #10
    ينتظر رسالة التوكيد
    تاريخ التسجيل
    Feb 2008
    المشاركات
    9


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






  11. #11
    عضو فعال
    تاريخ التسجيل
    Jul 2008
    المشاركات
    1,109


    شكرااااااااا اخي الكريم sahmnet.net علي الدرس اخي الكريم انا جيت اجرب ان ادخل ملف smarty.php
    الي مجلد واستدعية منة بس ما يشتغالش لكن لما اخرجة برة يشتغال لية
    مثال المجلد includes
    ودة طريقة استدعائة includes/smarty.php
    مشغال ولكن لما يبقي
    smarty.php
    يشتغل
    ارجوك قولية لية





    __________________
    ســـــــبحان الله وبـــــــــحمده *سبـــــــــــحان الله العظيم
    لطلب البرمجة فقط
    helal-egypt@hotmail.com

  12. #12
    ينتظر رسالة التوكيد
    تاريخ التسجيل
    Feb 2008
    المشاركات
    9


    هلا يالغلا طبييعي إنه مايشتغل لأن مثل ماسبق و ذكرنا انه يوجد links في الملف ويجب تعديلها في حالتك يصبح كود الملف كالتالي
    كود PHP:
    $fixpath dirname(__FILE__); 
    define ("SMARTY_DIR""../smarty/"); // أضفنا //.. للرابط
    require_once (SMARTY_DIR."Smarty.class.php"); 
    $smarty = new Smarty
    $smarty->compile_dir "$fixpath/../template_c"// أضفنا //.. للرابط
    $smarty->template_dir "$fixpath/../templates";// أضفنا //.. للرابط 







  13. #13
    عضو فعال
    تاريخ التسجيل
    Jul 2008
    المشاركات
    1,109


    هلا يالغلا طبييعي إنه مايشتغل لأن مثل ماسبق و ذكرنا انه يوجد links في الملف ويجب تعديلها في حالتك يصبح كود الملف كالتالي
    كود PHP:
    $fixpath dirname(__FILE__); 
    define ("SMARTY_DIR""../smarty/"); // أضفنا //.. للرابط
    require_once (SMARTY_DIR."Smarty.class.php"); 
    $smarty = new Smarty
    $smarty->compile_dir "$fixpath/../template_c"// أضفنا //.. للرابط
    $smarty->template_dir "$fixpath/../templates";// أضفنا //.. للرابط 
    اخي الكريم طيب ماهو الفارق بينهما
    كود PHP:
    "../smarty/"); // أضفنا //.. للرابط 
    "$fixpath/../template_c
    $ = "
    $fixpath/../templates






    __________________
    ســـــــبحان الله وبـــــــــحمده *سبـــــــــــحان الله العظيم
    لطلب البرمجة فقط
    helal-egypt@hotmail.com

  14. #14
    عضو فعال
    تاريخ التسجيل
    Jul 2008
    المشاركات
    1,109

    Exclamation



    اخي الكريم sahmnet.net انت رحت فين





    __________________
    ســـــــبحان الله وبـــــــــحمده *سبـــــــــــحان الله العظيم
    لطلب البرمجة فقط
    helal-egypt@hotmail.com





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

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

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