2009-06-09 14 views
2

私は小規模なプロジェクトのための自分の小さな軽量フレームワークを作成し、現在はKohanaに切り替えました。Kohanaでメニューナビゲーション構造を作成するには?

しかし、ナビゲーション階層を達成するためにはどのような方法があるのだろうか。

例:私はこのようなメニューを持っています:

ホーム|製品|サポート|連絡先

私の古いフレームワークで、ユーザーが「製品」をクリックしたとき、フレームワークはこれがどのナビゲーションレイヤであるか知っていました。そして、そのビューはそのメニューアイテムのCSSクラスに「_active」接尾辞を付けました。すべての親ナビゲーション要素で同じです。

このようなことを達成するために、どのようにあなたのサイトをKohanaに設定していますか?

メニューバーを含む1つの大きなレイアウトビューを作成することを考えました。そこでは、どのメニュー項目をアクティブとして強調表示する必要があるかを判断するために、すべてのロジックを実装する必要があります。これには巧妙な仕組みがありますか、またはurlセグメントがメニュー項目と一致する場合は、何らかの形でif-statementsで何とか現在のURLから把握しなければなりませんか?

答えて

3

uri::segment()メソッドを使用すると、現在のページを取得し、それに基づいてサフィックスを決定することができます。

例:

# Example Url: http://www.example.com/index.php/article/paris/hilton/ 
echo $this->uri->segment(3); // Returns 'hilton' 

そこから、それはあなたのナビゲーションリンクの各1に対して返された値をチェックするだけの問題だ - それはmachesときにサフィックスを追加し、。

+0

実際はほとんど同じです;) – Thanks

+0

好きな場合は、コントローラ内でロジックを実行できます。それは、あなたのロジックを1つの場所、つまりコントローラーに保つことを除いて、大きな違いはありません。 – Sampson

関連する問題