1.直接widget调用,不包含内容体 body
第一步:在protected/components/文件夹下面 建立文件 BannerMagicWidget.php
BannerMagicWidget.php的内容如下
<?php
class BannerMagicWidget extends CWidget {
public $imageName;
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,
'imageName'=>$this->imageName,
));
}
}
第二步:在protected/components/文件夹下面,建立文件夹 view,在文件夹下面建立文件 bannermagic.php ,bannermagic这个名称在其他视图文件进行调用
bannermagic.php的文件内容
<?php echo $imageName?>
<h1><?php echo $advert;?></h1>
第三步:在控制器的视图文件里面,进行调用
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
widget的使用
<?php $this->widget("BannerMagicWidget",array('imageName'=>'图片名称'));?> //imageName 为类的属性
2.包含内容体的应用 body
第一步:在protected/components/文件夹下面 建立文件 BannerMagicWidget.php
BannerMagicWidget.php的内容如下
<?php
class BannerMagicWidget extends CWidget {
public $imageName;
protected $data;
public function init(){
$this->data=range(10,20);
// 此方法会被 CController::beginWidget() 调用
//当视图中执行$this->beginWidget()时候会执行这个方法
//可以在这里进行查询数据操作
}
public function run() {
// 此方法会被 CController::endWidget() 调用
$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,
'imageName'=>$this->imageName,
'data'=>$this->data,
));
}
}
第二步:在protected/components/文件夹下面,建立文件夹 view,在文件夹下面建立文件 bannermagic.php ,bannermagic这个名称在其他视图文件进行调用
bannermagic.php的文件内容
<?php echo $imageName?>
<h1><?php echo $advert;?></h1>
<?php foreach($data as $key=>$val):?>
<h1><?php echo $key.'==='.$val?></h1>
<?php endforeach;?>
第三步:在控制器的视图文件里面,进行调用
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <?php $this->beginWidget("BannerMagicWidget",array('imageName'=>'<h1>图片名称</h1>'));?>
<?php $this->endWidget();?>//imageName 为类的属性