قبل از هر چیز عذرخواهی میکنم حقیقتا اونقدر سرم شلوغ هست که نمیرسم بیام سوالات دوستان رو پاسخ بدم همونطور که میبینید کاملا دست تنها هستم و عملا فقط مکن داریم توی این بخش مدیریت میکنم و بقه مدیران بدلیلی مشغله فراوان وقت سر زدن رو ندارند به همین دلیل یه مقدار بدقولی قابل بخشش باید باشه اینطور نیست ؟!
لطفا دوستانی که توی این بخش پست ارسال کردند پست های خودشون رو DELETE کنند تا آموزش ها بصورت پیوسته باشه
اخیرا یک سیستم مدیریت ثبت لینک نوشتم با قابلیت بسیاغر استثنایی که برای اولین بار در یک پروژه بزرگ تحت وب از تکنولوژی اسمارتی توش بهره بردم انشالله پس از آماده شدن لینکش رو میدم تا بررسی کنید
بریم سر اصل مطلب :
همونطور که میدونید دستورات ُSmarty درون یک جفت {} قرار میگیرد و کلیه ک های خارج از این علامت بعنوان پیام ثابت بکار میرود و غیر قابل تغییر میباشد چنانچه اسمارتی با دستورات مرتبط با تمپلیت برخورد میکند خروجی متانسب با دستورات را برای ما نمایشم میدهد
دقیقا همانند کامنتی که ما در فایل های php استفاده میکنیم امکان توضیح و تفسیر هر کد و مجموعه دستوران مرتبط توسط علایم {* و *} قابل انجام است
مثال :
متغیرها :کد:<body> {* a single line comment*} {* this multiline comment is not sent to browser*} {* include the header file here*} {include file="header.tpl"} {* Dev not:$includeFile is assigned in foo.php script *} <!-- this html comment is send to browser--> {include file=$includeFile} {include file=#includeFile#} {* this <select> block is redundant *} {* <select name="company"> {html_options=$vals selected=$selected_id} </select> *} </body>
متعییرها با علامت $ مشخص میشوند که برای نامیدن آن از اعداد - حروف و علامت خط تیره استفاده میشود
جهت دسترسی به عناصر یک آرایه توابع و ویژگیهای یک شیء میتوان از متغییر ها بهره برد در مورد فایل پیکربندی بدین شکل نمیباشد یعنی در فایل های پیکربندی اسمارتی متغییرها از علامت $ استفاده نمیکنند اما بجای آن از یک جفت ## یا از طریق فراخوانی در $smarty.config قابل دسترسی میباشند
این مبحث رو در ادامه دروس اسمارتی توضیح میدمکد:{$foo} <-- displaying a simple variable (non array/object) {$foo[4]} <--display the5th element of a zero-indexed array {$foo.bar} <-- display the "bar" key value of an array , similar to PHP $foo['bar'] . . .
توابع در اسمارتی :
توابع از طریق پارمترهایی که درون علایم {} قرار گرفته اند مورد بررسی قرار میگیرند
مثالی از فراخوانی یک تابع
دستورات اسمارتی یکی از دو عمل زیر را انجام میدهند . ..کد:{funcname attl1="val" attr2="val"}
الف - چاپ محتویات یک متغییر
ب - فراخوانی یک تابع
مثال :
هم توابع داخلی و هم توابعی که توسط شما ایجاد میشوند دارای ساختار یکساین و شمابهی در تمپلیت ها هستند توابع داخلی همانندکد:{config_load file="colors.conf"} {include file="header.tpl"} {if $highlight_name} Welcome,<font color="{#fontColor#"">{$name}!</font> {else} Welcome,{$name}@ {/if} {include file="footer.tlp"}
غیر قابل تغییر میباشند اما توابعی که بصورت یک Addons یا Plugin به تمپلیت افزوده میشوند قابل تغییر میباشند که مانند :کد:{if} , {section} , {strip}
جزو این گروه میباشند .کد:{html_options} , {popup}
پارامترها :
در اثر توابع از صفات جهت نوع عملکرد آنها استفاده می شود در اسمارتی نیز یک صفت برای تابع عملکردی همانند پارامترها در توابع سایر زبانهای برنامه نویسی دارد هرچند ملزم به قرار دادن مقادیر عددی درون علایم نقل و قول نیستید اما بهتر است از رشته های حروفی درون این علایم قرار گیرند استفاده از متغییرها بعناون صفت یک تابع بدون مانع است و برای استفاده آن نیاز به علامیم نقل و قول نمیباشد
پایان بخش اول . . .کد:{include file='header.tpl'} {include file='header.tpl' attrib_name='attrib value'} {include file=$includeFile} {include file=#includeFile# title='Smarty is cool'} {html_select_date display_dats=yes} {mailto address='Siavashmusic@majidonline.com'} <select name='company_id'> {html_options options=$companies selected=$company_id} </select>
سیاوش عقیلی






پاسخ با نقل قول
Bookmarks