zoukankan      html  css  js  c++  java
  • yii 修改模块使用的布局文件

    方法一:
    yii模块默认使用系统当前的主题布局文件,如果在主配置文件中配置了主题比如:

    'theme'=>'mythm',
    那么yii的模块就使用 protected/themes/mythm/views/layouts 下的布局文件;
    如果未配置主题,那么 yii的模块就使用  protected/views/layouts 下的布局文件, 总之默认不是使用自身目录 protected/modules/my_module/views/layouts 下的布局文件。
     
    于是想到去配置模块$layout属性
    'my_module' => array(
    'layout'=>'main', //这个属性的默认值是 //layout/main
    ), 
    但没有起作用,原因在于模块下的controller的$layout值仍然是 //layouts/main
    为了一劳永逸解决这个问题,在protected/modules/my_module/controllers里创建 DadController继承Controller
    class DadController extends Controller {
    public $layout = 'main';
    }
    所有的Controller都去继承DadController即可。 别忘了去主配置文件配置DadController的引入目录:
    'import'=>array(
    'application.models.*',
    'application.components.*',
    'application.modules.my_module.controllers.*',
    ),

    方法二:

    访问index.php?r=admin/default/index时,默认使用了protected/views/layout /main.php,如果想使用模块自己的layout文件(protected/modules/admin/views/layout /main.php),需要修改protected/modules/admin/controllers /DefaultController.php,在这个文件内添加下面代码:

    public  $layout = 'application.modules.admin.views.layouts.main'; 

    或者

    public  $layout = '/layouts/column2';


    方法三:
    在模块入口文件 beforeControllerAction中添加处理代码,这个方法发生于动作执行前:(例如AdminModule.php)
        public function beforeControllerAction($controller, $action)
        {
             $controller->layout = 'application.modules.admin.views.layouts.book';
            if(parent::beforeControllerAction($controller, $action))
            {
                // this method is called before any module controller action is performed
                // you may place customized code here
                return true;
            }
            else
                return false;
        }

  • 相关阅读:
    《JS权威指南学习总结--3.8类型转换》
    php基础-1
    django的url分配和url捕获参数
    Django项目的创建和设计模式
    1.Tensorflow的基本概念:
    linux下安装pycharm
    url参数和字典的相互转化
    MySQL数据库一
    利用伪装文件夹实现对文件的加密-当然如果你懂,这是很好破解的,只是障眼法而已
    数组有N+M个数字, 数字的范围为1 ... N, 打印重复的元素, 要求O(M + N), 不可以用额外的空间
  • 原文地址:https://www.cnblogs.com/jshen/p/3731941.html
Copyright © 2011-2022 走看看