2

我使用 CakePHP 框架,我想在我的项目中有多个模板。
有没有办法在 CakePHP 中实现多个模板?

例如,管理员可以在后端选择第一个或第二个模板,用户可以使用相同的模板。(就像在 Joomla 后端中一样)。如果有什么办法,我该如何实现?

4

2 回答 2

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每个控制器操作。

于 2013-01-23T08:42:34.720 回答
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);
?>

或者您可以根据文档使用主题

于 2013-01-23T08:44:31.487 回答