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

 代码如下 复制代码

<?php
class 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,
));
}
}

存储到protectedcomponentsBannerMagicWidget.php

对应的view文件可能的内容如下:

 代码如下 复制代码

<img src="images/adverts/<?php echo $advert; ?>" alt="whatever" />

存储到protectedcomponentsviewsbannermagic.php

3. 调用该Widget

 代码如下 复制代码

<?php $this->widget('BannerMagicWidget'); ?>
时间: 2024-08-28 05:07:37

yii创建自己的widget方法实例-随机广告图片的相关文章

用Dreamweaver插件轻松制作随机广告图片

浏览者浏览网页时可以发现,网页中动态更新的广告图片比静态固定的图像更具有活力和吸引力.如何制作网页中的随机广告图片是本实例所要研究的问题. 效果说明 在浏览网页时,网页的 banner 区域将出现一张广告图片,如图 38-1 所示.随后每两秒更新一次广告图片,而且广告图片是以随机的方式出现的,如图 38-2 所示. 创作思想 通过使用 Macromedia 的扩展插件 Advance_Random_Images ,可以轻松地完成网页中随机广告图片的制作. 操作步骤 ( 1 )安装插件.使用菜单栏

PHP实例:用PHP程序实现随机广告图片显示

<?php   #########随机广告显示##########   function myads(){   $dir="ads"; #设置存放记录的目录   //$dir="ads"; #设置存放记录的目录   $ads="$dir/ads.txt"; #设置广告代码文件   $log ="$dir/ads.log"; #设置ip记录文件      $ads_lines=file($ads);   $lines=co

用PHP程序实现随机广告图片显示

以下为引用的内容:<?php   #########随机广告显示##########   function myads(){   $dir="ads"; #设置存放记录的目录   //$dir="ads"; #设置存放记录的目录   $ads="$dir/ads.txt"; #设置广告代码文件   $log ="$dir/ads.log"; #设置ip记录文件      $ads_lines=file($ads);  

Yii中创建自己的Widget实例_php实例

本文实例讲述了Yii中创建自己的Widget实现方法.分享给大家供大家参考,具体如下: 这里以一个随机广告图片为例说明Yii中Widget的用法 1. 调用Widget 复制代码 代码如下: <?php $this->widget('WidgetName'); ?> 或者 <?php $widget=$this->beginWidget('path.to.WidgetClass'); ?> ...可能会由小物件获取的内容主体... <?php $this->

Java技术_每天掌握一种设计模式(003)_使用场景及简单实例(创建型:工厂方法)

Java技术_每天掌握一种设计模式(001)_设计模式概念及分类 Java技术_每天掌握一种设计模式(002)_使用场景及简单实例(创建型:单例模式) Java技术_每天掌握一种设计模式(003)_使用场景及简单实例(创建型:工厂方法) Java技术_每天掌握一种设计模式(004)_使用场景及简单实例(创建型:抽象工厂) Java技术_每天掌握一种设计模式(005)_使用场景及简单实例(创建型:建造模式) Java技术_每天掌握一种设计模式(006)_使用场景及简单实例(创建型:原型模式) 1.

Yii开启片段缓存的方法_php实例

本文实例讲述了Yii开启片段缓存的方法.分享给大家供大家参考,具体如下: 1.main.php文件中的components中添加: cache'=>array( 'class'=>'system.caching.CFileCache', ), 2.在view中哪里需要缓存就添加这句话 <?php if($this->beginCache('aaa', array( 'duration'=>3360, 'varyByParam'=>array('page'), 'depe

Yii实现Command任务处理的方法详解_php实例

本文实例讲述了Yii实现Command任务处理的方法.分享给大家供大家参考,具体如下: 1.配置,执行任务所需要的组件 任务配置文件:/protected/config/console.php 配置方法跟配置main文件差不多 <?php // This is the configuration for yiic console application. // Any writable CConsoleApplication properties can be configured here.

Yii实现简单分页的方法_php实例

本文实例讲述了Yii实现简单分页的方法.分享给大家供大家参考,具体如下: yii分页方法 function actionPage(){ $criteria=new CDbCriteria(); $count=Archives::model()->count($criteria); $pages=new CPagination($count); // results per page $pages->pageSize=10; $pages->applyLimit($criteria); $

Yii扩展组件编写方法实例分析_php实例

本文实例讲述了Yii扩展组件编写方法.分享给大家供大家参考.具体如下: 因为Yii本身就引入了Prado的component-based 思想做为主要思想.因此,组件在yii中是很重要的. 组件一般放在components目录里,其格式示例基本如下: <?php /** * some description about the <span style="color: rgb(34, 34, 34); font-family: Arial, sans-serif; font-size: