3.9.4 テーマ

テーマの利点は、素早く簡単にページの見た目を変更できることです。

テーマを使用するには、コントローラにデフォルトのビュークラスの代わりに ThemeView クラスを使用するように設定する必要があります。

class ExampleController extends AppController {
    var $view = 'Theme';
}
  1. class ExampleController extends AppController {
  2. var $view = 'Theme';
  3. }

どのテーマをデフォルトとして使用するか宣言するために、コントローラ内でテーマ名を指定します。

var $theme = 'example';
  1. var $theme = 'example';

アクション内あるいは beforeFilter, beforeRender コールバック関数内でテーマ名を設定・変更できます。

$this->theme = 'another_example';
  1. $this->theme = 'another_example';

テーマビューファイルは、 /app/views/themed/ フォルダ内におく必要があります。テーマフォルダ内では、テーマ名と同じ名前のフォルダを作成します。それ以下については、/app/views/themed/example/ フォルダ内のフォルダ構造は /app/views/ と全く同じです。

たとえば、Post コントローラの edit アクション用のビューファイルは、/app/views/themed/example/posts/edit.ctp に置きます。レイアウトファイルは、/app/views/themed/example/layouts/ に置きます。

ビューファイルがテーマ内に見つからない場合、CakePHP は /app/views/ フォルダ内のビューファイルを使用します。

テーマに指定している CSS あるいは JavaScript ファイルがある場合、webroot 内のテーマ用フォルダに保存することができます。たとえば、スタイルシートは /app/webroot/themed/example/css/ に保存し、JavaScript ファイルは /app/webroot/themed/example/js/ に保存します。

すべてのCakePHP の組み込みヘルパーはテーマを考慮し、自動的に正しいパスを生成します。ビューファイルのように、ファイルがテーマフォルダにない場合、メインの webroot フォルダがデフォルトになります。