如果在views里面添加cssfile,默认会输出到最上面,这样的话,有时候views里注册的cssfile的某些样式会被layout里注册的cssfile的样式覆盖。造成显示问题。此变态类就是让在views层添加的cssfile输出到所有cssfile的最下面。把layout的样式覆盖掉。
/**
* Description of BTClientScript
* 变态处理css顺序问题。。。
* @author bamboo
*/
class BTClientScript extends CClientScript
{
protected $secondCssFiles = array();
public function registerSecondCssFile( $url, $media='' )
{
$this->secondCssFiles[$url] = $media;
$params = func_get_args();
$this->recordCachingAction('clientScript', 'registerCssFile', $params);
return $this;
}
public function render( &$output )
{
if (!empty($this->secondCssFiles))
{
foreach ($this->secondCssFiles as $cssFile => $media)
$this->cssFiles[$cssFile] = $media;
}
parent::render($output);
}
}
然后在config里配置
'components' => array(
'clientScript' =>array(
'class' => 'BTClientScript',
),
...
),
如果大家有更好的方法,请告诉我~~~