【CakePHP2.x】テーマの作成-二通りの使い方2014-11-25

WordPressなどのCMSでは、当たり前のように使っている「テーマ」だが、
CakePHPにおける「テーマ」とはどんなものなのだろうかと思いつつ
たまたま仕事で使う機会があったので早速チャレンジしてみる。
Cakeのテーマは2.1以降少し変わったようなのでそれについてのみの記録です。

まず、テーマを使うには、Viewフォルダー内に「Themed」フォルダーを作成し
その中でさらにテーマごとのフォルダーを作って展開していく。(Themeではなく、Themedと末尾にdをつけることを忘れずに)。
テーマのフォルダー名はキャメル記法で命名すること。例えば、HogeHogeなど

■テーマのフォルダーの中につくるフォルダは下記のような感じになる
●HogeHoge
-●Layouts
-●Elements
-●webroot
--●css
--●img
--●js  等
-●HugaHuga ※Viewフォルダ複数ページ分をここに置いてもいいし、通常どおりViewフォルダ直下に置いてもいい

■制御するコントローラー側では、
 メンバ変数に、 public $theme = 'HogeHoge'; としてコントローラ内のメソッドすべてに応用してもいいし
 各メソッドごと、 $this -> theme = 'HogeHoge'; としてもいい。


以上はテーマごとにレイアウトがかなり変わる場合に使えるが、
同じレイアウトで背景の色を変えたりボタンの背景画像を変える程度、
つまり一部の差し替え程度ならテーマフォルダを

●HogeHoge
-●webroot
--●css
--●img
--●js  等
-●HugaHuga ※Viewフォルダ複数ページ分をここに置いてもいいし、通常どおりViewフォルダ直下に置いてもいい。

とwebrootフォルダを作ればいい。
つまりスタイルシートや画像のみを参照して、LayoutsやElementsは共通のものを使うということができる。
この場合もコントローラ側は上と同じスクリプトを書けばいい。