Warning: Function get_magic_quotes_gpc() is deprecated in /home/forumbs/public_html/includes/class_core.php on line 1960

Warning: Methods with the same name as their class will not be constructors in a future version of PHP; vB_XML_Parser has a deprecated constructor in ..../includes/class_xml.php on line 52

Warning: Methods with the same name as their class will not be constructors in a future version of PHP; vB_XML_Builder has a deprecated constructor in ..../includes/class_xml.php on line 689
شرح نظام قوالب Smarty للمبتدئين التكرار في Smarty [الأرشيف] - منتديات بانى ستار

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

مشاهدة النسخة كاملة : شرح نظام قوالب Smarty للمبتدئين التكرار في Smarty



walid_8281500
03-23-2009, 08:17 PM
:: السلام عليكم ورحمة الله وبركاته ::


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



لقد تعلمنا في الدروس السابقة اساسيات Smarty والمتغيرات في Smarty

والآن ان شاء الله راح نتعلم التكرار باستخدام الدالة foreach في Smarty

طبعا دالة foreach موجودة في PHP وهي حلقة تكرار الكود وتختلف كتابتها في Smarty


مثال :

عند استخدام دالة foreach للتكرار في الـ PHP :



foreach( $variable as $variable){

here the code......


}



عند استخدام دالة foreach للتكرار في Smarty :



{foreach from=$variable item=$variable}

here the code.......

{/foreach}



::: متطلبات الدرس :::

قراءة الدروس :

{الدرس الأول}~~ شرح نظام قوالب Smarty للمبتدئين ~~[الأساسيات] (http://www.traidnt.net/vb/showthread.php?t=994286)
{درس الثاني}~~ شرح نظام قوالب Smarty للمبتدئين ~~ [المتغيرات في Smarty] (http://www.traidnt.net/vb/showthread.php?t=996162)




الآن لنبدأ في درس التكرار باستخدام foreach

بسم الله



لنفترض انك تريد وضع اسماء من اصدقائك في صفحة انترنت في كل مرة تعرفت على صديق
والى الآن لديك 3 اصدقاء فقط ماذا تفعل ؟؟!! لنرى سوياُ


اضف هذا الكود في الفرونت بيج :



<html dir="rtl">

<head>
<meta http-equiv="Content-Type" content="****/html; charset=windows-1256">
<meta http-equiv="Content-Language" content="ar-sa">
<title>شرح التكرار في سمارتي</title>
</head>

<body>
<ul>
<li>Ahmad</li>
<li>Salem</li>
<li>Mohammad</li>
</ul>
</body>

</html>



http://www.pxll.com/usersupload/mobher/smarty_lesson_3-foreach_loop/1.jpg

واضغط على (معاينة) في الفرونت بيج سترى هذه النتيجة :


http://www.pxll.com/usersupload/mobher/smarty_lesson_3-foreach_loop/2.jpg



الآن عرض 3 من اسماء اصدقائك ولكن كانت بطريقة HTML
لنجعلها على طريقة سمارتية ويتكرر عرض الاسم في كل مرة تضيف اسم جديد



اولاً : نبرمج ملف PHP
ثانياً : نبرمج ملف القالب HTML





1 - نبدأ في برمجة ملف PHP



انشئ مجلد اسمه loop في السيرفر المحلي ثم ضع مجلد libs الذي ياتي مع Smarty ثم انشئ مجلدين فرعيين templates و compile

الآن انشئ ملف اسمه foreach.php وضع هذا الكود :



<?php
include("libs/Smarty.class.php");

$smarty = new Smarty;

$list = array("Ahmad","Salem","Mohammad");

$smarty->assign('array',$list);
$smarty->display("for.htm");




?>



http://www.pxll.com/usersupload/mobher/smarty_lesson_3-foreach_loop/3.jpg


احفظه في المجلد الرئيسي loop



راح أشرح الكود :




include("libs/Smarty.class.php");


استدعينا ملف Smarty.class.php وهو ملف لانشاء Smarty في برمجياتك




$smarty = new Smarty;


انشأنا كائن Smarty باستخدام امر new وطبعا Smarty مبرمج بالكائنات ويجب انشاء الكائن اولا ثم البدء بالبرمجة





$list = array("Ahmad","Salem","Mohammad");


ثم اضفنا متغير اسمه list وقيمته عبارة عن مصفوفة تاخذ اسماء اصدقائنا وهم أحمد , سالم و محمد
ونريد ان نعرض اسمائهم في صفحة الانترنت





$smarty->assign('array',$list);


الآن اضفنا امر assign وذكرناه في الدرس الثاني وهو تعبئة المتغير
سنعبئ المتغير array بالقيم التي موجودة في متغير list وهم أحمد , سالم و محمد
لا باس ان لم تفهم عمل الكود الآن ولكن في النهاية ستفهم



$smarty->display("for.htm");


اضفنا امر display وذكرناه في الدرس الاول وهو عرض ملف التصميم
نحن الى الآن لم ننشئ ملف التصميم لذا لا تقلق





2 - برمجة ملف التصميم HTML


افتح الفرونت بيج ثم اضف هذا


<html dir="rtl">

<head>
<meta http-equiv="Content-Type" content="****/html; charset=windows-1256">
<meta http-equiv="Content-Language" content="ar-sa">
<title>شرح التكرار في سمارتي</title>
</head>

<body>
<ul>
{foreach from=$array item=name}
<li>{$name}</li>
{/foreach}
</ul>
</body>

</html>


http://www.pxll.com/usersupload/mobher/smarty_lesson_3-foreach_loop/4.jpg



احفظه باسم for.htm في مجلد templates



شرح الكود


{foreach from=$array item=name}


foreach :: اضفنا دالة foreach

from=$array :: اي خذ القيم من المتغير $array وتذكروا انه عبئنا هذا المتغير بأسماء اصدقائنا من قبل فهو الآن ليس فارغاُ

item=name :: اي بعد اخذ القيم ضعها في هذا المتغير وهو name





<li>{$name}</li>


اعرض القيم في هذا المكان بين وسوم <li> وهي وسوم HTML تعداد نقطي



{/foreach}


ثم اغلقنا دالة foreach بعلامة /




هل الآن فهمت عمل هذا الكود الذي ذكرناه من قبل ؟؟؟ :



$smarty->assign('array',$list);


الآن استعرض ملف foreach.php في المتصفح سترى النتيجة :


http://www.pxll.com/usersupload/mobher/smarty_lesson_3-foreach_loop/5.jpg



مبرووووك لقد تعلمت التكرار في Smarty


الآن لنفترض انك تعرفت على صديقين آخرين ناصر و حمد اذاً لنضيفهم في قائمة الاصدقاء

افتح ملف foreach.php واضف الأصدقاء الجدد :



$list = array("Ahmad","Salem","Mohammad","Naser","Hamad");




http://www.pxll.com/usersupload/mobher/smarty_lesson_3-foreach_loop/6.jpg