【问题标题】:Style admin page in YiiYii 中的样式管理页面
【发布时间】:2014-11-19 21:24:36
【问题描述】:

我又来这里问一个关于 yii 框架的问题。

我在views/myviewname/admin.php. 下有一个页面 我在views/myotherviewname/admin.php. 下有一个页面 现在我想给这些页面另一种风格。但是我该怎么做呢?

我在themes/classis/views/myviewname/admin.php 下创建了一个页面,在该文件中我得到了这个:

<?php /* @var $this Controller */ ?>
<?php echo $content; ?>

但我得到一个错误。因为$content 没有定义。

我如何设置这些页面的样式?如果我可以同时设置所有管理页面的样式就好了。

【问题讨论】:

  • 你试过像$this-&gt;layout='myviewname/admin.php';这样改变你的控制器的布局吗
  • @sush,它肯定会得到好的文件。但是我如何在新样式文档中回显该页面的内容?因为我收到错误,所以我知道它正在加载文件。这样就可以了
  • 类 Controller 扩展了 CController 吗?其他问题,你是如何渲染 admin.php 的?

标签: php css templates yii


【解决方案1】:

首先,不可否认$content变量会被称为undefined,因为它只能用于Layouts,不能用于Views

您可能知道,如果您已经为您的应用程序设置了主题(在主配置文件中由'theme'=&gt;'myTheme'),Yii 会在themes/myTheme 中查找该主题,并且所有视图都将在themes/myTheme/views/x/y.php 中呈现而不是@ 987654328@。此外,您的布局将被位于 themes/myTheme/layouts 中的布局覆盖。

现在,假设我们要创建 2 个主题:

  1. 黑暗主题
  2. 轻主题

我们应该创建如下结构:

+themes
    +darkTheme
        +views    
             +layouts
                 +main.php
                 +myLayout1.php
                 +myLayout2.php
             +myController
                 +myView1.php
    +lightTheme
        +views    
             +layouts
                 +main.php
                 +myLayout1.php
                 +myLayout2.php
             +myController
                 +myView1.php

我们有一个main.php,它包含我们的基本主题结构(骨架),以及两个分别名为myLayout1.phpmyLayout2.php 的布局。此外,我们已经在基本控制器中定义了一个默认布局(通常为Controller.php),如下所示:

public $layout='//layouts/myLayout1';

现在,我们有一个主布局,默认显示myLayout1 中的所有内容。我们可以改变布局,如下所示:

$this->layout="myLayout2";

我们还可以更改应用程序主题,如下所示:

Yii::app()->theme="lightTheme";

注意:主题名称区分大小写。如果你尝试激活一个不存在的主题,Yii::app()->theme 将返回 null。

以上代码可以写入beforeAction()方法或每个动作。请注意,如果您渲染myView1($this-&gt;render('myView1')) 并且主题设置为darkTheme,Yii 将渲染themes/darkTheme/views/myController/myView1.php 而不是views/myConteoller/myView1.php


为了更清楚,$content 将用于布局。此外,值得注意的是,$content 将被视图内的所有内容所取代。所以如果要修改整个页面的schema,就必须修改main.php布局。前面,如果你想修改视图内容的样式,你需要修改你的布局。

【讨论】:

猜你喜欢
  • 2020-11-22
  • 2012-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多