0

我需要做这样的事情:

我在 /themes/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 文件。

此外,一些图像将包含在主题中,其他图像将是单独的模块。

4

2 回答 2

1

您可以使用 renderPartial 函数来加载布局的各个部分。

<?= $this->renderPartial('webroot.themes.' . Yii::app()->theme->name . '.views.layouts.' . Yii::app()->layout . '.<PART_OF_LAYOUT>') ?>
于 2013-02-18T13:10:02.817 回答
0

我不同意在 Internet 的许多帮助论坛中,当有人要求为模块设置主题时,每个人都会建议主题文件夹的路径别名。我认为这是错误的,因为它意味着要拆分模块,并且模块应该是可以跨项目使用的黑盒。只有在多个模块之间共享一个主题时,此类论坛中给出的建议才有效。如果有人想在模块中“打包”一个主题,她可以: - 将一个 init 函数添加到模块的控制器 - 在该 init 中,使用类属性布局和路径别名,像这样,假设一个模块的 id是“样本”:然后添加到 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

于 2015-01-14T15:44:27.793 回答