
CakePHPでパンくずリストを出力方法として、htmlヘルパーのaddCrumbメソッドとgetCrumbsメソッドを利用する。
CakePHP1.1、1.2両方とも利用できるが、若干違う。
htmlヘルパーのaddCrumbメソッドでパンくずリストに表示する項目を登録してきます。
1.2の場合第3引数に配列で要素の属性を指定できるが、1.1では実装されていない。
$html->addCrumb("お店一覧","/micks/store_list/");
$html->addCrumb("○○店の詳細","/micks/store_detail/12/");
※addCrumbメソッドで登録した階層は、登録した順に上位→下位という関係になります。上の階層の場合は先に登録しておく必要があります。
htmlヘルパーのgetCrumbsメソッドで登録されたパンくずリストの項目を取得します。1.1だと第3引数に結果を戻り地として返すかの真偽値が指定できる。
echo $html->getCrumbs(" >> " , "トップ");
見た目はこんな感じ。(※リンク先はこのブログに変更してある)
トップ >> お店一覧 >> ○○店の詳細
これで出力されるタグが以下になります。
<a href="/">トップ</a> >> <a href="/micks/store_list/">お店一覧</a> >> <a href="/micks/store_detail/12/">○○店の詳細</a>
エレメントを作成する。
breadcrumb.ctp
foreach($breadcrumb as $val) {
$option = (isset($val['option'])) ? $val['option'] : array();
$html->addCrumb($val['name'],$val['link'],$option);
}
if(!isset($separator)) $separator = " >> ";
if(!isset($top)) $top = "トップ";
echo $html->getCrumbs($separator,$top);
ビュー
echo $this->element('breadcrumb', array("breadcrumb" => $breadcrumb));
渡すパンくずリストはコントローラかビューで
$breadcrumb = array(
array("name" => "お店一覧" , "link" => "/micks/store_list/"),
array("name" => "○○店の詳細" , "link" => "/micks/store_detail/12/" ),
);
で渡す。(コントローラならsetする)
ってのはどうかな。
この投稿への コメント/トラックバック はまだありません...
MICKです。
1983年1月24日生まれ。ウェブの世界にいるのは、偶然のようで必然なのかも。
好きなこと :
国民的人気を誇っている坂本龍馬の人気のきっかけを作った司馬遼太郎の小説「竜馬がゆく」で龍馬の人気の秘密がわかる!?。
[続きを読む!]

龍馬の金策日記―維新の資金をいかにつくったか (祥伝社新書)
よく推理小説とかだと読書を中断するタイミングが掴めない時があるんですが、この本も同じ感覚で読めました。
[続きを読む!]
人生って、一度しかないっていう単純なことに気がついた。
「あぁ、あの時どうして・・・」と悔やみながら人生を終わるのは嫌だと思った。
[続きを読む!]
なんで禁煙本が自己啓発やねん。と思われた方すみませんw
しかし、何を隠そう自分はこの本でタバコをやめたのです!
[続きを読む!]
| 位 | アクセス元 | 数 |
|---|---|---|
| bing.com | 290 | |
| twitter.com | 258 | |
| q.hatena.ne.jp | 121 | |
| 4 | b.hatena.ne.jp | 101 |
| 5 | fdays.blogspot.com | 91 |
| 6 | d.hatena.ne.jp | 68 |
| 7 | analytics-ja.blogspot.com | 59 |
| 8 | as.blog16.jp | 48 |
| 9 | cakephp.blog16.jp | 45 |
| 10 | 1kb.jp | 33 |
| 11 | moviereleases.mommyc・・・ | 31 |
| 12 | milds.net | 28 |
| 13 | syuhari.jp | 28 |
| 14 | blog.development-net・・・ | 25 |
| 15 | atmarkit.co.jp | 21 |