2012-05-08 13 views

答えて

1

ルーティングとメニュー生成スクリプトによって異なります。もっとも簡単な方法は、uriのセグメントをチェックすることです。たとえば、静的メニューの場合:

<?php $class = $this->uri->segment(1)=="someController"?"highlighted":""; ?> 
<a href="/index.php/someController/" class="<?php echo $class; ?>">Menu item</a> 
0

ここにはいくつかのステップがあります。

まず、「現在の」メニュー項目またはカテゴリを判断する必要があります。 URL構造とトップレベルのメニュー項目(および/またはカテゴリ)との間に直接の関係があるようにサイトを構成することができれば、これは多くの役に立ちます。

メインメニューを生成する共通のコードセクションが必要です。このコードは、メニュー項目のタイトルを並べ替えて、メニューのHTMLを生成することができます。配列は、メニュー項目のテキストのURLセグメントと値のキーを持っていた場合...

$menuItems = Array(
    "/home" => "Home", 
    "/products" => "Products", 
    "/faq" => "FAQ", 
    "/aboutus" => "About Us" 
); 

たURIセグメントであるためにと(大手スラッシュを明確にするために含まれ、唯一のメニュータイトルです - あなたは普通でしょう

... iteratingしている間、あなたは現在のURLの関連するセグメントに対して各項目をチェックすることができます。

第2に、現在の項目がどのように処理されたかに応じて、関連するHTML要素にCSSクラスを追加できます。

li.current { 
    <your-highlight-css-styles-here> 
} 
:あなたは、その後 li.current要素にCSSに必要なハイライトのスタイルを適用する必要があると思い

$menuHtml = "<ul class='menu'>\r\n"; 
foreach($menuItems as $segment => $title) { 
    if($segment == $this->uri->segment(1)) { 
     $menuHTML .= "<li class='current'>$title</li>"; 
    } else { 
     $menuHTML .= "<li>$title</li>\r\n"; 
    } 
} 
$menuHtml .= "</ul>"; 

関連する問題