استفاده کردن از smarty در PHP بخش دوم

سلام

توی این پس قصد دارم از طریق PHP مقادیر رو به سمت قالب سایت ارسال کنیم که با smarty ساختیم.

اگر پست قبلی رو نخوندید حتما بخونید.

تصور کنید یک متغییر داریم با نام $name توی کد PHP . که حاوی مقداری هست .

$name = 'alex';

حالا میخایم کاری کنیم که این مقدار رو توی html داشته باشیم و ازش استفاده کنیم.
کلاس smarty یک متد داره به نام assign که باید ازش بهره ببریم

$smarty->assign('YourName',$name);

که ۲ تا ورودی از ما گرفته . اولیش اسم این متغییر توی html میشه و دومی مقدارش.
حالا چطوری ازش توی html استفاده کنیم.
فایل main.tpl که قبلا ساختیم رو باز کنید و خط زیر رو داخلش بنویستید

{$YourName}

خوب اگر همه چیز درست باشه باید مقدار alex براتون چاپ بشه ، پس تونستیم یه مقدار رو از PHP به smarty ارسال کنیم.
حالا فرض کنید در PHP یک آرایه داریم . مقدار اون رو چطور داشته باشیم ؟
آرایه زیر رو داریم:

$array = array('majid','peyman','mohammad');

مثله قبل با همون متد assign آرایه رو وصل میکنیم به smarty

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

داخل کد html باید این مقدار رو بگیریم و قصد داریم هر کدوم رو توی یک تگ <li> قرار بدیم


<ul>
{foreach form=$MyArray item=name}
	
<li>{$name}</li>

{/foreach}
</ul>

خوب توی این کد ما از یک حلقه foreach استفاده کردیم . البته smarty حلقه های دیگه هم داره
مقابل from مقدار آرایه ای که از سمت PHP اومده و با نامی که assign شده رو مینویسیم.
و در مقابل item مقداری که قصد داریم توی حلقه ازش استفاده کنیم که من اینجا name در نظر گرفتم
برای نمایشش هم که از {$name} استفاده کردم.

 

اگر یکسری قسمت ها توی قالب سایت در همه صفحات مشابه هست ، مثل منو بار یا فوتر … بهتره کد html این موارد رو جدا کنید و به فایل دیگه ای انتقال بدین

مثلا قسمت منو رو کات کنید و توی فایلی به اسم menu.tpl دخیره کنید. حالا توی کد html صفحه اصلی برید و فایل menu.tpl رو صدا بزنید . دقیقا هموجایی که

منو رو کات کردین

{include file='menu.tpl'}

فایده اینکار چیه ؟
اینجوزی هم کد صفحاتتون خلوت میشه هم اینکه اگر یک تغییر توی منو خواستید بدین یک بار میدین و بقیه
صفحات رو لازم نیست ویرایش کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *