アクティブリンクのCSSクラスを「is-active」から(私の場合)「active」に変更する最良の方法は何ですか?
また、本当にそれを置き換えたり、クラスを追加したりする必要がありますか? 「is-active」クラスがハードコーディングされていることを知っています( ここ といくつかのphpクラスで)drupalは抽象化レイヤーと設定のトン。それは何ですか:「過去の遺産」または本当に十分に根拠のあるアイデア?
現在のcssフレームワークだけに「アクティブ」クラスが必要ですが、コアなどで「is-active」が使用されている可能性がありますか?
ありがとうございました!
次のように、theme_menu_link関数をオーバーライドできます。
function theme_menu_link($variables)
{
$element = $variables['element'];
$sub_menu = '';
if ($element['#below']) {
$sub_menu = \Drupal::service('renderer')->renderRoot($element['#below']);
}
foreach ($element['#attributes']['class'] as &$class) {
if ($class == 'is-active') {
$class = 'active';
break;
}
}
$output = l($element['#title'], $element['#href'], $element['#localized_options']);
return '<li' . new Attribute($element['#attributes']) . '>' . $output . $sub_menu . "</li>\n";
}