Drupal ограничивает количество пунктов меню в основных ссылках - PullRequest
2 голосов
/ 08 июня 2010

Есть ли способ установить ограничение на количество пунктов меню, которые пользователи могут добавлять в меню «Основные ссылки»?Я работаю на сайте Drupal, и у меня есть горизонтальная панель навигации по первичным ссылкам.В навигационной панели есть место только для 7-8 ссылок.Я не хочу, чтобы будущий сопровождающий сайта добавил в меню более 8 пунктов.Есть ли способ, которым я могу установить ограничение на это?Какой-то модуль или функция переопределения?Спасибо,

1 Ответ

4 голосов
/ 09 июня 2010

Вы можете попробовать это:

http://api.drupal.org/api/function/menu_primary_links/6

Затем, используя hook_form_alter, выполните:

$menu_links = count(menu_primary_links());

if ($menu_links > 8) {
   unset($form['menu']);
}

Но мы также должны защищать узлы, которые уже находятся в меню. Таким образом,

$menu_links = count(menu_primary_links());

if ($menu_links > 8 && !($form['menu']['mlid']['#value'] != 0 && $form['menu']['#item']['menu-name'] == 'primary-links')) {
   unset($form['menu']);
}

Это удалит пункт меню из формы узла, только если этот узел не имеет существующего пункта меню в меню основных ссылок. Он проверяет, проверяет, есть ли у редактируемого узла значение mlid, и если да, то находится ли он в меню основных ссылок.

hook_form_alter http://api.drupal.org/api/function/hook_form_alter

Но как наши пользователи узнают, что случилось? Скажем им.

if ($menu_links > 8 && !($form['menu']['mlid']['#value'] != 0 && $form['menu']['#item']['menu-name'] == 'primary-links')) {
   unset($form['menu']);
   drupal_set_message('The maximum limit of links in the primary menu has been reached.', 'status', FALSE);
}

Вы можете расширить это сообщение, перечислив также $ menu_links, чтобы пользователь знал, какие узлы необходимо удалить, прежде чем можно будет добавить другие узлы.

Кроме того, это немного сложно, если они используют вторичные ссылки или другие меню. В этом случае вам потребуется больше программ для замены дерева в опциях меню, но сейчас это немного сложнее. Они всегда могут добавить узлы во вторичные меню через Admin> Build> Menus.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...