Yii 面包屑用法

来源:互联网 发布:淘宝男装销量店铺排行 编辑:程序博客网 时间:2024/05/20 04:50

(转)

Yii中的CBreadcrumbs简介~俗称:面包屑

功能介绍:zii.widgets 下的CBreadcrumbs类,其继承关系: CBreadcrumbs » CWidget » 

CBaseController » CComponent .源代码位置: 

framework/zii/widgets/CBreadcrumbs.php 

面包屑类显示一个链接列表以表明当前页面在整个网站中的位置.

由于面包屑通常会出现在网站的近乎所有的页面,此插件最好在视图的layout中进行部署.

你可以定义一个breadcrumbs属性并且在布局文件中指派给(网站)基础控制器插件,如下所示:

$this->widget('zii.widgets.CBreadcrumbs', array(    'links'=>$this->breadcrumbs,));


注意:

$this->breadcrumbs//是一个数组,具体是下面这样的$crumbss=array(    '特价专区'=>'http://www.baidu.com',    '猕猴桃'=>'',);
key=>value   key 链接的名字   value 链接的地址

我之前就不是这么写的,导致链接地址一直不对,不是我想要的.我又看了看Yii的官方手册




于是乎,你需要时,只需要在每个视图脚本中,指定breadcrumbs属性(就可以显示出网页导航了).

以上是官方提供的文档文件的介绍.

下面介绍视图文件中写法:

$this->breadcrumbs=array(      'Users'=>array('index'),      'Create',     // 形式 :  'key' =>'value'  key的位置相当于最后显示出来的a标签内的名字, value则相当于a标签的href属性.     // 'Create'表示当前页  故没有设置链接.);

面包屑  顶级导航Home 改为 中文 首页 方法


<?php $this->widget('zii.widgets.CBreadcrumbs', array('homeLink'=>CHtml::link('首页',Yii::app()->homeUrl), //设置顶级导航Home为中文 "首页"'htmlOptions'=>array('class'=>'lnk'),//添加样式'separator'=>'->',//breadcrumbs中链接之间的分隔符。默认是‘ » ’。'links'=>$this->breadcrumbs,)); ?>


上面的一些属性,Yii手册上有,请看手册~~
别一种方法,就是修改Yii框架系统文件.个人不建议这么做.
找到CBreadcrumbs.php      | framework/zii/jui/CBreadcrumbs.php
在116行.


public function run(){if(empty($this->links))return;echo CHtml::openTag($this->tagName,$this->htmlOptions)."\n";$links=array();if($this->homeLink===null)$links[]=CHtml::link(Yii::t('zii','Home'),Yii::app()->homeUrl); // 116行 Home改为你想要的中文文字elseif($this->homeLink!==false)$links[]=$this->homeLink;foreach($this->links as $label=>$url){if(is_string($label) || is_array($url))$links[]=strtr($this->activeLinkTemplate,array('{url}'=>CHtml::normalizeUrl($url),'{label}'=>$this->encodeLabel ? CHtml::encode($label) : $label,));else$links[]=str_replace('{label}',$this->encodeLabel ? CHtml::encode($url) : $url,$this->inactiveLinkTemplate);}echo implode($this->separator,$links);echo CHtml::closeTag($this->tagName);}}


0 0