المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : الدرس 1 لتعلم السمارتي ّّتعريف السمارتي ـ تركيب سمارتي ،مثال تطبيقي



walid_8281500
03-23-2009, 06:14 AM
السلام عليكم ورحمة الله

في اطار دورتي الخاصة بتعلم php ارتايت لنفسي اني ادرس نظام قوالب
اخترت نظام smarty لماذا سنرى ذالك لاحقا
لتعميم الفائده ساقوم باذن الله بترجمة ما اقرا واقتبس لكم من هنا وهناك لتعم الفائده فقط

بسم الله نبدأ الدرس الاول


تعريف نظام القوالب smarty

سمارتي هو نظام قوالب مخصص للـ PHP يسهل الفصل بين الاكواد البرمجية والتصميم

بغرض تسهيل العمل بين المبرمج والمصمم فلكل منهما دوره وعمله الخاص

ناخذ مثالا بسيطا لنفهم الفكرة اوضح http://traidnt.net/vb/images/smilies/cupidarrow.gif

نفترض ان لديك صفحة ويب اخبارية تتضمن عنوان الخبر مقدمة عن الخبر ومحتوى

الخبر كل هذه عناصر يقوم المبرمج بانشائها بغية ايصال الخبر

بطريقة يفهمها الجميعة وبشكل واظح , بالطريقة الكلاسيكية المبرمج يضع اكواد

التصميم والبرمجة مدموجة مع بعضها صحيح (لي يقول غلط http://traidnt.net/vb/images/smilies/crazy.gif ) // لاحظ معي ان التصميم متعلق بكود البرمجة //

طيب نفرض فيوم ما المبرمج اراد تغيير محتوى لمحة عن الخبر فماذا سيحدث

سيكون المصمم مجبرا على اعاده تصميمه لان الكود البرمجي تغير http://traidnt.net/vb/images/smilies/tears.gif

نفس الشسء للمبرمج فاذا اراد المصمم تغيير اي شيء لاب من تغيير الكود البرمجي http://traidnt.net/vb/images/smilies/tears.gif

هنا نلاحظ ان عمل المبرمج والمصمم متعلقان ببعضهما البعض والمفروض ان ينفصلا انفصالا تاما

لذالك فنظام القوالب سمارتي يسمح لك بفصل الكود البرمجي عن التصميم (اكواد html ....)


<--- لا يزال لدي غموض كبير اشك في كلامك ---> لاحظ الاستايلات في منتديات الفي بي لو ان الكود البرمجي متعلق بالتصميم ما شاهدنا هذا الكم الهائل من الاستايلات صح http://traidnt.net/vb/images/smilies/bleh.gif

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

سنرى ذالك لاحقا فالامثلة

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

تغيير التصميم في حال تغير الكود او العكس


ان شاء الله نفهم فالامثلة القادمة <<<<<<< ادور واذا لقيت وفهمتها ان شاء الله ما ابخل http://traidnt.net/vb/images/smilies/blushing.gif



ثانيا تنصيب ادوات السمارتي

متطلبات التشغيل


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

ما شاء الله السيرفرات الان كلها تتوفر على الاصدار الخامس

اول شيء نحمل اخر نسخة من النظام من هنا


Smarty-2.6.19 (http://www.smarty.net/do_download.php?download_file=Smarty-2.6.19.zip)

تلاقون ملفات كثيرة ما علينا

يهمنا مجلد libs

طيب نحط مجلد libs في مسار السكربت

نعمل مجلدين واحد باسم template وهو لي نحط فيه ملفات التصميم

والاخر باسم compile ملاحظة يجب اعطاء مجلد compile تصاريح الكتابة 777

طيب الحين راح نعمل ملف الكونفيق للسمارتي


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




الكود الاول للي يشتغلون على موقع
ننشئ ملف باسم setup.smarty.php ونضع بداخله الكود التالي



<?php

$fixpath = dirname(__FILE__);
define ("SMARTY_DIR","/home/user/public_html/اسم السكربت/libs/");
require_once (SMARTY_DIR."Smarty.class.php");
$smarty = new abdellah ;
$abdellah ->compile_dir= "$fixpath/compile/";
$abdellah ->template_dir= "$fixpath/template/";

?>

نشرح قليلا

فالاول اخذنا بالدالة ديرنايم مكان السكربت وحطيناه في متغير
بعدها حطينا مكان المكتبة libs
غير user الى اسم مستخدم الاف تي بي لموقعك
غير غير اسم السكربت الى اسم السكربت حقك /المهم ان يكون مسار السكربت صحيح
قمنا بتعريف كائن جديد ان صح التعبير من الكلاس سمارتي
لاظافة لمسة خاصة بنا على السكربت انا سميته abdellah فيك تسميه ما تحب المهم بعد السطر



$Smarty = new abdellah ;


راح نستعمل دائما $abdellah .
لاحظ ان S في كلمة Smarty بحرف كبير مهم اخواني
ثم حطينا مكان ملف التمبليت والكومبايل
لا تنسو تعطو مجلد كومبايل تصريح 777


الكود الثاني الاول للي يشتغلون على سيرفر محلي
ننشئ ملف باسم setup.smarty.php ونضع بداخله الكود التالي



<?php

$fixpath = dirname(__FILE__);
define ("SMARTY_DIR","E:\AppServ\www\اسم السكربت\libs\");
require_once (SMARTY_DIR."Smarty.class.php");
$Smarty = new abdellah ;
$abdellah ->compile_dir= "$fixpath/compile/";
$abdellah ->template_dir= "$fixpath/template/";

?>

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


العملية الاولى كملناها نحفظ العمل في ملف

افرح يا اخي ما راح نرجع للملف هذا نهائي يعني نادي عليه فقط http://traidnt.net/vb/images/smilies/bigsmile.gif

نكمل مثال تطبيقي خفيف

افتح ملف جديد باسم header.html



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<html>
<head>
<meta content="****/html; charset=windows-1256" http-equiv="Content-Type" />
<title>{$title}</title>
</head>
<body>
<h3 align="center">من طلب العلا سهر الليالي ومن سهر الليالي نال المعالي</h3>
</body>
</html>


لاحظ انه فالوسم title حطينا متغير {$title} وهذي هي طريقة طباعة المتغيرات في السمارتي

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

// لا تنزعج سنفصل فالدروس القادمة ان شاء الله فالمتغيرات وطريقة كتباتها وكل شي هذا مثال اولي فقط http://traidnt.net/vb/images/smilies/shiny01.gif //

انشئ ملف اخر باسم footer.html

ضع بداخله الكود التاالي



<html>
<meta content="****/html; charset=windows-1256" http-equiv="Content-Type" />

<body>
<h3 align="center">&nbsp;</h3>
<h3 align="center">&nbsp;</h3>
<h3 align="center">
لا اله الا الله محمد رسول الله </h3>
<h3 align="center">
الدرس مقدم من الاستضافة الجزائرية للمواقع</h3>
<h3 align="center">
www.alg4h.com </h3>
<h3 align="center">&nbsp;</h3>
<h3 align="center">وهكذا ابدأ مسيرتي في تعلم ما اريد
</h3>
</body>
</html>


كود هتمل صافي مافيه ولا تعقيد ما يحتاج لشرح http://traidnt.net/vb/images/smilies/bleh.gif

نجي للاهم ملف index.php

ضع بداخله الكود التاالي



<?
include_once("setup.smarty.php");
$abdellah->assign ("title", "برنامجي الاول مع سمارتي");
$abdellah->display("header.html");
$abdellah->display("footer.html");
?>

الشرح
اولا استدعينا الملف setup.smarty.php اول ملف قمنا بانشائه صحيح
ثاني شيء باستعمال احدى دوال السمارتي قمنا بانشاء متغير اسمه title اعطيناه القيمة برنامجي الاول مع السمارتي ,,, هل اتضحت لديك الفكرة الان من اين ياخذ المتغير $title فالملف header.html قيمته جميل جدا http://traidnt.net/vb/images/smilies/shiny01.gif

السطر الثالث والرابع قمنا باستدعاء القالبين headrt.html و footer.html باستعمال الدالة display

بسيطة الامور صحيح

الان ارفع الملفين headrt.html و footer.html الى مجلد template
ارفع ملف setup.smarty.php الى المجلد الرئيسي للسكربت
ارفع مجلد libs الى المجلد الرئيسي للسكربت
ارفع ملف index.php الى المجلد الرئيسي للسكربت

الان نستدعي ملف الاندكس ونشوف النتيجة
www.domain.com/******_name/index/php (http://www.domain.com/******_name/index/php)

غير domain الى اسم موقعك
غير ****** _name الى اسم السكربت تبعك

تظهر لك النتيجة التالية
لاحظ عنوان الصفحة



للمعاينة الصفحة www.tanasim.com/smarty/lesson1 (http://www.tanasim.com/smarty/lesson1)

سارفق الملفات اذا كانت مشاكل كثيرة في فهم الموضوع مع ان جميع الاكواد مكتوبة http://traidnt.net/vb/images/smilies/bleh.gif

الدرس كبير لاني فصلت في بعض الامور فقط ممع التطبيق سيتسع فهمك للسمارتي

مصادر الدرس موقع سمارتي + kodewalkers.com