`
lyunabc
  • 浏览: 551434 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

Yii Framework 开发教程(47) 主题 Theme 示例

阅读更多

Theming是一个在Web应用程序里定制网页外观的系统方式。通过采用一个新的主题,可以非常方便的改变应用的外观。

在Yii,每个主题由一个目录代表,包含view文件,layout文件和相关的资源文件,如图片, CSS文件, JavaScript文件等。主题的名字就是他的目录名字。全部主题都放在在同一目录WebRoot/themes下 。在任何时候,只有一个主题可以被激活。

提示:默认的主题根目录WebRoot/themes可被配置成其他的。只需要配置themeManager应用部件的属性basePathbaseUrl为你所要的值。

要激活一个主题,设置Web应用程序的属性theme为你所要的名字。可以在application configuration中配置或者在执行过程中在控制器的动作里面修改。

注:主题名称是区分大小写的。如果您尝试启动一个不存在的主题,yii::app()->theme将返回null

主题目录里面内容的组织方式和application base path目录下的组织方式一样。例如,所有的view文件必须位于views下 ,布局view文件在views/layouts下 ,和系统view文件在views/system下。例如,如果我们要替换PostControllercreateview文件为classic主题下,我们将保存新的view文件为WebRoot/themes/classic/views/post/create.php

对于在module里面的控制器view文件,相应主题view文件将被放在views目录下。例如,如果上述的PostController是在一个命名为forum的模块里 ,我们应该保存createview 文件为WebRoot/themes/classic/views/forum/post/create.php。如果forum模块嵌套在另一个名为support模块里 ,那么view文件应为WebRoot/themes/classic/views/support/forum/post/create.php

本例通过修改Yii Framework 开发教程(11) UI 组件 ActiveForm示例,为它添加两个主提,为简单起见,两个主题名字分别为cyan,grey, 以其背景颜色命名。

首先在应用目录结构下创建themes 目录,然后创建cyan,grey 两个子目录,然后将缺省的protected/views分别复制到两个子目录下,作为Theme的初始版本。

201212129016

并使用Yii缺省的Css定义,也分别拷贝到两个主题子目录下,作为CSS的初始文件。

下面分别对两个主题下的CSS文件稍微做些修改,以示区别,修改css/main.css 修改body的背景色

body
{
	margin: 0;
	padding: 0;
	color: #555;
	font: normal 10pt Arial,Helvetica,sans-serif;
	background: #00FFFF;
}

分别该为Cyan和Grey的颜色。

然后修改layout/main.php 引用主题下的CSS文件,在一个主题的视图,我们经常需要链接其他主题资源文件。例如,我们可能要显示一个在主题下images目录里的图像文件。使用当前激活主题的baseurl属性,我们就可以为此图像文件生成如下url

yii: :app()->theme->baseUrl . '/images/FileName.gif'

修改后的布局文件如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<meta name="language" content="en" />
	<!-- blueprint CSS framework -->
	<link rel="stylesheet" type="text/css"
		href="<?php echo Yii::app()->theme->baseUrl; ?>/css/screen.css"
		media="screen, projection" />
	<link rel="stylesheet" type="text/css"
		href="<?php echo Yii::app()->theme->baseUrl; ?>/css/print.css"
		media="print" />
	<!--[if lt IE 8]>
	<link rel="stylesheet" type="text/css"
		href="<?php echo Yii::app()->theme->baseUrl; ?>/css/ie.css"
		media="screen, projection" />
	<![endif]-->

	<link rel="stylesheet" type="text/css"
		href="<?php echo Yii::app()->theme->baseUrl; ?>/css/main.css" />
	<link rel="stylesheet" type="text/css"
		href="<?php echo Yii::app()->theme->baseUrl; ?>/css/form.css" />
	<title><?php echo  Yii::app()->name . ' ' . Yii::app()->theme->name;    ?></title>
</head>

<body>

<h1>Theme Name:<?php echo Yii::app()->theme->name;?></h1>

<?php echo $content; ?>

</body>
</html>

定义好主题后,就可以通过配置Application的theme属性来设置当前主题:

return array(
    'theme'=>'cyan',
    ......
);

两个主题显示如下:

201212129017

201212129018

如果指定的主题不存在,相当于没有主题,将使用缺省的显示方式:

201212129019

本例下载

分享到:
评论

相关推荐

    YII Framework框架教程之使用YIIC快速创建YII应用详解

    主要介绍了YII Framework框架教程之使用YIIC快速创建YII应用的方法,详细分析说明了YII Framework框架使用YIIC命令行创建应用的相关技巧与注意事项,需要的朋友可以参考下

    Yii Framework API手册

    Yii Framework API手册是针对开发者的一款详尽参考资料,它包含了Yii框架的所有核心组件、类库以及扩展的使用方法和接口信息。Yii是一个高性能、基于组件的PHP框架,用于开发Web 2.0应用。API(Application ...

    yii framework框架 + yii app模板(基本、高级).zip

    yii framework框架 + yii app模板(基本、高级)

    YII Framework框架教程之日志用法详解

    YII Framework是一个基于PHP的高级Web应用开发框架,它提供了一套日志系统,以便开发者追踪和记录应用程序运行时的状态和潜在问题。本文将详细介绍YII中日志的配置、使用方法及相关注意事项,通过实例阐述如何在YII...

    Yii Framework 2.0 权威指南 pdf格式 中文高清离线版 有书签

    ### Yii Framework 2.0 权威指南知识点详解 #### 一、Yii框架概述 - **定义**:Yii是一款高效能、基于组件的PHP框架,主要用于加速现代Web应用的开发进程。其名称“Yii”(发音类似于“易”)在中国文化中有“极致...

    YII Framework框架教程之缓存用法详解

    首先,Yii框架的缓存是通过组件方式定义的,位于/yii_dev/yii/framework/caching目录下。该目录包括了多种缓存组件实现,例如CApcCache、CCache、CDbCache等,它们分别对应不同的缓存存储媒介,如APC、文件、数据库...

    yii framework 中文完全手册

    这个“yii framework 中文完全手册”提供了详尽的指南,帮助开发者理解和利用Yii的强大功能。在深入探讨之前,我们先简单介绍一下Yii框架的基本概念。 Yii,发音为"易",寓意“简易”,是一个快速、安全且专业的...

    Yii Framework 1.1.6

    Yii Framework 1.1.6 是一个高效、可扩展的 PHP 开发框架,它为开发者提供了构建大型Web应用所需的工具和功能。这个版本是Yii框架的稳定版本之一,发布于2011年,旨在提高开发效率并降低维护成本。 在Yii 1.1.6中,...

    Yii Framework v2.0.8.rar

    Yii Framework是一个高性能的PHP5的web应用程序开发框架。通过一个简单的命令行工具 yiic 可以快速创建一个web应用程序的代码框架,开发者可以在生成的代码框架基础上添加业务逻辑,以快速完成应用程序的开发。

    Yii Framework框架开发微信公众平台示例

    主要介绍了Yii Framework框架开发微信公众平台,结合实例形式分析了使用Yii Framework框架开发微信公众平台相关原理、功能代码与实现技巧,需要的朋友可以参考下

    Yii Framework v1.1.19

    Yii是一个高性能的PHP5的web应用程序开发框架。通过一个简单的命令行工具 yiic 可以快速创建一个web应用程序的代码框架,开发者可以在生成的代码框架基础上添加业务逻辑,以快速完成应用程序的开发。

    yii framework 1.1.14 chm文档

    yii framework 1.1.14 chm文档,从官方html文档编译,展示效果很好.

    Yii Framework v1.10 Class Reference

    Yii Framework 1.10的API手册

    Yii Framework框架中事件和行为的区别及应用实例分析

    主要介绍了Yii Framework框架中事件和行为的区别及应用,结合实例形式分析了Yii Framework框架中事件和行为的相关概念、原理、区别及应用操作技巧,需要的朋友可以参考下

    PHP实例开发源码-Yii Framework php框架.zip

    PHP实例开发源码—Yii Framework php框架.zip PHP实例开发源码—Yii Framework php框架.zip PHP实例开发源码—Yii Framework php框架.zip

    Yii2.0打造京东商城平台PHP电商实战Yii2.0视频教程

    教程名称:Yii2.0 打造京东商城平台 PHP电商实战 Yii2.0视频教程 教程内容: 包含了电商的所有功能模块:商品展示、购物车功能、下单支付、发货、确认收获、商品管理、订单管理。电商API接口开发。Yii2.0级基于Yii...

    yii framework 中文手册

    yii framework 最全最新的中文手册

Global site tag (gtag.js) - Google Analytics