CakePHPでパンくずリストを表示するサンプル

11466 回閲覧 このエントリーをはてなブックマークする この記事のブックマークユーザー 永続的リンク2008/07/23 10:55:10 カテゴリ: CakePHP
スポンサード リンク
CakePHP


CakePHPでパンくずリストを出力方法として、htmlヘルパーのaddCrumbメソッドとgetCrumbsメソッドを利用する。


CakePHP1.1、1.2両方とも利用できるが、若干違う。

addCrumbメソッド

htmlヘルパーのaddCrumbメソッドでパンくずリストに表示する項目を登録してきます。
1.2の場合第3引数に配列で要素の属性を指定できるが、1.1では実装されていない。

$html->addCrumb("お店一覧","/micks/store_list/");
$html->addCrumb("○○店の詳細","/micks/store_detail/12/");

※addCrumbメソッドで登録した階層は、登録した順に上位→下位という関係になります。上の階層の場合は先に登録しておく必要があります。

getCrumbsメソド

htmlヘルパーのgetCrumbsメソッドで登録されたパンくずリストの項目を取得します。1.1だと第3引数に結果を戻り地として返すかの真偽値が指定できる。

echo $html->getCrumbs(" >> " , "トップ");


見た目はこんな感じ。(※リンク先はこのブログに変更してある)
トップ >> お店一覧 >> ○○店の詳細

これで出力されるタグが以下になります。

<a href="/">トップ</a> >> <a href="/micks/store_list/">お店一覧</a> 
>> <a href="/micks/store_detail/12/">○○店の詳細</a>

1.2でエレメントを利用して汎用性を高める

エレメントを作成する。
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する)


ってのはどうかな。

参考・引用サイト


 →ツイッターのフォローはこちら
スポンサード リンク
         

関連記事

↑ページ上部へ

アクセスカウンター

今日 : 105 昨日 : 14

ブログ内容

主にウェブ関係のことを書いてます。たまにブレイクダンスとか他のことも書いています。

プロフィール

MICK

MICKです。

1983年1月24日生まれ。ウェブの世界にいるのは、偶然のようで必然なのかも。

好きなこと :
 挑戦すること。物事に没頭すること。勉強すること。
嫌いなこと :
 自慢話を聞くこと。人の悪口を言うこと。

運営サイト

      

カテゴリ一覧

サイト広告

オススメの書籍とか

感想

紹介

色々

最近のコメント

最新記事

注目記事

人気記事

最近の人気記事

人気の記事

関連サイト

運営サイト

色々

最近のトラックバック