我使用CakePHP框架,我希望在我的项目中有多个模板 有没有办法在CakePHP中实现多个模板?
例如,管理员可以在后端选择第一个或第二个模板,用户可以使用相同的模板。 (就像在Joomla后端)。如果有任何方法,我该如何实现?
答案 0 :(得分:5)
只是告诉你如何做到这一点的基本想法。
在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的其他控制器文件中,你必须拥有如下代码。
<?php
class OtherController extends Controller
{
var public $uses = array('ModelName');
function beforeFilter()
{
parent::beforeFilter();
}
?>
您还可以将$this->layout
覆盖到每个控制器操作。
答案 1 :(得分:1)
您可以使用此链接 http://book.cakephp.org/1.3/en/The-Manual/Developing-with-CakePHP/Views.html
我不使用此功能,但我希望此链接可以帮助您。
答案 2 :(得分:1)
您可以在View/layouts
template_1.ctp
,template_2.ctp
具有不同的风格
并创建default.ctp
布局,其中包含一个现有模板或在$this->layout = 'template_1';
中设置AppController
;
<?php
//default.ctp
$loadTemplate = 'template_1.ctp';//value from database or config file?
include_once($loadTemplate);
?>
或者您可以按照documentation
使用主题