在yii框架中的主题和布局

时间:2012-04-25 10:35:32

标签: php layout yii themes

我是Yii Framework的新手,并创建了基于模块的CRM。 使用不同的教程我可以创建自己的主题,但现在我被困在一点。

在我的主题中,上方<nav>和左<nav>仍然是整个应用中的相同,直到用户登录。这就是为什么我把它作为我的一部分 main.php ,但在登录页面中没有要显示的按钮,只有简单的登录表单,包含2个 textfields

如何使用自定义主题在我的应用程序中实现此表单?

我尝试在该特定操作中定义布局但未成功。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:13)

为视图使用自定义布局是正确的方法。 您可以在控制器操作或视图中设置布局。

$this->layout = "//layouts/mylayout";

请注意,默认布局 column1.php column2.php 也使用 main.php 布局文件。

答案 1 :(得分:7)

逐步尝试:

  1. 创建新主题

    您可以创建新主题并将其添加到目录中 的 Application_Root /主题

    查看themes / classic目录以了解目录的结构。 重要档案(现阶段)是: - 的 Application_Root /主题/视图/布局/ main.php

  2. 自定义主题内容

    将css,image,js文件等复制到正确的目录,然后根据自己的喜好更改main.php文件。例如,如果你的main.php说

    &lt; link href =“css / mystyle.css”rel =“stylesheet”&gt;

    然后你会有一个文件 的 Application_Root / CSS / mystyle.css

  3. 创建内容占位符。

    在main.php的某处,会有一个动态文本的占位符,由。指定。

    &lt;?php echo $ content; ?&GT;

  4. 告诉yii使用主题。 通过在最后一行(包含右括号)之前添加以下行来更改文件 Application_Root / protected / config / main.php

    '主题'=&GT; 'surveyhub'

  5. 创建布局占位符。

    创建一个HTML段,该段将写入main.php的$ contents部分。称它为例如one_column.php。因此,文件路径为 Application_Root / themes / views / layouts / one_column.php 在该文件中,您希望放置动态文本,创建一个占位符。

    &lt;?php echo $ content; ?&GT;

  6. 告诉Yii使用布局。

    在文件 Application_Root / protected / components / Controller.php 中,添加或修改布局变量以读取:

    public $ layout ='// layouts / one_column.php';

  7. 刷新页面