SERVICE こんな事ができます

CNTACT ご相談はお気軽に

 ABOUT US こんな会社です



2009/09/01 by マッチー

パンくずリストの作成方法

CakePHPで静的なページ(静的とは限らないけど)を作っていてわりと悩むのがパンくずリストの作り方。パンくずリストってページの下層の方のリンクになれば完全に個別ですけど、トップページへのリンクの部分なんて、どのページでも一緒じゃないですか。

だから僕の場合はelementsにpankuzu.ctpみたいなファイルを作って常にそれをrenderElementするようにしてるんですよ。あとはスイッチ文を使って、コントローラーごとに表示を分けるような感じで。

まあ、大雑把に書くとこんな感じですね。これなら、たとえば会社概要のページを作っているコントローラーがあるとして(上の場合でいうcompany)、そこに会社概要(アクションはindex)とスタッフ情報(アクションはstaff)があるとしたらだったら

こんな風に書けば、ページに表示されるのはそれぞれ、

トップ > 会社概要

トップ > 会社概要 > スタッフ情報

まあ、基本PHP部分しかないからvendorsとかの方が良いのかもしれないけど? とりあえずはこんな感じでいつも対処してます。

してますが、でもこれ、上記くらいの感じならそれなりにさっぱりまとめられるんですが、アクションのさらに下層のページがいくつもあったり(スタッフ情報の下に個別スタッフの紹介ページがあってさらにその下に何かしらのページがあるとか)、indexじゃないページでも表示されるパンくずリストが トップ > 該当のページ だけだったりとかすると、意外とソースが汚くなります。まあ、僕の書き方の問題もあるんですけど。

分かりやすくコンパクトにまとめるためにわざわざelements以下にファイルを作ってるのだから、あまりごちゃごちゃしたソースになっても仕方ないしぃ……。

何か上手いパンくずリストの書き方って、ないもんですかねぇ。