CakePHPのViewファイルでは呼び出すViewファイルをテーマ化することで
テーマごとのデザインで任意に出力することができます。
例えば、特定のURLにアクセス時にAさんの場合はAのデザインテーマ、
Bさんの場合はBさんのデザインテーマで表示といったように表示をまたは
デザインを変更することが可能です。
では実際にテーマの機能を利用するにはどうするかというと、次のようになります。
まずテーマ機能を有効にしたいコントローラーにテーマ機能を利用できるように
次のように記述します。
var $view = 'Theme';
続いてテーマとなるViewファイルを用意します。
「app/views」内に「themed」ディレクトリを用意します。
作成後、テーマ名となるディレクトリを作成します。
ここではテーマ名を「design1」、コントローラ名「users」とします。
あとはこのテーマ内に「app/views」と同様に作成するだけとなります。
階層としては次のような形です。
- app
- views
- themed
- design1
- elements
- layouts
- users
- design1
- themed
- views
このような「design1」ディレクトリ同様に複数用意することでテーマを変更した際に
対象のテーマを呼び出すことができます。
基本のテーマファイルを指定する場合はコントローラー内では次のように記述します。
var $theme = 'design1';
この値を対象のテーマ名(ディレクトリ名)にすることでテーマの切り替えが可能となります。
前述の例で言うと「beforeFilter」などで切り替えて利用するかたちになるかと思います。
また指定したテーマが存在しない、またはテーマ内にViewファイルが存在しない場合は
通常の「app/views」ディレクトリを自動で参照してくれます。
コメント
[…] CakePHP Viewファイルのテーマ化 | WIDGET-INFO […]
[…] CakePHP Viewファイルのテーマ化 | WIDGET-INFO http://blog.widget-info.net/2009/09/cakephp_theme_view/ […]