在yii框架中的主题和布局

Cod*_*ank 8 php layout themes yii

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

在我的主题中,整个应用程序的上部<nav>和左部<nav>保持不变,直到用户登录.这就是为什么我将它作为main.php的一部分,但在登录页面中没有按钮显示,只是简单的登录表单有2个文本字段.

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

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

sch*_*unk 13

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

$this->layout = "//layouts/mylayout";
Run Code Online (Sandbox Code Playgroud)

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


cra*_*ter 7

一步一步地尝试:

  1. 创建新主题

    您可以创建一个新主题并将其添加到Application_Root/themes目录中 .

    查看themes/classic目录以了解目录的结构.重要文件(在此阶段)是: - Application_Root/themes/views/layouts/main.php

  2. 自定义主题内容

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

    <link href ="css/mystyle.css"rel ="stylesheet">

    然后你将有一个文件 Application_Root/css/mystyle.css

  3. 创建内容占位符.

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

    <?php echo $ content; ?>

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

    '主题'=> 'surveyhub'

  5. 创建布局占位符.

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

    <?php echo $ content; ?>

  6. 告诉Yii使用布局.

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

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

  7. 刷新页面