`
dcj3sjt126com
  • 浏览: 1868378 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

YII学习第八天,widget专题

    博客分类:
  • YII
yii 
阅读更多

关于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地址联动

    在Yii中,Widget(小部件)是一种可重用的代码组件,可以方便地在视图层进行页面元素的组织和渲染。自定义Widget是扩展Yii功能和提高代码复用性的重要方式。本文将深入探讨如何在Yii框架中实现自定义Widget以及实现...

    yii2-tinymce-widget:Yii2 的 TinyMCE 所见即所得小部件

    composer require 2amigos/yii2-tinymce-widget:~1.1 或添加 " 2amigos/yii2-tinymce-widget " : " ~1.1 " 到应用程序的composer.json文件的 require 部分。 用法 use dosamigos\tinymce\TinyMce; &lt;?= $form-&gt;...

    yii-ke-widget

    "yii-ke-widget" 是专门为Yii框架设计的一个集成 KindEditor 的 Widget。 KindEditor 是一个功能强大的开源在线文本编辑器,支持多种浏览器,如 Chrome、Firefox、Safari、IE6 等,提供了丰富的富文本编辑功能,...

    yii2-igrowl-widget:一个基于 iGrowl jQuery 插件的 Yii2 igrowl 小部件

    "uran1980/yii2-igrowl-widget": "dev-master" 到composer.json的 require 部分 用法 要激活此小部件,将此行添加到您的视图或布局: &lt;?php echo uran1980\yii\widgets\igrowl\ Igrowl :: widget (); ?&gt;

    Yii 自定义Widget Portlet

    在Yii中,Widget是可重用的代码组件,能够帮助开发者快速构建UI(用户界面)。Portlet是Yii中一种特殊的Widget,常用于展示可定制的小部件,如侧边栏、导航菜单等。 自定义Widget Portlet的知识点主要涵盖以下几个...

    yii2-exportable-widget:允许将GridView小部件导出为不同的格式

    " 2amigos/yii2-exportable-widget " : " ^2.0 " 到应用程序的composer.json文件的require部分。 文献资料 您可以在上阅读最新文档。 贡献 有关详细信息,请参见。 学分 安东尼奥·拉米雷斯(Ant

    Yii2.0中文学习手册

    ### Yii2.0中文学习手册知识点总结 #### 一、简介 - **Yii2.0**是一款基于PHP的高性能Web应用程序开发框架,以其简洁、高效、安全的特点深受开发者喜爱。本手册旨在帮助初学者和进阶用户快速掌握Yii2.0的核心概念与...

    Yii2—yii2学习—某课网学习笔记

    yii2学习笔记,一边看某课网一遍实践一遍总结,整理文档

    Yii框架学习笔记

    Yii框架是高效且灵活的PHP框架,专为Web 2.0应用开发而设计。自2008年1月薛强开始开发以来,Yii已经经历了多个版本迭代,从1.0.0到...通过深入学习和实践,开发者可以充分利用Yii的优势,提高开发效率和应用质量。

    Yii框架学习手册

    Yii Yii框架 Yii框架快速入门,自己整理的很全的,很容易看懂

    yii2-pace-widget:用于自动网页进度条的 Yii2 小部件

    Yii2 配速小部件一个基于 javascript 库的用于自动网页进度条的 Yii2 小部件。佩斯做什么? Pace 将自动监控您的 ajax 请求、事件循环延迟、文档就绪状态和页面上的元素以决定进度。 在 ajax 导航上,它将重新开始!...

    Yii2.0学习笔记完全版

    Yii2.0学习笔记完全版 Yii2 Yii2.0 Yii2.0学习 Yii2.0学习笔记

    yii2-ace-widget:Yii2 Ace(Ajax.org Cloud9编辑器)小部件

    "borales/yii2-ace-widget": "*" 到composer.json文件的require部分。 用法(带有默认选项) // For your model echo \borales\widgets\ace\ Widget :: widget ([ 'model' =&gt; $ model , 'attribute' =&gt; '...

    yii2-imperavi-widget:Yii 2的Imperavi Redactor小部件

    Yii 2的Imperavi Redactor小部件 Imperavi Redactor Widget是 (一种高质量的所见即所得编辑器)的包装。 请注意,Imperavi Redactor本身是专有的商业版权软件,但是由于Yii社区购买了OEM许可证,因此您可以在Yii上...

    yii2-unslider-widget:Yii 2 的流畅、灵活、极少的滑块小部件

    yii2-unslider-widget Yii 2 的流畅、灵活、极少的滑块小部件安装将以下内容添加到composer.json require部分: dd3v/yii2-unslider-widget": "*"并运行composer install 。用法 use dd3v\unslider\ Unslider ; echo...

    yii2-disqus-widget:Yii2 的 DISQUS 小部件

    composer require 2amigos/yii2-disqus-widget:~1.0 或添加 " 2amigos/yii2-disqus-widget " : " ~1.0 " 到应用程序的composer.json文件的 require 部分。 用法 显示 DISQUS 评论 use dosamigos\disqus\ ...

    yii2-login-widget:LoginWidget 是一个提供用户登录功能的小部件

    Yii2-登录小部件 ... "shiyang/yii2-login-widget": "*" 到composer.json文件的 require 部分。 用法 安装扩展后,只需通过以下方式在您的代码中使用它: &lt;?= \shiyang\login\ Login :: widget (); ?&gt;

    yii2-jpanelmenu-widget:用于 JPanelMenu jQuery 插件的 Yii2 包装器

    yii2-jpanelmenu-widget JPanelMenu 小部件是的包装器,“用于轻松创建和管理画布外内容。 ”。 安装 安装此扩展的首选方法是通过 。 要么跑 ...

    Yii框架学习笔记.pdf

    本篇学习笔记将详细介绍Yii框架的基本概念,包括请求处理流程、组件、事件与行为、错误和日志处理、国际化以及视图和控制台应用等方面。 ### 请求的处理流程 1. **项目入口脚本**:在Yii框架中,项目的入口脚本...

Global site tag (gtag.js) - Google Analytics