3.9.4 テーマ
テーマの利点は、素早く簡単にページの見た目を変更できることです。
テーマを使用するには、コントローラにデフォルトのビュークラスの代わりに ThemeView クラスを使用するように設定する必要があります。
class ExampleController extends AppController {
var $view = 'Theme';
}
class ExampleController extends AppController {var $view = 'Theme';}
どのテーマをデフォルトとして使用するか宣言するために、コントローラ内でテーマ名を指定します。
var $theme = 'example';
var $theme = 'example';
アクション内あるいは beforeFilter, beforeRender コールバック関数内でテーマ名を設定・変更できます。
$this->theme = 'another_example';
$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 フォルダがデフォルトになります。
