首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Yii中创办自己的Widget

2012-10-28 
Yii中创建自己的Widget.下面以一个随机广告图片为例说明Yii中Widget的用法1. 调用Widget?php $this-widg

Yii中创建自己的Widget.
下面以一个随机广告图片为例说明Yii中Widget的用法
1. 调用Widget

<?php $this->widget('WidgetName'); ?>

或者
<?php $widget=$this->beginWidget('path.to.WidgetClass'); ?>...可能会由小物件获取的内容主体...<?php $this->endWidget(); ?>


也可以传参到Widget类
<?php $userId = 1; ?><?php $this->widget('WidgetName',array('userId'=>$userId)); ?>

参数userId自动映射到Widget类的同名属性,所以在定义Widget时,别忘记了声明该属性。

2. 创建Widget
自定义Widget类要继承CWidget,覆盖方法run
<?phpclass BannerMagic extends CWidget {    public function run(){    }}

或者:
class MyWidget extends CWidget {    public function init() {        // 此方法会被 CController::beginWidget() 调用    }     public function run() {        // 此方法会被 CController::endWidget() 调用    }}

下面是是BannerMagicWidget实现
<?php class BannerMagicWidget extends CWidget {   public function run() {     $random = rand(1,3);     if ($random == 1) {       $advert = "advert1.jpg";     }  else if ($random == 2) {       $advert = "advert2.jpg";     }  else {       $advert = "advert3.jpg";     }      $this->render('bannermagic',array(       "advert"=>$advert,     ));   }}

存储到protected\components\BannerMagicWidget.php

对应的view文件可能的内容如下:
<img src="images/adverts/<?php echo $advert; ?>" alt="Yii中创办自己的Widget" />

存储到protected\components\views\bannermagic.php

3. 调用该Widget
<?php $this->widget('BannerMagicWidget'); ?>

热点排行