`

YII中创建自己的widget

    博客分类:
  • Yii
 
阅读更多

1.构建自己的widget testWidget.php

在目录 /protected/widget/test/testWidget.php

 

<?php

    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视图变量',
            ));
        }
}
 

2.创建对应的widget view

/protected/widget/test/views/test.php

 

<?php
    echo $str;
 

3.调用自定义的widget

 

<div class="msg">
<?php echo CHtml::encode($message); ?>
</div>

自定义widget开始
<div>
<?php
    $this->beginWidget('application.widget.test.testWidget');
?>
</div>


<?php $this->endContent(); ?>
</br>自定义widget结束</br>


<hr>
<?php
    Yii::import('application.mylib.MyTestClass');
    
    echo Yii::app()->controller->id;
    
    echo '<hr>';
    
    echo MyTestClass::getName();
?>

 

ps:

在控制器render视图的时候,如果不想用默认的layout,可以直接使用如下方式

 

$this->renderPartial('test',array());
 

 

要创建一个新的挂件(widget),我们主要是要继承两个方法:CWidget::init()和 CWidget::run(), 
CWidget::init 调用是发生在我们使用 $this->beginWidget 将挂件插入到一个view里面, 
CWidget::run 调用是发生在我们使用 $this->endWidget 这个方法的时候。 
如果我们想捕捉和处理两者之间的方法核查办上显示的内容,我们可以在CWidget::init开始输出缓冲,然后在CWidget::run中检索缓冲输出 并作进一步处理。

 

分享到:
评论

相关推荐

    yii 自定义widget地址联动

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

    Yii中创建自己的Widget实例

    Widget在Yii中扮演的角色相当于小程序,它封装了界面展示和逻辑处理,使得开发者可以在不同的地方轻松地重用相同的代码块。 创建一个自定义的Widget实例包括以下几个步骤: 1. 调用Widget:在视图文件(.php文件)...

    Yii 自定义Widget Portlet

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

    Yii2中文手册(中文教程完整版)

    编撰中 创建表单 已定稿 输入验证 编撰中 文件上传 待定中 多模型同时输入 显示数据 编撰中 格式化输出数据 待定中 分页(Pagination) 待定中 排序(Sorting) 编撰中 数据提供器 编撰中 数据小部件 编撰中 主题 ...

    yii中widget的用法

    本文实例讲述了yii中widget的用法。分享给大家供大家参考。具体分析如下: WIDGET定义很简单,如果你在/protected/widget/test/下建立了一个名为“testWidget.php”的widget。 在视图中调用需要这样写: 复制代码 ...

    yii2框架中使用下拉菜单的自动搜索yii-widget-select2实例分析

    在Yii2框架中实现带有自动搜索功能的下拉菜单,通常我们会利用第三方的扩展库Yii-Widget-Select2。通过使用这一组件,我们可以为用户提供更为灵活和动态的界面交互方式。本文将详细介绍如何在Yii2框架中使用Select2...

    yii1.1版本资料整理

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

    Yii框架PDF中文文档

    **扩展Yii**:介绍了如何使用现有的扩展、创建自己的扩展以及如何使用第三方库。 **测试**:包括定义fixture、单元测试、功能测试等内容。测试是保证软件质量的重要手段之一,在Yii框架中有很好的支持。 #### 五、...

    yii2-master

    Yii 2.0,简称Yii2,是基于组件、面向对象的PHP框架,专为高效构建Web 2.0应用程序而设计。...无论你是初学者还是经验丰富的开发者,都能在Yii2中找到适合自己的开发方式,快速实现高质量的Web应用。

    datagrid+yii2分页查询

    现在,我们引入Datagrid组件,它是Yii2中的GridView widget,用于显示数据。在视图文件(如 `_grid.php`)中,我们可以配置 GridView: ```php use yii\grid\GridView; use yii\data\ActiveDataProvider; $data...

    yii2-widget-摩纳哥

    "yii2-widget-monaco"就是这样的一个Widget,它将Monaco编辑器集成到Yii2应用中,允许开发者快速创建代码编辑功能,而无需手动处理JavaScript和CSS资源的加载。 使用此插件的步骤通常包括以下几个方面: 1. **安装...

    Widget 应用实例

    【标题】"Widget 应用实例" 在Android开发中,Widget是桌面小...通过阅读源码,开发者可以更深入地理解Widget的工作原理,并将其应用到自己的项目中。同时,博主提供的工具性示例有助于加速开发过程,提高开发效率。

    YII快速入门教程

    ### YII快速入门教程知识点详解 #### 一、基本概念 **1. 入口文件** - **定义**: 入口文件是启动Yii框架的第一个PHP文件。它负责加载Yii框架的核心文件并设置运行环境。 - **作用**: 初始化环境变量、加载配置...

    Agile Web Application Development with Yii 1.1 and PHP5

    书中的内容将涵盖单元测试、集成测试,以及Yii提供的测试工具,如CodeCeption,帮助开发者建立可靠的测试框架,确保代码质量。 最后,本书可能还会讲解如何部署和优化Yii应用,包括配置服务器环境、性能调优技巧...

    yii2.0-Ueditor百度编辑器

    3. **创建控制器和视图**:在Yii2.0的控制器中,创建一个方法来处理Ueditor的上传请求,比如图片上传。在视图文件中,使用Ueditor的Widget来渲染编辑器,如下所示: ```php use dosamigos\ueditor\UeditorWidget; ...

    Yii框架文档(2010.7.18)

    在Yii框架中,开发流程涉及使用表单、创建模型和动作、收集表格输入,以及可能使用FORMBUILDER工具。此外,应用开发涉及数据库的访问和操作,包括使用数据访问对象(DAO)和Active Record。 ### 使用表单 Yii提供了...

    Yii_权威指南

    - **创建扩展**:指导开发者如何开发自己的扩展。 - **使用第三方类库**:整合第三方 PHP 库以增强功能。 #### 五、测试 - **概述**:阐述 Yii 中的测试框架。 - **定义 Fixtures**:创建测试数据集。 - **单元测试...

Global site tag (gtag.js) - Google Analytics