yii 修改模块使用的布局文件
2014-05-16 12:37
281 查看
方法一:
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;
}
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;
}
相关文章推荐
- yii 修改模块使用的布局文件
- Yii2 使用五 模块布局文件
- python 使用模块augeas修改类似a=b的配置文件
- 关于后盾网yii框架的学习小结(5)--验证码的使用与规则的设置,为后台模块设置独立的布局
- ThinkPHP 3.2.x多个模块使用公共Layout布局文件
- yii 布局文件使用说明
- 使用fileinput模块进行原地修改文件 分类: python 小练习 2013-08-13 16:47 618人阅读 评论(0) 收藏
- Android-自定義控件使用(方便修改控件的風格,只修改布局文件)
- [置顶] android反编译-修改别人apk(如何无视R文件,使用新增布局xml drawable等)
- 关于后盾网yii框架的学习小结(5)--验证码的使用与规则的设置,为后台模块设置独立的布局
- 使用fileinput模块进行原地修改文件
- yii 如何在布局文件里面使用多个变量?
- 使用XCACLS修改文件和文件夹权限
- 对gcc搜索路径的研究/以及不修改/etc/ld.so.conf使用非默认路径下的库文件--LD_LIBRARY_PATH
- 使用python的ConfigParser模块方便的读取配置文件
- 源文件与模块生成时的文件不同。仍要让调试器使用它吗?
- 小技巧: 使用shell命令修改多个文件(转)
- 使用FSO修改文件夹的名称实现文件转移防盗链
- Linux下使用md5sum查看文件及程序是否被修改
- tcl/tk实例详解——修改目录下所有文件(使用一个字符串代替另外一个)