2

CakePHPフレームワークを使用していて、プロジェクトに複数のテンプレートが必要です。
CakePHPに複数のテンプレートを実装する方法はありますか?

たとえば、管理者はバックエンドで最初または2番目のテンプレートを選択でき、ユーザーは同じテンプレートを使用できます。(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 addを拡張する他のコントローラーファイル内には、以下のコードが必要です。

<?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.ctptemplate_2.ctpさまざまなスタイルで

そしてdefault.ctp、既存のテンプレートの1つを含むか$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 に答える