تبليغاتX
طراحی وب سایت
آموزش طراحی وب سایت دینامیک
برای نمایش تاریخ و ساعت روی تمپلیت از این ویرایشگر استفاده میکنیم بصورت و فرمت های گوناگون میتونید ساعت جاری رو در هر قسمت از Template به نمایش در بیارید

date_format


اینModifiers یا ویرایشگر ساعت و تاریخ رو براساس استاندارد ()strftime در php نمایش میده شما میتوند تاریخ رو به هر روشی که دوست دارید (مطابق با MySql ) و توسط فانکشن ()strftime قابل بررسی باشه به Smarty ارسال کنید
حالا براحتی میتونید با استفاده از ویرایشگر date_format بر روی شکل نمایش تاریخ کنترل داشته باشید

به مثال زیر توجه کنید
[php:1:45f7a3a58f]

$smarty->assign('yesterday', strtotime('-1 day'));

[/php:1:45f7a3a58f]

Where template is (uses $smarty.now):

[php:1:45f7a3a58f]
{$smarty.now|date_format}
{$smarty.now|date_format:"%D"}
{$smarty.now|date_format:"%I:%M %p"}
{$yesterday|date_format}
{$yesterday|date_format:"%A, %B %e, %Y"}
{$yesterday|date_format:"%H:%M:%S"}
[/php:1:45f7a3a58f]

حالا اینم خروجی :

[php:1:45f7a3a58f]
Feb 6, 2001
02/06/01
02:33 pm
Feb 5, 2001
Monday, February 5, 2001
14:33:00
[/php:1:45f7a3a58f]

کلیه مبدل های متناظر Modifiers date_format

a% نام اختصاری روزهای هفته توسط این کارکتر فراخوانی می شود
َ A% نام کامل روزهای هفته
b%نام اختصاری ماههای سال
B%نام کامل ماههای سال
c% جهت نمایش تاریخ و ساعت جاری مورد استفاده قرار میگیرد
C% نام قرن
d% شماره روز جاری ماه = عددی بین 00 الی 31
D% معادل پارامترهای %m/%d/%y
e% شماره روز جاری ماه = عددی بین 1 الی 31
g% شماره سال جاری = عددی بین 00 الی 99
G% شماره سال جاری = عددی بین 0000 الی 9999
h% مشابه b% میباشد
H% ساعت جاری = عددی میان 00 الی 23
I% ساعت جاری = عددی بین 01 الی 12
j% شماره روز جاری سال = عددی بین 001 الی 366
K% ساعت جاری = عددی بین 0 تا 23
l% ساعت جاری = عددی بین 1 الی 12
m% شماره ماه جاری سال = عددی بین 01 الی12
M% دقیقه جاری
n% کارکتر جرکت به سطر بعدی
p% نمایش پیشفرض am یا pm با توجه به وقت جاری
r% نمایش زمان با پیشفرش های am , pm
R% نمایش ساعت با نماد 24 ساعته
S% نمایش ثانیه
t% کارکتر tab
T% زمان جاری بصورت %H:%M:%S
u% شماره روز هفته = عددی بین 1 الی 7
U% شماره روز سال جاری
V% شماره هفته از سال جاری براساس استاندارد = بین عدد 01 الی 53
w% شماره روز جاری هفته = عددی بین 0 تا 6
W% شماهر هفته جاری سال
x% نحوه نمایش تاریخ بدون ساعت
X% نمایش ساعت بدون تاریخ
y% نمایش عدد سال جاری = عددی بین 00 الی 99
Y% نمایش عدد سال جاری = 0000 الی 9999
Z% نام نصف النهار زمانی
%% نمایش کارکتر %

تا قبل از Smarty نسخه 2.6.10 String های عددی قابل پردازش توسط ()strtotime بصورت تاریخ پردازش میشدند نه ساعت
همچنین در این نسخه داده های عددی ارسالی به ویرایشگر date_format همواره بعنوان فرمت یونیکس پردازش میشوند

پایان بخش date_format

_________________
گروه نرم افزاری انزل سافت www.AnzalSoft.ir

+ نوشته شده در  شنبه هشتم فروردین 1388ساعت 15:16  توسط حمید رضا حباب | 
همانطور که قبلا اشاره کرده بودیم Cache در اسمارتی نکته بسیار مهمی محسوب شده بگونه ای که پس از یکبار فراخوانی تمپلیت در موارد بعدی نیازی به فراخوانی مجدد و متقابلا خواندن از دتابیس و Feed های مختلف نیست در واقع این عملکرد خارق العاده اسمارتی میباشد که موجب افزایش سرعت آن میشود
بطوریکه میبیندی در بخش خصوصیات بدین صورت ذکر شده It is extremely fast یعنی بشدت سریع که نشان دهنده این امر میباشد

1. شروع Caching در اسمارتی


بطور کلی استفاده از قابلیت Cacheدر اسمارتی باعث ، ایجاد تغیرات در صدا زدن display() وfetch() میشود که این دو تابع بیشتر کاربرد را در اسمارتی دارند که تابع اول برای نمایش فایل تمپلیت و تابع دوم برای خواند دیتابیس مورد استفاده قرار میگیرد.زمانی که خروجی توابع display() یا fetch() کش میشود ، فایل Cache شده در دایرکتوری $cache_dir ایجاد میشود ، این فایل میتواند یک فایل تمپلیت ، Config و ... را در بر بگیرد.


2. تنظیمات Caching

اولین کار فعال کردن قابلیت Caching در اسمارتی است ، اینکار با مقداردهی متغیر $caching انجام میشود.

[php:1:e6ec69b926]
require('Smarty.class.php');
$smarty = new Smarty;

$smarty->caching = true;

$smarty->display('index.tpl');
?>
[/php:1:e6ec69b926]


در حالت معمولی تابع display(‘index.tpl’) هنگام صدا زدن ، فایل تمپلیت را رندر میکند و نتیجه را بصورت خروجی نمایش میدهد ، اما زمانی که شما Caching را فعال میکنید ، این تابع به هنگام رندر کردن فایل تمپیلیت ، یک کپی از انرا بصورت کپی Cache شده ، ذخیره میکند ، زمانی که دوباره تابع display(‘index.tpl’) صدا زده شود ، فایل Cache شده ، بصورت خروجی نمایش داده میشود و نیاز دوباره به رندر فایل تمپلیت نخواهد بود ، و این یعنی افزایش سرعت و کاهش بار بر روی سرور !

نکته : فایل های موجود در دایرکتوری $cache_dir نام های شبیه فایلهای تمپلیت اصلی دارند، اما با این تفاوت که دارای پسوند .php هستند ، اما این فایل های اسکریپتهای قابل اجرا (executable php scripts) نیستند ، دقت کنید که این فایل ها را ویرایش نکنید.

تمام صفحاتی که Cache میشوند ، دارای طول عمر مشخصی خواهند بود ، این زمان توسط متغیر $cache_lifetime مشخص میشوند ، مقدار پیشفرض این تابع ، 3600 ثانیه ، برابر 1 ساعت ، هست ، و پس از گذشت این زمان ، فایل های Cache غیر قابل استفاده میشوند و دراولین بار صدا زدن تابع display() با فایل های جدید رندر شده جایگزین میشوند.

امکان این که شما به هر صفحه طول عمر مشخصی بدهید نیز وجود دارد ، اینکار با با نسبت دادن مقدار 2 به متغیر $caching انجام میشود

[php:1:e6ec69b926]

require('Smarty.class.php');
$smarty = new Smarty;

$smarty->caching = 2; // lifetime is per cache

// set the cache_lifetime for index.tpl to 5 minutes
$smarty->cache_lifetime = 300;
$smarty->display('index.tpl');

// set the cache_lifetime for home.tpl to 1 hour
$smarty->cache_lifetime = 3600;
$smarty->display('home.tpl');

// NOTE: the following $cache_lifetime setting will not work when $caching = 2.
// The cache lifetime for home.tpl has already been set
// to 1 hour, and will no longer respect the value of $cache_lifetime.
// The home.tpl cache will still expire after 1 hour.
$smarty->cache_lifetime = 30; // 30 seconds
$smarty->display('home.tpl');
?>
[/php:1:e6ec69b926]


اگر $compile_chek فعال باشد ، در هر بار اجرا شدن صفحات ، ابتدا اخرین زمان ایجاد Cache File چک شده و اگر از آن زمان به بعد تغییر دیگری در فایل تمپیلیت بوجود امده باشد ، فایل های Cache شده ی قبلی با فایل های جدید جایگزین میشود ، اینکار overhead کمی را ایجاد میکند که این مقدار ، بسیار ناچیز است و مشکلی ایجاد نمیکنید اما گر نیاز به بالاترین performance دارید باید ، برای دستیابی به بهترین performance مقدار $compile_chek را بصورت false تنظیم کنید.

متغیر $force_complie زمانی تنظیم میگردد که شما در حال ، تست و رفع خطا ( debugging ) باشید ، در این صورت ، در هر بار اجرا شدن صفحات ، فایل Cache جدید ایجاد میشود ، زیرا دراین زمان شما در پی رفع اشکلات و خطا هستید و با تغیر سورس برنامه ، تغیرات را نمیتوانید مشاهده کنید زیرا ، فایل های Cache شده ی قبلی نمایش داده میشوند ، راه دیگر این است که متغیر $caching را با مقدار false تنظیم کنید.

از تابع is_cheked() میتوانید برای فهمیدن اینکه ، تمپلیت مورد نظر در حال حاضر دارای فایل Cache معتبر هست یا خیر استفاده کنید ، و در صورتی که فایل Cache مورد نیاز موجود بود ، از ادامه عملیات رندر تمپیلیت و به دنبال دریافت اطلاعات و پردازش آنها ، جلوگیری کنید.

[php:1:e6ec69b926]
require('Smarty.class.php');
$smarty = new Smarty;

$smarty->caching = true;

if(!$smarty->is_cached('index.tpl')) {
// No cache available, do variable assignments here.
$contents = get_database_contents();
$smarty->assign($contents);
}

$smarty->display('index.tpl');
?>
[/php:1:e6ec69b926]

شما میتوانید قسمت هایی از صفحه خود را ، بصورت کاملا Daynamic نگه داشته و بقیه قسمت هارا Cache کنید ، اینکار با استفاده از تابع insert در Smarty Engine قابل انجام است ، برای مثال ، فرض کنید که در سمت راست صفحه خود یک بنر دارید که در هر بار اجرا شدن صفحه ، بنر متفاوتی را نمایش میدهد ( مثل همین بنر بالای همین صفحه مجید آنلاین ) ،در صورتی که تمام قسمتهای این صفحه Cache شود ، در هر بار اجرا شدن صفحه تنها همان بنری که در زمان Cache شدن موجود بوده ، نمایش داده میشود ، و نتایج متفاوت ظاهر نخواهد شد ، با استفاده از تابع insert شما میتوانید قسمتهای متخلفی از صفحه را از Cache شدن ، محفوظ نگه دارید و آنها را بصورت کاملا Daynamic نمایش دهید.

در صورتی که $compile_chek بصورت False تنظیم شده باشد ، پس چگونه میتوان ، در زمان تغیرات در فایل ها ، Cache جدید را جایگزین Cache های قبلی کرد ؟

فرض کنید که صفحه اصلی وبلاگ خود را Cache کردید ( یا بصورت Full Cache ، یا بصورت چند قسمتی . . . ) ، حال زمانی که شما یک مطلب جدید را وارد بانک اطلاعاتی میکنید ، با استفاده از توابع clear_all_cache() تمام فایل های Cache موجود را پاک کرده و یا با تابع clear_cache() تنها فایل های Cache قبلی را پاک کرده و تغیرات را جایگزین کند .

[php:1:e6ec69b926]
require('Smarty.class.php');
$smarty = new Smarty;

$smarty->caching = true;

// clear out all cache files
$smarty->clear_all_cache();

// clear only cache for index.tpl
$smarty->clear_cache('index.tpl');

$smarty->display('index.tpl');
?>
[/php:1:e6ec69b926]

پایان مبحث دوم

+ نوشته شده در  شنبه هشتم فروردین 1388ساعت 15:14  توسط حمید رضا حباب | 
* این آموزش ها منبع اصلیشون از راهنمای Smarty هست البته من برداشت خودم رو نسب به این راهنما بیان میکنم به همراه مواردی که توی نت و کتب مختلف برای یادگیری این Template Engine جستجو کردم و از طرفی برخی از آموزش ها برداشتی آزاد نسبت به مقالات www.tutorials.ir هست پس در صورتی که منبع خاصی باشی حتما اشاره میکنم

مبحث اول :

مقدمه :


تقریبا 2 سال پیش برای انجام یه پروژه قالبمند مجبور شدم دنبال یه موتور تمپلیت بگردم که با اسمارتی آشنا شدم میشه گفت با شناختن اسمارتی و بطور کلی Template Engine یه تحویل بزرگی توی طراحی - برنامه نویسی من پیش اومد (حالا چرا ؟! زیاد مهم نیست چون اینجا جاش نیست . . .) وقتی فهمیدم که اسمارتی یه کلاس Php هست که برای مدیریت کدهای استفاده شده در وب سایت بکار میره و موجب میشه که براحتی اجزاء سایت رو ویرایش کنیم برام خیلی مهم و جذاب بود بطور مثال شما درنظر بگیرید یه مطلبی که بصورت خبر در یک سایت منتظر شده چطور میتواند تیتر خبر / تاریخ انتشار خبر / نویسنده خبر / متن خبر را بصورت قالبمند نمایش دهد !؟ برای تحقق به این آرمان اسمارتی این امکان را میدهد که تمپلیتی قابل ویرایش و قابل استفاده در تگ های HTML طراحی کنیم ! با این اوصاف دیگه هم Programer و هم Designer در صورت نیاز چنانچه تمایل به دست بردن در ظاهر و یا کدهای سیستم داشته باشند بدون دخالت در حیطه کاری هم میتونند کار خودشون رو بدون هیچ مشکلی انجام دهند

خوب این یک مقدمه بود که فکر میکنم بصورت ساده و سلیس توضیح دادم بهتره حالا بریم سر اصل مطلب و برای بیان اون بهتره یه مقدار کتابی تر و رسمی تر صحبت کنیم

------------------------------
برای شروع اسمارتی بهتر است با سایت این موتور تمپلیت اشنا بشویم برای دسترسی به این کلاس و دریافت اخرین نسخه میتوانید از آدرس اینترنتی www.smarty.net جدیدترین پکیج که شامل اخرین تغییرات نیز میباشد دریافت کنید
Template Engine های فراوانی برای Php موجود هست که میتوان اسمارتی یکی از برترین های آنها دانست Smarty از Php و Zend Engine بهره میگیرد و برنامه ها را با کمترین زمان ممکن اجرا میکند چون اسمارتی یکبار الگو را کامپایل میکند تا زمانی که الگو تغییری حاصل نکند دیگر نیاز به کامپایل ان ندارد اط طرفی همانطور که در ادامه بطور مفصل عرض خواهم کرد Smarty از Caching به نحو احسنت بهره گرفته است


باید توجه داشت که Smarty بصورت شیءگرا طراحی شده و عمل میکند که برای استفاده از آن میبایست یک Instance از آن ایجاد کرد که نمونه آن در زیر آورده شده است

[php:1:1c1a48b292]
require_once('Smarty.class.php'); // use absolute path here, if necessary
$smarty = new Smarty;
?>
[/php:1:1c1a48b292]

اسمارتی درون شاخه ای که فراخوانی میشود اما بدلیل موارد امنیتی الگو ها نباید درون شاخه هایی که از طریق وب قابل دسترسی میباشند جاگذاری شوند از این جهت برای معرفی مسیر Smarty بدین شکل عمل میکنیم



[php:1:1c1a48b292]
$smarty->template_dir = '/var/www/templates/app1/template/';
$smarty->compile_dir = '/var/www/templates/app1/compile/';
$smarty->config_dir = '/var/www/templates/app1/config/';
$smarty->cache_dir = '/var/www/templates/app1/cache/';

[/php:1:1c1a48b292]

شاخه Template مسیری است که اسمارتی درون آن بدنبال فایل های tpl. میگردد (منظور فایل های مربوط به ساختار تمپلیت میباشد)
شاخه Compileمسیری است که اسمارتی درون آن الگوهای کامپایل شده را ذخیره میکند
شاخه Config مسیری است که اسمارتی درون آن بدنبال فایل های تنظیمات میگردد
شاخه Cache مسیری است که اسمارتی درون آن فایل های Cache شده خود را ذخیره میکند

روش دیگری نیز روشی دیگر جهت معرفی این متغییرها وجود دارد که روش ارث بری نامیده میشود که بصورت زی میتوانید عمل کنید.

[php:1:1c1a48b292]
// require the Smarty class
require_once('Smarty.class.php');
// extend the Smarty class
class my_Smarty extends Smarty {
function my_Smarty() {
// create the Smarty object
$this->Smarty();
// set Smarty folders
$this->template_dir = '/var/www/templates/app1/template/';
$this->compile_dir = '/var/www/templates/app1/compile/';
$this->config_dir = '/var/www/templates/app1/config/';
$this->cache_dir = '/var/www/templates/app1/cache/';
// set other Smarty options
$this->use_sub_dirs = false;
}
}
?>
[/php:1:1c1a48b292]


خصوصیات اسمارتی Smarty


1- دارای سرعت زیاد میباشد
2- تا زمانی که در PHP خطایی رخ نداده باشد، مفید بود و بدون مشکل کار میکند.
3- فقط یکبار کامپایل می شود.
4- فقط فایلهایی را که تغییر کرده اند را دوباره کامپایل می نماید.
5- شما می توانید توابع سفارشی و یا متغیرهای ویرایشگر استفاده کنید، بنابراین قالبها قالب انعطاف پذیری پیدا می کنند.
6- قالب ها با استفاده از تگهای حائل (delimiter tag) یعنی {} ، {{}} ، <—{}--!> قابل پیکربندی می باشند.
7- ساختارهای if/elseif/else/endif در عبارات PHP گذاشته می شوند، یعنی عبارت {if …} می تواند ساده و یا پیچیده باشد.
8- اجازه استفاده بخش ها مثل if ها و غیره را بصورت نامحدود تودرتو وجود دارد.
9- می توان کدهای PHP را در فایلهای Template درون سازی نمود، اگر چه توصیه نمیشود
10- امکان ساپورت Caching که یکی از بزرگترین و بهترین قابلیت های اسمارتی محسوب میشود

* توجه : برای استفاده از اسمارتی به Php 4.0.6 به بالا نیاز است

+ نوشته شده در  شنبه هشتم فروردین 1388ساعت 15:12  توسط حمید رضا حباب | 
آموزش نحوه استفاده smarty درphp بخش 1 - 07-24-2006, 12:03 PM

خوب حالا همانطوری که قول داده بودم ، میخوام نحوه استفاده از smarty را خیلی ساده براتون نمایش بدم:
برای استفاده از سیستم هوشمند smarty ، ابتدا باید کل شاخه ها و فایلهای درون شاخه کتابخانه را وارد شاخه جدیدی کنید که قرار است در آنجا فایل اصلی برنامه که همان PHP است، قرارداده شود. شاید باید بیشتر توضیح بدم که ما از smarty جهت جداسازی قالب سایت و منطق سایت استفاده میکنیم .پس منظور از فایل اصلی php همان فایلیست که درونش منطق برنامه قرار می گیرد و فایل دیگری هم دارید با HTML که قالب یا Template سایت شما می باشد.
خوب پس از انتقال کل محتویات فایل کتابخانه به درون شاخه اصلی و جدید که فایل منطق برنامه هم اونجا قراردارد ، لازم است در این شاخه ، سه شاخه جدید بنامهای
templates,templates_c,config ایجاد نمایید و فایل مربوط به قالب برنامه که همان HTML است را درون شاخه templates که تازه ساخته اید ، وارد نمایید.
برای مثال، فرض کنید نام فایل اصلی منطق برنامه شما index.php است و فایل مربوط به قالب سایت home.html است.


درون فایل index.php داریم:
کد:
error_reporting(E_ALL);

include("smarty/Smarty.class.php");
$smarty = new Smarty();
$smarty->assign('username','sara');
$smarty->display("home.html");


?>
و درون فایل home.html :
کد:


{$username}<br />


welcome {$username}


+ نوشته شده در  شنبه هشتم فروردین 1388ساعت 15:9  توسط حمید رضا حباب | 
 
صفحه نخست
پست الکترونیک
آرشیو
عناوین مطالب وبلاگ
درباره وبلاگ

نوشته های پیشین
مهر 1388
مرداد 1388
خرداد 1388
اردیبهشت 1388
فروردین 1388
اسفند 1387
تیر 1387
آرشیو موضوعی
DHtml
PHP
SQL
Apache
مرورگر ها
موتور جستجو و SEO
شبکه
RSS
برنامه نویسی
مطالب آموزنده
Ajax
UML
Linux
گرافیک سایت
امنیت اطلاعات
تجارت الکترونیک
XML
windows
jquery
smarty
ترفند های اینترنت
سخت افزار
open source
وب سرویس ها
نویسندگان
حمید رضا حباب
امیر حسین طهرانی
مجتبی موحدیان
پیوندها
سایت راسخون
سایت تبیان
کارپرداز
رشد
اکسپلورر
مقالات آموزشی طراحی وب
تبلیغات رایگان در اینترنت
موسسه فرهنگی هنری شهید شهبازی
فهرست وب سایتهای ایرانی
وبلاگ با مقالات خوب (عظمت وبلاگ)
تفدا: توسعه فناوری، دانش و اطلاعات
تراشه
jquery
smarty
persia-cms
پایگاه تخصصی نرم افزار ایران
اخبار فناوری اطلاعات
قیمت گذاری یک سایت
خطاطي و خوشنويسي نستعليق آنلاين تحت وب
تدبیل Excel به HTML
یافتن تکنولوژی هایی که در یه ایجاد یک سایت به کار رفته اند
سایتی برای tooltip گذاشتن در سایت
Wikipedia برای گوشی های موبایل
TutSearch: موتور جستجو جهت یافتن آموزش برای طراحان وب
انجمن فرهیختگان ایران
parsigold.com
نمايش Page Rank گوگل در سايت
استاد آنلاین
سایتی برای ساختن loading سیستم های ajax
1000 مقاله
مجموعه مقالات تخصصی نرم افزار - 500 مقاله
دیکشنری online چند زبانه منحصر به فرد
125 مقاله جمع آوری شده از اینترنت در باره امنیت در نرم افزار و شبکه
وین بتا با مقالات جالب
پایگاه اطلاع رسانی ماهنامه شبکه
سایت مقالات فارسی
 

 RSS

POWERED BY
BLOGFA.COM