我使用CakePHP框架,并且我希望在我的项目中有多个模板。
有没有办法在CakePHP中实现多个模板?
例如,管理员可以在后台选择第一个或第二个模板,用户可以使用相同的模板。(就像在Joomla后端)。如果有任何方法,我如何实现它?
发布于 2013-01-23 16:42:35
我只是给你一个基本的概念,告诉你如何做到这一点。
在app_controller中,尝试下面的代码。
<?php
class AppController extends Controller
{
var $components = array( 'Auth','Session', 'RequestHandler','Email','Gzip.Gzip','SwiftMailer');
var $helpers = array( 'Javascript', 'Form', 'Html', 'Session','Time','Custom','Paginator','Text' );
function beforeFilter()
{
if(isset($this->params['admin']) && $this->params['admin'] == 1)
{
$this->layout = "admin";
}
else
{
$this->layout = "default";
}
}
?>在扩展app_controller add的其他控制器文件中,你必须有如下代码。
<?php
class OtherController extends Controller
{
var public $uses = array('ModelName');
function beforeFilter()
{
parent::beforeFilter();
}
?>您还可以将 $this->layout 覆盖到每个控制器操作。
发布于 2013-01-23 16:44:31
可以在View/layouts中创建不同的模板
不同风格的template_1.ctp、template_2.ctp
并创建将包括现有模板之一的default.ctp布局或在AppController中设置$this->layout = 'template_1';;
<?php
//default.ctp
$loadTemplate = 'template_1.ctp';//value from database or config file?
include_once($loadTemplate);
?>或者,您可以按照documentation使用主题
https://stackoverflow.com/questions/14474023
复制相似问题