在CakePHP中自定义元素

时间:2014-05-04 05:15:00

标签: cakephp elements

我正在使用CakePHP 2.3.6。现在,我正在做一个项目,我有几个插件。现在,我希望Elements(header, footer, sidebar)将根据不同的插件显示在默认布局中。我试图用一个例子解释它:

在我的default layout中,我有这个标题:

<?php echo $this->element('header');?>

现在,我想在"AdminPanel" plugin中保持相同的布局,所以我不会在该插件中使用不同的布局。但是,当我调用该插件时,我希望在同一布局中使用不同的header(say, admin-header.ctp)来重现普通header(header.ctp)。那可能吗 ?如果有,怎么样?请帮帮我。

感谢。

1 个答案:

答案 0 :(得分:0)

在你的AppController beforeFilter或者之前放置类似的东西:

if (isset($this -> params['prefix']) && $this -> params['prefix'] == 'admin') {
 $this->set('layout_type', 'admin');
}else{
 $this->set('layout_type', 'public');
}

在default.ctp布局中

if('layout_type' == 'admin'){
echo $this->element('admin_header');
}else{
echo $this->element('header');
}