我想在CakePHP中创建我的自定义主题。我在哪里可以保存我的块在CakePHP目录结构,将包含我所有的菜单链接?如何从View'Themed'MyTheme'Layouts'default.ctp
获取文件?
要么使用元素(如果导航条在每个视图上显示),要么使用视图块(如果导航条只在某些视图上显示)。
在默认情况下。CTP文件你只会做…
echo $this->element('navbar');
显示视图/元素/导航栏。ctp到视图/布局/默认。CTP(如果使用默认布局)。
要访问:View'Themed'MyTheme'Layouts'default.ctp
,在(Cake 2.1+)中,您必须像这样告诉Cake您想使用哪个主题:
public $theme = 'MyTheme';
// or override in an action:
$this->theme = 'MyTheme';
:
$this->layout = 'default';
将参考您的View'Themed'MyTheme'Layouts'default.ctp
。
如果cake在MyTheme
中找不到请求的视图文件,它将返回app/View
来找到它。
所以如果你把你的菜单在View/Elements/menu.ctp
,你所有的主题将能够访问它。如果您想为MyTheme
覆盖它,只需在MyTheme
中创建一个Elements/menu.ctp
。
如果我没记错的话,这个过程与以前版本的蛋糕略有不同。
把它放在/App/Views/Layouts
下。如果您想在任何地方使用它,调用它default.ctp
,它将自动被使用。否则,给它一个不同的名字,然后在控制器中do:
public function some_action() {
$this->layout = 'mylayout';
}
这将显示some_action
使用您的布局,而不是默认的