CI框架整合widget(页面格局)的方法


Posted in PHP onMay 17, 2016

本文实例讲述了CI框架整合widget(页面格局)的方法。分享给大家供大家参考,具体如下:

在WEB开发过程中,我们免不了要输出视图文件,而通常视图文件又一般都少不了头部、左侧栏以及底部这些公共元素。

如何让整个项目开发在涉及视图套用时引入敏捷的思维,提高效率呢?就不得不提一下widget。承然你也大可以使用HMVC模型。

这里仅介绍下widget如何结合入CI框架中:

1、在类文件MY_Controller.php中添加调用方法:

/*
* 如果$name存在则调用widget类及widget方法
*@param string $name
*/
protected function widget ($name = '')
{
    if (isset($name) && $name != '')
    {
      require_once BASE_WIDGET.$name.'.php';
    }
}

2、定义widget类文件:

<?php
/*------------
widget.php 组件包含自己的控制器,视图,模型(可以共用普通model)
*用来实现各页面都有的公共部分
@author crystal 20120106
--------------*/
class Widget extends MY_Controller
{
  private function __construct()
  {
    parent::MY_Controller();
  }
  /*** 获取当前类名*/
  private static function _getClass()
  {
    return __CLASS__;
  }
  public static function left()
  {
    $class = self::_getClass();
    $data['userinfo'] = MY_Controller::_getUserCookieInfo();
    $this->load->view('com/left.php',$data);
  }
}
?>

3、在视图文件中调用(在相应的控制器中应该先调用父类控制中的widget方法):

<!--left sider -->
<div>
<?php Widget::left();?>
</div>
...
<!--/left sider -->

希望本文所述对大家基于CodeIgniter框架的PHP程序设计有所帮助。

PHP 相关文章推荐
十天学会php(2)
Oct 09 PHP
php获取目录所有文件并将结果保存到数组(实例)
Oct 25 PHP
PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析
Aug 18 PHP
封装ThinkPHP的一个文件上传方法实例
Oct 31 PHP
php开发中的页面跳转方法总结
Apr 26 PHP
php源码分析之DZX1.5字符串截断函数cutstr用法
Jun 17 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
Aug 30 PHP
php记录搜索引擎爬行记录的实现代码
Mar 02 PHP
java解析json方法总结
May 16 PHP
thinkphp5修改view到根目录实例方法
Jul 02 PHP
laravel 输出最后执行sql 附:whereIn的使用方法
Oct 10 PHP
聊聊 PHP 8 新特性 Attributes
Aug 19 PHP
深入剖析浏览器退出之后php还会继续执行么
May 17 #PHP
CI框架出现mysql数据库连接资源无法释放的解决方法
May 17 #PHP
CI框架集成Smarty的方法分析
May 17 #PHP
CI框架中数据库操作函数$this-&gt;db-&gt;where()相关用法总结
May 17 #PHP
CI框架中redis缓存相关操作文件示例代码
May 17 #PHP
Yii2如何批量添加数据
May 17 #PHP
PHP并发多进程处理利器Gearman使用介绍
May 16 #PHP
You might like
PHP将进程作为守护进程的方法
2015/03/19 PHP
关于PHP 如何用 curl 读取 HTTP chunked 数据
2016/02/26 PHP
php使用pecl方式安装扩展操作示例
2019/08/12 PHP
Laravel 使用查询构造器配合原生sql语句查询的例子
2019/10/12 PHP
PHP中类与对象功能、用法实例解读
2020/03/27 PHP
javascript中callee与caller的用法和应用场景
2010/12/08 Javascript
jQuery的12招常用技巧分享
2011/08/08 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
2013/08/12 Javascript
nodejs通过phantomjs实现下载网页
2015/05/04 NodeJs
jquery实现点击查看更多内容控制段落文字展开折叠效果
2015/08/06 Javascript
基于Jquery制作图片文字排版预览效果附源码下载
2015/11/18 Javascript
AngualrJS中的Directive制作一个菜单
2016/01/26 Javascript
JS中跨页面调用变量和函数的方法(例如a.js 和 b.js中互相调用)
2016/11/01 Javascript
canvas实现环形进度条效果
2017/03/23 Javascript
深入理解Vue2.x的虚拟DOM diff原理
2017/09/27 Javascript
JavaScript基于面向对象实现的无缝滚动轮播示例
2020/01/17 Javascript
解决vuex数据页面刷新后初始化操作
2020/07/26 Javascript
JavaScript实现10秒后再次获取验证码
2020/12/02 Javascript
[01:05:24]Ti4 冒泡赛第二天 iG vs NEWBEE 3
2014/07/15 DOTA
[51:29]完美世界DOTA2联赛循环赛 Matador vs Forest BO2第一场 11.05
2020/11/05 DOTA
[54:26]完美世界DOTA2联赛PWL S3 Forest vs Rebirth 第一场 12.10
2020/12/12 DOTA
简单介绍Python中的decode()方法的使用
2015/05/18 Python
python网络编程之文件下载实例分析
2015/05/20 Python
python基于xmlrpc实现二进制文件传输的方法
2015/06/02 Python
获取python文件扩展名和文件名方法
2018/02/02 Python
Python matplotlib画图时图例说明(legend)放到图像外侧详解
2020/05/16 Python
python 如何调用远程接口
2020/09/11 Python
python 自定义异常和主动抛出异常(raise)的操作
2020/12/11 Python
3分钟英语演讲稿
2014/04/29 职场文书
环境卫生倡议书
2014/08/29 职场文书
寒山寺导游词
2015/02/03 职场文书
2015年社区工作总结
2015/04/08 职场文书
父亲节感言
2015/08/03 职场文书
法制教育讲座心得体会
2016/01/14 职场文书
python 如何用map()函数创建多线程任务
2021/04/07 Python
python读取mat文件生成h5文件的实现
2022/07/15 Python