یکی دیگه از امکانات فریم ورک yii استفاده از ویجت هاست (widget ) .
ویجت ها کامپوننت هایی هستن که شامل مدل و ویو هستن که می توان آنها را در هر جایی استفاده کرد. به این معنی که
شما میتوانید آنهارا مستقل از controller , view , model به صورت جدا نمایش دهید .
برای مثال برای نمایش آرشیو سایت در نوار کناری ,تقویم, نمایش تبلیغات و …..
برای ساخت ماژول ابتدا شما باید در مسیر
protected/components
فایل php بسازین که نام ماژول یا ویجتتون هست
برای مثال من ماژول خود را با نام myWidget.php می سازم
توجه داشته باشین که ویجتتون باید از CWidget فریم ورک yii ارث برده باشه .
class myWidget extends CWidget { public function init() { } public function run() { $data = "amir ajlo goYii.ir"; $this->render('myWidgetindex', array('data' => $data)); } }
Cwidget دو متد داره که شما باید آن هارو override (بازنویسی) کنید.
این دو متد init و run هستند
در init شما میتوانید متغغیر های پیش فرض خود را استفاده کنید
برای مثال شما میتوانید css ها یا script هایی که ویجتتون به آن نیاز دارد را لود کنید.
در قسمت run بدنه ی اصلی ویجت شما قرار داره که میتونین به صورت مستقیم دیتا نمایش دهید : html و … ,
و یا اطلاعاتی را به ویو ارسال نمایید .
در مثال بالا من ویوی خود را صدا زده و دیتایی به آن ارسال کرده ام .
خوب حالا ویو ی ما که اسمش myWidgetindex هست کجاست ؟
در مسیر زیر :
protected/components/views/myWidgetindex.php
در ویو من data را نمایش داده ام :
echo $data;
ویجتتون آماده شده الان
فقط میمونه نمایش آن در هر جایی که می خواهید
کد زیر را هرجا که قرار دهید مقدار data را نمایش میدهد .
$this->widget('myWidget');