如何在 yii 框架中创建主题?

Posted

技术标签:

【中文标题】如何在 yii 框架中创建主题?【英文标题】:How to create themes in yii framework? 【发布时间】:2013-01-16 07:31:05 【问题描述】:

我是 Yii 框架的新手。我之前在研究 drupal,drupal 制作网站的主题并不难管理。但我只想知道如何使用 Yii 框架为网站创建主题。

我浏览了很多网站,但仍然不知道从哪里开始。例如我检查了http://www.yiiframework.com/doc/guide/1.1/en/topics.theming。

现在我的疑问是:

    从哪里开始创建 Yii 主题?假设我想将 drupal 主题更改为 Yii,我该怎么做? 是否可以为不同的页面设置不同的主题?就像在 drupal 中使用 themekey 模块一样,我们可以为不同的页面设置多个主题。

如果有人能一步一步解释就好了。

【问题讨论】:

【参考方案1】:

您可以编辑布局(protected/views/layouts/..)。这些是围绕使用render() 呈现的单个视图呈现的包装视图,例如 site/index 调用索引视图(位于 protected/views/index.php) 使用:$this->render("index");

您可以使用以下方式更改每个操作的布局:$this->layout = "differentlayout";

您可以使用以下方式为 Controller 中的所有操作设置布局:public $layout='//layouts/differentlayout';

显然每个布局都可以有一个自定义结构并加载不同的 CSS 和 JS 文件。我知道这没有使用主题和theming,但它是迄今为止自定义 Yii 项目外观和感觉的最常见方式

这里有一些关于 YII 主题开发的有用链接:

http://www.yiiframework.com/doc/guide/1.1/en/basics.view http://www.yiiframework.com/wiki/249/understanding-the-view-rendering-flow/ http://mushfiq.me/2011/05/30/creating-a-yii-application-theme-from-a-html-template/

【讨论】:

爱斯基摩人:谢谢你的回答,但我没听清楚。你的意思是说视图/布局文件夹应该复制到主题文件夹中。 没问题 :) 不,你在目录结构中的位置编辑它。 在那种情况下,在里面创建一个新的主题文件夹有什么用。例如:'themes/mythemeName/....' 它的工作方式基本相同,因此您可以使用'theme' => 'theme_name' 在配置中声明主题,并覆盖主题文件夹中的视图/布局。我认为它背后的概念是提供一种在多个主题之间切换的“简单”方式,但我发现直接编辑受保护文件夹中的视图/布局在很大程度上没有使用并且更容易【参考方案2】:

您可以随时下载一些更简单的Yii Themes,看看它们是如何工作的。

--iM

【讨论】:

以上是关于如何在 yii 框架中创建主题?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 yii 中创建访问(查看页面)角色?

如何在 yii 权限模块中创建用户?

如何在 Yii2 中创建复杂的左外连接?

如何在 GridView::widget、Yii2 的搜索框中使用简单的下拉列表?

如何在yii2中创建名称值对数组

我们如何在Yii 2中的模块中创建单独的用户实例?