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"> </h3>
<h3 align="center"> </h3>
<h3 align="center">
لا اله الا الله محمد رسول الله </h3>
<h3 align="center">
الدرس مقدم من الاستضافة الجزائرية للمواقع</h3>
<h3 align="center">
www.alg4h.com </h3>
<h3 align="center"> </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
في اطار دورتي الخاصة بتعلم 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"> </h3>
<h3 align="center"> </h3>
<h3 align="center">
لا اله الا الله محمد رسول الله </h3>
<h3 align="center">
الدرس مقدم من الاستضافة الجزائرية للمواقع</h3>
<h3 align="center">
www.alg4h.com </h3>
<h3 align="center"> </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