web-dev-qa-db-ja.com

l()を使用してリンク<li>にアクティブクラスを追加

初歩的なようですが、どのようにしてアクティブ状態を<li> l()関数を手動で使用した場合のリンク?

<li><?php print l('Hapiness','my/hapiness/complete', array('attributes' => array(), 'html' => FALSE)); ?></li>

上記はもちろん、ページが現在の場合、リンク上のアクティブなクラスを持つリストアイテムのリンクを出力しますが、そのクラスを<li>

4
Duncanmoo

できません。 l()関数はHTMLリンクのレンダリングのみを担当します。ラップされているタグの概念はありません(実際、別のタグでラップされている場合でもまったく同じです)。 。

あなたの質問に基づく簡単な答えはそれを手動で追加することです:

<li class="active"><?php print l('Hapiness','my/hapiness/complete', array('attributes' => array(), 'html' => FALSE)); ?></li>
7
Clive

menu_get_item() は、現在アクティブなメニュー項目を返します。だからあなたはそれを決めることができます、ej:

$classes = '';
$path = 'my/hapiness/complete';
$current = menu_get_item();
if ($current == $path) {
  $classes .= 'active';
}
print "<li class='$classes'>" . l(...) . "</li>";
3
jonhattan
l('<link text>', '<link path>', array('attributes' => array('class' => array('class-a', 'class-b'))));
2
Cory