我需要做类似的事情:
我在/ themes / panel中有主题“panel”,并且布局/themes/panel/views/layouts/main.php带有示例内容
<a>$content</a>
我在/ protected / modules / admin中有模块“admin”,并且布局/protected/modules/admin/view/layouts/main.php带有示例内容
<b>$content</b>
最后我想要
<a><b>view</b></a>
另外在/themes/panel/views/layouts/main.php我需要从模块加载css文件。
在其他解释中: 我有一个模板用于所有面板(标题,css文件,页脚),但每个面板需要单独的布局(只有菜单等内容更改的中间)和一个或多个单独的css文件。
另外一些图像将包含在主题中,其他图像将是模块的个体。
答案 0 :(得分:1)
您可以使用renderPartial函数加载布局部分。
<?= $this->renderPartial('webroot.themes.' . Yii::app()->theme->name . '.views.layouts.' . Yii::app()->layout . '.<PART_OF_LAYOUT>') ?>
答案 1 :(得分:0)
我不同意在互联网的许多帮助论坛中,当有人要求主题模块时,每个人都建议使用主题文件夹的路径别名。我认为这是错误的,因为它意味着模块被拆分,模块应该是一个可以跨项目使用的黑盒子。只有在几个模块之间共享主题时,此类论坛中提供的建议才有效。如果有人想要&#34;打包&#34;一个模块内的主题,她可以: - 向模块的控制器添加init函数 -inide init,使用类属性布局和路径别名,像这样,使用一个id为&#34; Sample&#34;的模块: 然后你添加到SampleCOntroller.php:
public function init() {
//BELOW: it will use the layouts/main.php inside the module.
$this->layouts = "sample.views.layouts.main";
}
哟可以在这里查看路径别名: http://www.yiiframework.com/doc/guide/1.1/en/basics.namespace