CakePHP2009/09/01マッチー
CakePHPで静的なページ(静的とは限らないけど)を作っていてわりと悩むのがパンくずリストの作り方。パンくずリストってページの下層の方のリンクになれば完全に個別ですけど、トップページへのリンクの部分なんて、どのページでも一緒じゃないですか。
だから僕の場合はelementsにpankuzu.ctpみたいなファイルを作って常にそれをrenderElementするようにしてるんですよ。あとはスイッチ文を使って、コントローラーごとに表示を分けるような感じで。
まあ、大雑把に書くとこんな感じですね。これなら、たとえば会社概要のページを作っているコントローラーがあるとして(上の場合でいうcompany)、そこに会社概要(アクションはindex)とスタッフ情報(アクションはstaff)があるとしたらだったら
こんな風に書けば、ページに表示されるのはそれぞれ、
トップ > 会社概要
まあ、基本PHP部分しかないからvendorsとかの方が良いのかもしれないけど? とりあえずはこんな感じでいつも対処してます。
してますが、でもこれ、上記くらいの感じならそれなりにさっぱりまとめられるんですが、アクションのさらに下層のページがいくつもあったり(スタッフ情報の下に個別スタッフの紹介ページがあってさらにその下に何かしらのページがあるとか)、indexじゃないページでも表示されるパンくずリストが トップ > 該当のページ だけだったりとかすると、意外とソースが汚くなります。まあ、僕の書き方の問題もあるんですけど。
分かりやすくコンパクトにまとめるためにわざわざelements以下にファイルを作ってるのだから、あまりごちゃごちゃしたソースになっても仕方ないしぃ……。
何か上手いパンくずリストの書き方って、ないもんですかねぇ。