CakePHPフレームワークを使用していて、プロジェクトに複数のテンプレートが必要です。
CakePHPに複数のテンプレートを実装する方法はありますか?
たとえば、管理者はバックエンドで最初または2番目のテンプレートを選択でき、ユーザーは同じテンプレートを使用できます。(Joomlaバックエンドのように)。方法がある場合、どうすればこれを実装できますか?
それをどのように行うことができるかについての基本的な考えをあなたに与えるだけです。
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
すべてのコントローラーアクションに上書きすることもできます。
でさまざまなテンプレートを作成できますView/layouts
template_1.ctp
、template_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);
?>
または、ドキュメントに従ってテーマを使用することもできます