您的位置:首页 > 编程语言 > PHP开发

Yii小物件widget的简单操作

2013-12-12 13:57 330 查看
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>'));?>  //imageName 为类的属性
<?php $this->endWidget();?>


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: