Drupal 8 — программно отключить или включить ссылку в главной навигации

Это касается Drupal 8.
Я пытаюсь управлять элементом ссылки на главной навигации. Я хочу включить / отключить элемент программным способом.
Я искал, но не могу найти, как это сделать. Я нашел MenuLinkManager, MenuLinkContent, но я не могу делать то, что хочу.
Спасибо за вашу помощь.

0

Решение

Вы можете установить модуль Специальные пункты меню
https://www.drupal.org/project/special_menu_items

Или сделайте это в вашей функции theme_link в вашем template.php

function myTheme_link($variables) {
if ((isset($variables['path']) && ($variables['path'] == $_GET['q'] || ($variables['path'] == '<front>' && drupal_is_front_page())))) {

return ($variables['options']['html'] ? $variables['text'] : check_plain($variables['text']));
} else {
return '<a href="' . check_plain(url($variables['path'], $variables['options'])) . '"' . drupal_attributes($variables['options']['attributes']) . '>' . ($variables['options']['html'] ? $variables['text'] : check_plain($variables['text'])) . '</a>';
}
}
0

Другие решения

Отключить / включить пункты меню означает показать / скрыть его. Итак, мы можем сделать это с помощью кода ниже в файле темы

/**
* Implements hook_preprocess_menu().
*/
function theme_preprocess_menu(&$variables) {
if (isset($variables['menu_name']) && $variables['menu_name'] === 'main') {
foreach($variables['items'] as $key => $item) {
$path = $item['url']->toString();
switch($path) {
case '/menupath':
unset($variables['items'][$key]); //Remove menu item
break;
}
}
}
}
0

По вопросам рекламы [email protected]