关于widgets,他们在yii中的关系如下
system.web.widgets 系统自带最基本的widget
zii.widgets 是基本扩展
zii.widgets.grid 是基本扩展的重要分支
zii.widgets.jui 是插件扩展
一,system.web.widgets
包括:
CActiveForm
CAutoComplete
CClipWidget
CContentDecorator
CFilterWidget
CFlexWidget
CHtmlPurifier
CInputWidget
CMarkdown
CMaskedTextField
CMultiFileUpload
COutputCache
COutputProcessor
CStarRating
CTabView
CTextHighlighter
CTreeView
CWidget
1,CWidget
批注:CWidget是所有Widget的基类。CWidget是自包含组件,可以看出是MVC的简略版,CWidget相比Controller,既没有actions,也没有filters。
实现细节可参考 CBaseController and CBaseController::widget.
CWidget
2,CWidget实例(右侧页面)
CWidget是components下一个独立的文件夹(路径是:../components/widgets/)
有自己的controller和views。其中controller继承自CWidget,习惯命名为XXWidget.php(XXWidget extends CWidget)。
XXWidget.php有两种写法
/********** 方式一: **********/ public function run() { //逻辑 $this->render("fail_basic", array('summaryIdcs' => $summaryIdcs)); } /********** 方式二: **********/
3,实例
例如,在表单创建时
<?php $form=$this->beginWidget('CActiveForm', array( 'id'=>'user-form', 'enableAjaxValidation'=>false, 'htmlOptions'=>array('enctype'=>'multipart/form-data'), )); ?> ..body content that may be captured by the widget... <?php $this->endWidget(); ?> //或 <?php $this->widget('path.to.WidgetClass'); ?>
二,zii.widgets
默认情况下, widget 的视图文件位于包含了widget文件的 views 子目录之下。这些视图可以通过调用 CWidget::render()渲染,这一点和控制器很相似。唯一不同的是,widget的视图没有布局文件支持。
同时,view 文件中的 $this 指的是widget 实例而不是 controller 实例。
包括:
CBaseListView
CBreadcrumbs
CDetailView
CListView
CMenu
CPortlet
例一,
class testWidget extends CWidget { public function init() { //当视图中执行$this->beginWidget()时候会执行这个方法 //可以在这里进行查询数据操作 } public function run() { //当视图中执行$this->endWidget()的时候会执行这个方法 //可以在这里进行渲染试图的操作,注意这里提到的视图是widget的视图 //注意widget的视图是放在跟widget同级的views目录下面,例如下面的视图会放置在 // /protected/widget/test/views/test.php $this->render('test', array( 'str'=>'WIDGET视图变量', )); } }
CPortlet是widget的一种,专门负责展示
//在../components/RecentComments.php中 Yii::import('zii.widgets.CPortlet'); class RecentComments extends CPortlet { public $title='Recent Comments'; public $maxComments=10; public function getRecentComments() { return Comment::model()->findRecentComments($this->maxComments); } protected function renderContent() { $this->render('recentComments'); } } //在../components/view/recentComments.php中 <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>
三,zii.widgets.grid
CButtonColumn
CCheckBoxColumn
CDataColumn
CGridColumn
CGridView
CLinkColumn
四,zii.widgets.jui
CJuiAccordion
CJuiAutoComplete
CJuiButton
CJuiDatePicker
CJuiDialog
CJuiDraggable
CJuiDroppable
CJuiInputWidget
CJuiProgressBar
CJuiResizable
CJuiSelectable
CJuiSlider
CJuiSliderInput
CJuiSortable
CJuiTabs
CJuiWidget
相关推荐
在Yii中,Widget(小部件)是一种可重用的代码组件,可以方便地在视图层进行页面元素的组织和渲染。自定义Widget是扩展Yii功能和提高代码复用性的重要方式。本文将深入探讨如何在Yii框架中实现自定义Widget以及实现...
composer require 2amigos/yii2-tinymce-widget:~1.1 或添加 " 2amigos/yii2-tinymce-widget " : " ~1.1 " 到应用程序的composer.json文件的 require 部分。 用法 use dosamigos\tinymce\TinyMce; <?= $form->...
"yii-ke-widget" 是专门为Yii框架设计的一个集成 KindEditor 的 Widget。 KindEditor 是一个功能强大的开源在线文本编辑器,支持多种浏览器,如 Chrome、Firefox、Safari、IE6 等,提供了丰富的富文本编辑功能,...
"uran1980/yii2-igrowl-widget": "dev-master" 到composer.json的 require 部分 用法 要激活此小部件,将此行添加到您的视图或布局: <?php echo uran1980\yii\widgets\igrowl\ Igrowl :: widget (); ?>
在Yii中,Widget是可重用的代码组件,能够帮助开发者快速构建UI(用户界面)。Portlet是Yii中一种特殊的Widget,常用于展示可定制的小部件,如侧边栏、导航菜单等。 自定义Widget Portlet的知识点主要涵盖以下几个...
" 2amigos/yii2-exportable-widget " : " ^2.0 " 到应用程序的composer.json文件的require部分。 文献资料 您可以在上阅读最新文档。 贡献 有关详细信息,请参见。 学分 安东尼奥·拉米雷斯(Ant
### Yii2.0中文学习手册知识点总结 #### 一、简介 - **Yii2.0**是一款基于PHP的高性能Web应用程序开发框架,以其简洁、高效、安全的特点深受开发者喜爱。本手册旨在帮助初学者和进阶用户快速掌握Yii2.0的核心概念与...
yii2学习笔记,一边看某课网一遍实践一遍总结,整理文档
Yii框架是高效且灵活的PHP框架,专为Web 2.0应用开发而设计。自2008年1月薛强开始开发以来,Yii已经经历了多个版本迭代,从1.0.0到...通过深入学习和实践,开发者可以充分利用Yii的优势,提高开发效率和应用质量。
Yii Yii框架 Yii框架快速入门,自己整理的很全的,很容易看懂
Yii2 配速小部件一个基于 javascript 库的用于自动网页进度条的 Yii2 小部件。佩斯做什么? Pace 将自动监控您的 ajax 请求、事件循环延迟、文档就绪状态和页面上的元素以决定进度。 在 ajax 导航上,它将重新开始!...
Yii2.0学习笔记完全版 Yii2 Yii2.0 Yii2.0学习 Yii2.0学习笔记
"borales/yii2-ace-widget": "*" 到composer.json文件的require部分。 用法(带有默认选项) // For your model echo \borales\widgets\ace\ Widget :: widget ([ 'model' => $ model , 'attribute' => '...
Yii 2的Imperavi Redactor小部件 Imperavi Redactor Widget是 (一种高质量的所见即所得编辑器)的包装。 请注意,Imperavi Redactor本身是专有的商业版权软件,但是由于Yii社区购买了OEM许可证,因此您可以在Yii上...
yii2-unslider-widget Yii 2 的流畅、灵活、极少的滑块小部件安装将以下内容添加到composer.json require部分: dd3v/yii2-unslider-widget": "*"并运行composer install 。用法 use dd3v\unslider\ Unslider ; echo...
composer require 2amigos/yii2-disqus-widget:~1.0 或添加 " 2amigos/yii2-disqus-widget " : " ~1.0 " 到应用程序的composer.json文件的 require 部分。 用法 显示 DISQUS 评论 use dosamigos\disqus\ ...
Yii2-登录小部件 ... "shiyang/yii2-login-widget": "*" 到composer.json文件的 require 部分。 用法 安装扩展后,只需通过以下方式在您的代码中使用它: <?= \shiyang\login\ Login :: widget (); ?>
yii2-jpanelmenu-widget JPanelMenu 小部件是的包装器,“用于轻松创建和管理画布外内容。 ”。 安装 安装此扩展的首选方法是通过 。 要么跑 ...
本篇学习笔记将详细介绍Yii框架的基本概念,包括请求处理流程、组件、事件与行为、错误和日志处理、国际化以及视图和控制台应用等方面。 ### 请求的处理流程 1. **项目入口脚本**:在Yii框架中,项目的入口脚本...