CakePHP

CakePHP Viewファイルのテーマ化

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」ディレクトリ同様に複数用意することでテーマを変更した際に
対象のテーマを呼び出すことができます。
基本のテーマファイルを指定する場合はコントローラー内では次のように記述します。

var $theme = 'design1';

この値を対象のテーマ名(ディレクトリ名)にすることでテーマの切り替えが可能となります。
前述の例で言うと「beforeFilter」などで切り替えて利用するかたちになるかと思います。

また指定したテーマが存在しない、またはテーマ内にViewファイルが存在しない場合は
通常の「app/views」ディレクトリを自動で参照してくれます。

コメント

  1. […] CakePHP Viewファイルのテーマ化 | WIDGET-INFO […]

  2. […] CakePHP Viewファイルのテーマ化 | WIDGET-INFO http://blog.widget-info.net/2009/09/cakephp_theme_view/ […]