`
hudeyong926
  • 浏览: 2038760 次
  • 来自: 武汉
社区版块
存档分类
最新评论

Yii 自定义Widget Portlet

 
阅读更多

能够重用的小的代码模块,不涉及业务逻辑的,用在跟视图相关的方面比较多,一般把Sidebar,Navigation,Page,JS控件(上传,日历)封装成Widget,但Portlet生成的html系统会自动套2层div在html外面,改变了页面样式,可能操作页面样式布局js等失效

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

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

 或者

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

 也可以传参到Widget类

<?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实现,存储到protected\components\BannerMagicWidget.php

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

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

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

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

 

3. 调用该Widget

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

 

CPortlet继承自CWidget。这意味portlet作为一个widget,可以在用widget()方法在页面中插入.它覆盖了CPortlet 类的 renderContent() 方法等

 protected\components\RecentComments.php  (1)

<?php

Yii::import('zii.widgets.CPortlet');

class RecentComments extends CPortlet
{
	public $title='Recent Comments'; //title 
	public $maxComments=10;

	public function getRecentComments()
	{
		return Comment::model()->findRecentComments($this->maxComments);
	}

	protected function renderContent()
	{
		$this->render('recentComments'); //模板文件
	}
}

protected\components\views\recentComments.php   模板文件(2)

<ul>
	<?php foreach($this->getRecentComments() as $comment): ?>
	<li><?php echo $comment->authorLink; ?> on
		<?php echo CHtml::link(CHtml::encode($comment->post->title), $comment->getUrl()); ?>
	</li>
	<?php endforeach; ?>
</ul>

 调用方法 (3)

<?php $this->widget('RecentComments', array('maxComments'=>Yii::app()->params['recentCommentCount'],
)); ?>

 

 

 

 
分享到:
评论

相关推荐

    yii1.1版本资料整理

    6. 支持插件widget(portlet):Yii通过widget插件系统允许开发者方便地添加和维护应用程序中的部件,从而实现丰富的用户界面。 二、Yii1.1核心组件与功能: 1. CRUD生成器Gii:Gii是一个强大的工具,提供了代码生成...

    yiiwheels:YiiStrap扩展的窗口小部件扩展库

    9. **窝轮(Widget**):一个通用的窝轮小部件,可以包装任何Bootstrap的JavaScript组件,使其易于在Yii应用中使用。 使用YiiWheels,开发者可以充分利用Bootstrap的强大功能,同时保持Yii框架的效率和灵活性。安装...

    基于分时电价机制的家庭能量管理策略优化研究:考虑空调、电动汽车及可平移负荷的精细控制模型,基于分时电价机制的家庭能量管理策略优化研究:集成空调、电动汽车与可平移负荷管理模型,MATLAB代码:基于分时

    基于分时电价机制的家庭能量管理策略优化研究:考虑空调、电动汽车及可平移负荷的精细控制模型,基于分时电价机制的家庭能量管理策略优化研究:集成空调、电动汽车与可平移负荷管理模型,MATLAB代码:基于分时电价条件下家庭能量管理策略研究 关键词:家庭能量管理模型 分时电价 空调 电动汽车 可平移负荷 参考文档:《基于分时电价和蓄电池实时控制策略的家庭能量系统优化》参考部分模型 《计及舒适度的家庭能量管理系统优化控制策略》参考部分模型 仿真平台:MATLAB+CPLEX 平台 优势:代码具有一定的深度和创新性,注释清晰,非烂大街的代码,非常精品 主要内容:代码主要做的是家庭能量管理模型,首先构建了电动汽车、空调、热水器以及烘干机等若干家庭用户用电设备的能量管理模型,其次,考虑在分时电价、动态电价以及动态电价下休息日和工作日家庭用户的最优能量管理策略,依次通过CPLEX完成不同场景下居民用电策略的优化,该代码适合新手学习以及在此基础上进行拓展 ,核心关键词: 家庭能量管理模型; 分时电价; 电动汽车; 空调; 可平移负荷; 优化控制策略; 仿真平台(MATLAB+CPLEX); 深度创新性。,

    Delphi 12 控件之Winsoft PDFium Component Suite v7.4 for Delphi & CB 5-12 Athens Full Source.7z

    Winsoft PDFium Component Suite v7.4 for Delphi & CB 5-12 Athens Full Source.7z

    基于Matlab的草原生态管理策略研究:数学建模及E前四问问题分析思路,基于Matlab的草原放牧策略研究:数学建模与问题解决的前四问思路,基于Matlab的草原放牧的策略研究数学建模E前四问思路

    基于Matlab的草原生态管理策略研究:数学建模及E前四问问题分析思路,基于Matlab的草原放牧策略研究:数学建模与问题解决的前四问思路,基于Matlab的草原放牧的策略研究数学建模E前四问思路 ,基于Matlab的草原放牧策略研究; 数学建模; E前四问思路; 策略优化; 模型验证; 数据模拟。,Matlab草原放牧策略研究:数学建模E及前四问解析

    JSP基于SSH2新闻发布系统.zip(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用,资源为网络商品(电子资料类)基于网络商品和电子资料商品的性质和特征不支持退款,质量优质,放心下载使用

    LanSee175(局域网查看工具)

    主要功能 信息搜索:可快速搜索局域网中的计算机,获取计算机名、IP 地址、MAC 地址、所在工作组、用户等详细信息,还能搜索共享资源和共享文件,便于用户快速定位和访问所需资源。 网络嗅探:能够捕获 TCP、UDP、ICMP、ARP 等各种数据包,可嗅探局域网上的 QQ 号,查看各主机流量,还能从流过网卡的数据中嗅探出音乐、视频、图片等文件,帮助用户了解网络数据传输情况。 聊天与共享:具备局域网聊天和文件共享功能,无需服务器支持。用户可进行群聊或私聊,还能指定条件搜索其他用户共享的文件,方便局域网内的信息交流与资源共享。 计算机管理:可以向开启信使服务的计算机发送短消息,对于有相应权限的计算机,还能进行远程关闭或重启操作,方便网络管理员进行集中管理。 文件复制:支持复制网上邻居上的共享文件、LanSee 用户共享的文件以及通过网络嗅探功能嗅探出的文件,并且支持断点传输,提高文件复制的效率和稳定性。 端口与连接查看:可列出进程打开的所有网络端口以及连接情况,能快速扫描 TCP 端口,查看适配器信息,还能进行 Ping、Traceroute 等操作,帮助用户了解网络连接状态和诊断网络问题。

    迅雷软件下载原理介绍.md

    迅雷软件下载原理介绍.md

    最新更新!!!2024年HS编码出口退税率数据(2004-2024年)

    ## 01、数据简介 出口退税率是针对出口产品在国内已缴纳的税款,在货物报关出口后退还给出口企业时,按照一定比例计算的退税金额与计税价格之间的比率。 出口退税率是出口退税制度中的一个重要参数,它体现了国家对出口企业的税收优惠政策,有助于降低企业的出口成本,提升其在国际市场上的竞争力。同时,国家也会根据经济形势和国际贸易的变化,适时调整出口退税率,以更好地服务于国家的经济发展战略。 数据名称:2024年HS编码出口退税率数据 数据年份:2004-2024年 ## 02、相关数据 CODE、ST_DATE、END_DATE、ZHCMCODE、NAME、DWCODE、UNIT、BCFLAG、STDFLAG、DWFLAG、SZ、ZSSL_SET、CLDE、CJDL、TSL、SPLB、TSFLAG、NOTE。 ## 03、数据截图

    风机变桨控制FAST与MATLAB SIMULINK联合仿真模型:非线性风力发电机的PID独立与统一变桨控制策略对比研究,风机变桨控制FAST与MATLAB联合仿真研究:非线性风力发电机的PID独立与

    风机变桨控制FAST与MATLAB SIMULINK联合仿真模型:非线性风力发电机的PID独立与统一变桨控制策略对比研究,风机变桨控制FAST与MATLAB联合仿真研究:非线性风力发电机的PID独立与统一变桨控制在Trubsim 3D湍流风环境下的对比分析,风机变桨控制FAST与MATLAB SIMULINK联合仿真模型非线性风力发电机的 PID独立变桨和统一变桨控制下仿真模型,对于5WM非线性风机风机进行控制 链接simulink的scope出转速对比,桨距角对比,叶片挥舞力矩,轮毂处偏航力矩,俯仰力矩等载荷数据对比图,在trubsim生成的3D湍流风环境下模拟 统一变桨反馈信号是转速,独立变桨反馈是叶根载荷 提供包含openfast与matlab simulink联合仿真的建模 可以提供参考文献+模型+大佬交流群 ,核心关键词:FAST; MATLAB SIMULINK; 联合仿真模型; 非线性风力发电机; PID控制; 独立变桨; 统一变桨; 转速对比; 桨距角对比; 叶片挥舞力矩; 轮毂偏航力矩; 俯仰力矩; 3D湍流风环境; 建模; 参考文献; 模型交流群。,基于OpenF

    基于Unity,SenseAR的手势识别demo.zip(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用,资源为网络商品(电子资料类)基于网络商品和电子资料商品的性质和特征不支持退款,质量优质,放心下载使用

    jdk-8u441-windows-x64.zip

    java8版本的压缩包(windows)

    NMPC非线性模型预测控制:从原理到代码实践的全面解析,包含四项案例研究:自动泊车轨迹优化、倒立摆上翻控制、车辆运动学轨迹跟踪及四旋翼无人机轨迹跟踪,非线性模型预测控制在四个案例中的实践与应用:从原理

    NMPC非线性模型预测控制:从原理到代码实践的全面解析,包含四项案例研究:自动泊车轨迹优化、倒立摆上翻控制、车辆运动学轨迹跟踪及四旋翼无人机轨迹跟踪,非线性模型预测控制在四个案例中的实践与应用:从原理到代码实操指南,nmpc非线性模型预测控制从原理到代码实践 包含4个案例 1 自动泊车轨迹优化 2 倒立摆上翻控制 3 车辆运动学轨迹跟踪 4 四旋翼无人机轨迹跟踪 ,nmpc;非线性模型预测控制;原理;代码实践;案例;自动泊车轨迹优化;倒立摆上翻控制;车辆运动学轨迹跟踪;四旋翼无人机轨迹跟踪,NMPC非线性模型预测控制:原理与代码实践,四案例详解(含自动泊车、倒立摆、车辆轨迹跟踪及四旋翼无人机控制)

    Delphi 12 控件之Gnostice PDFToolkit v.5.0.0.860 for Delphi 11.7z

    Gnostice PDFToolkit v.5.0.0.860 for Delphi 11.7z

    CAD-Reader(cad快速看图)

    快速打开图纸:具有闪电般的启动速度,能快速打开各种版本的 DWG 图纸,让用户迅速开始查看和使用图纸。 显示完整准确:全面完整地显示布局、图案填充等内容,可自动匹配所有字体,有效解决中文乱码问题,能完美显示钢筋符号。 支持天正系列:是业内支持天正建筑、天正给排水、天正暖通、天正电气的 CAD 看图产品,方便建筑、给排水等相关专业人员查看和使用天正图纸。 便捷传图功能:内置 WiFi 直连电脑、云盘功能,方便用户在不同设备之间轻松传图,实现图纸的快速传输和共享。 多种操作功能:可添加各种注释,如线条、文字、图片等,还能精确扣点,方便用户对图纸进行标记和说明;具有所见即所得的打印方式,可自由设置打印范围;支持全屏看图,让用户获得更好的查看体验。 测量统计功能:能准确测量长度、半径、角度、弧长、坐标、多边形面积等,还可自动统计测量的长度和面积,可按颜色统计或手动统计,结果能导出表格。 高效协作功能:支持团队协同,用户可以在移动中处理工作,与合作伙伴随时沟通;可以捕获现场照片和录制语音消息并作为注释附加到图纸上,还能导入 / 导出图纸注释。

    单向手性光学腔的研究与应用 - Comsol的光学物理分析与实现,“Comsol模拟下的单向手性光学腔特性探究”,Comsol单向手性光学腔 ,核心关键词:Comsol; 单向手性; 光学腔; 模拟

    单向手性光学腔的研究与应用 - Comsol的光学物理分析与实现,“Comsol模拟下的单向手性光学腔特性探究”,Comsol单向手性光学腔。 ,核心关键词:Comsol; 单向手性; 光学腔; 模拟。,单向手性光学腔的Comsol模拟研究

    CDlinux镜像文件.zip

    目录: CDlinux_CE-0.9.5 CDlinux_CE-0.9.6.1 CDlinux_CE-0.9.7.1 CDlinux_mini-0.9.5 CDlinux_mini-0.9.6.1 CDlinux_mini-0.9.7.1 CDlinux-0.9.5.1 CDlinux-0.9.6.1 CDlinux-0.9.6 CDlinux-0.9.7.1 CDlinux-0.9.7 ........... 网盘文件永久链接

    基于maven的SSM整合 demo项目.zip(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用,资源为网络商品(电子资料类)基于网络商品和电子资料商品的性质和特征不支持退款,质量优质,放心下载使用

Global site tag (gtag.js) - Google Analytics