我是Yii Framework的新手,并创建了基于模块的CRM。 使用不同的教程我可以创建自己的主题,但现在我被困在一点。
在我的主题中,上方<nav>
和左<nav>
仍然是整个应用中的相同,直到用户登录。这就是为什么我把它作为我的一部分 main.php ,但在登录页面中没有要显示的按钮,只有简单的登录表单,包含2个 textfields 。
如何使用自定义主题在我的应用程序中实现此表单?
我尝试在该特定操作中定义布局但未成功。任何帮助将不胜感激。
答案 0 :(得分:13)
为视图使用自定义布局是正确的方法。 您可以在控制器操作或视图中设置布局。
$this->layout = "//layouts/mylayout";
请注意,默认布局 column1.php 和 column2.php 也使用 main.php 布局文件。
答案 1 :(得分:7)
逐步尝试:
创建新主题
您可以创建新主题并将其添加到目录中 的 Application_Root /主题强>
查看themes / classic目录以了解目录的结构。 重要档案(现阶段)是: - 的 Application_Root /主题/视图/布局/ main.php 强>
自定义主题内容
将css,image,js文件等复制到正确的目录,然后根据自己的喜好更改main.php文件。例如,如果你的main.php说
&lt; link href =“css / mystyle.css”rel =“stylesheet”&gt;
然后你会有一个文件 的 Application_Root / CSS / mystyle.css 强>
创建内容占位符。
在main.php的某处,会有一个动态文本的占位符,由。指定。
&lt;?php echo $ content; ?&GT;
告诉yii使用主题。 通过在最后一行(包含右括号)之前添加以下行来更改文件 Application_Root / protected / config / main.php 。
'主题'=&GT; 'surveyhub'
创建布局占位符。
创建一个HTML段,该段将写入main.php的$ contents部分。称它为例如one_column.php。因此,文件路径为 Application_Root / themes / views / layouts / one_column.php 在该文件中,您希望放置动态文本,创建一个占位符。
&lt;?php echo $ content; ?&GT;
告诉Yii使用布局。
在文件 Application_Root / protected / components / Controller.php 中,添加或修改布局变量以读取:
public $ layout ='// layouts / one_column.php';
刷新页面