修改应用的配置文件(protected/config/main.php)中加入

return array(

’theme’=>’basic’,

);

所有的视图文件必须位于views下 ,布局视图文件在views/layouts下 ,和系统视图文件在views/system下
例如,如果我们要替换PostController的create 视图文件为classic主题下,我们将保存新的视图文件为WebRoot/themes/classic/views/post/create.php。
 当我们调用render或renderPartial显示视图,相应的view(视图)文件以及布局文件将在当前激活的主题里(themes/$themeName/views/)寻找。如果发现,这些文件将被渲染。否则,就后退到应用的视图目录下(application/views/)寻找。
 在一个主题的视图内部,我们经常需要链接其他主题的资源文件。例如,我们可能要显示一个在主题下images目录里的图像文件,

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

使用例子:

WebRoot/

assets

protected/

.htaccess

components/

controllers/

models/

views/

layouts/

main.php

site/

index.php

themes/

basic/

views/

.htaccess

layouts/

main.php

site/

index.php

fancy/

views/

.htaccess

layouts/

main.php

site/

Index.php

如果在应用配置(protected/config/main.php)中配置

return arrray(

'theme' => 'basic',

)

Basic主题将生效,意味着应用的布局将使用 目录 themes/basic/views/layouts 下的视图,
站点的 index 视图将使用 目录 themes/basic/views/site 下的视图。若在主题中没有找到一个视图文件,
它 将后退到目录 protected/views。

Skins(换肤)

使用皮肤来系统化的定制视图中的 widget 的外观,

为了使用皮肤特征,我们首先需要改变应用配置(protected/config/main.php)来安装 widgetFactory 组件,配置如下:

return array(

’components’=>array(

’widgetFactory’=>array(

’class’=>’CWidgetFactory’,

),

),

);

属于同一个
widget 类的皮肤被存储在 一个名字和此 widget 类相同的单个PHP脚本文件中,默认地,所有这些皮肤文件存储在目录
protected/views/skins中,当使用主题时, Yii 将也在主题的视图目录中的 skins
目录寻找皮肤。(例如WebRoot/themes/$themeName/views/skins)

例如,我们创建一个名为 CLinkPager.php 的文件到目录 protected/views/skins(或者themes/$themeName/views/skins), 它的内容如下,

<?php

return array(

'default' => array(//

'nextPageLabel' => '上一页',

'prevPageLabel' => '下一页',

'maxButtonCount' => 10,

//'header' => '',

'cssFile' => Yii::app()->theme->baseUrl.'/css/pager.css'

),

'classic' => array(

'nextPageLabel' => '上一页classic',

'prevPageLabel' => '下一页classic',

//'header' => '',

'maxButtonCount' => 5,

'cssFile' => Yii::app()->theme->baseUrl.'/css/pager1.css',

),

);

?>

在上面,我们 CLinkPager widget 创建了两个皮肤: default 和 classic。 前者是我们不明确指定 CLinkPager 的 skin属性时使用的皮肤,
而后者是其skin属性被指定为 classic 时使用的皮肤。例如,在下面的视图代码中,
第一个 pager 将使用 default 皮肤而第二个使用 classic 皮肤:

<?php $this->widget('zii.widgets.CListView', array(

'summaryText' => '显示 {start}-{end} of {count} result(s).',

'pager' => array(),

'dataProvider'=>$dataProvider,

'itemView'=>'_view',

)); ?>

<?php $this->widget('zii.widgets.CListView', array(

'summaryText' => '显示 {start}-{end} of {count} result(s).',

'pager' => array('skin'=>'classic'),

'dataProvider'=>$dataProvider,

'itemView'=>'_view',

)); ?>

yii主题的更多相关文章

  1. YII 主题

    heming是一个在Web应用程序里定制网页外观的系统方式.通过采用一个新的主题,网页应用程序的整体外观可以立即和戏剧性的改变. 在Yii,每个主题由一个目录代表,包含view文件,layout文件和 ...

  2. YII 主题设置

    节日不同,站点显示不同主题.就是解决问题. 也制作多套视图. 不是必需为全部页面设置主题,假设没有.就依照正常视图显示 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5 ...

  3. Yii 2.x 多主题 - 多语言 配置

    语言:只要在原来模板的位置建立语言目录 多主题:要重新定义模板的根目录

  4. PhpStorm 8.x/9.x 快捷键设置/个性化设置,如何多项目共存?如何更换主题?

    1."自定义"常用快捷键(设置成跟Eclipse差不多) 按照路径:File -> Settings -> Appearance & Behavior -> ...

  5. yii模块下面的组件

    模块的定义就不写了,直接进入主题看目录和文件: application/modules/client/controllers/UserController.php <?php class Use ...

  6. yii开发一个web程序的基本流程

    1. 创建目录结构.在前面的章节Creating First Yii Application写的yiic工具可以帮助我们快速完成这步. 2. 配置 application.就是修改applicatio ...

  7. Yii的学习(1)--安装配置

    之前在sina博客写过Yii的文章,来到博客园之后,没再写过关于Yii的文章,正好端午假期没啥事,就结合以前的博客,Yii的官方文档,再加上最近的关于Yii的收获总结一下,写个系列~~ Yii是一个基 ...

  8. yii和wp做博客

    第一步,安装yii和wp: 第二步,创建protected/components/ExceptionHandler.php文件 <?php class ExceptionHandler { pu ...

  9. yii 多模板

    main.php: //替换所有模板 //加载文件名为first的模板 //       'theme'=>'theme1', 'components'=>array(           ...

随机推荐

  1. 微信小程序调用微信登陆获取openid及用户信息 java做为服务端

    转载的文章,很不错 https://blog.csdn.net/weilai_zhilu/article/details/77932630

  2. IP段,ASN与BGP之间的关系

    概览 IP段就是类似于1.0.2.0-1.0.2.255或者1.0.2.0/24的形式 ASN(Autonomous system number)自治系统编号 BGP(Border Gateway P ...

  3. css属性—position的使用与页面的分层介绍

    一.引言: 在css众多属性中,position算是里面用的比较多也相对来说比较重要的属性了,它对于单个标签的“定位”.标签之间的“相对位置定位”还有网页的分层来说十分重要! 二.“定位的实现”具体介 ...

  4. [UE4]Cast to OverlaySlot、Set Vertical Alignment、Get Slot,解决Child Widget垂直居中对齐问题

  5. 修改IP和DNS的dos命令

    修改IP,掩码,网关命令: netsh interface ip set address "本地连接" static 192.168.3.188 255.255.255.0 192 ...

  6. Http跨域

    一.传统 ajax跨域访问是一个老问题了,解决方法很多,比较常用的是JSONP方法,JSONP方法是一种非官方方法,而且这种方法只支持GET方式,不如POST方式安全. 即使使用jQuery的json ...

  7. JavaScript类继承, 用什么方法好

    JavaScript类继承, 用什么方法好 一个实例: 基类Car: function Car(color, year) { this.name = "car"; this.col ...

  8. Java - 23 Java 抽象类

    Java 抽象类 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类. 抽象类除了不 ...

  9. 《Linux 性能及调优指南》1.1 Linux进程管理

    https://blog.csdn.net/ljianhui/article/details/46718835 本文为IBM RedBook的Linux Performanceand Tuning G ...

  10. Android Notification通知栏的使用,通知栏在Android8.0系统不显示的问题;

    1.正常使用通知栏: /** * 创建通知栏管理工具 */ NotificationManager notificationManager = (NotificationManager) getSys ...