有没有办法限制用户可以添加到主链接菜单的菜单项数量?我正在开发一个 Drupal 站点,并且有一个水平主链接导航栏。导航栏中只能容纳不超过 7-8 个链接。我不希望网站 future 的维护者在菜单中添加超过 8 个项目。有什么办法可以对此设置限制吗?某些模块或覆盖功能? 谢谢,
最佳答案
你可以试试这个:
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 来扩展该消息,以便用户知道在添加其他节点之前需要删除哪些节点。
此外,如果他们使用辅助链接或其他菜单,这会有点棘手。在这种情况下,您需要更多的编程来替换菜单选项中的树,但目前涉及更多。他们始终可以通过“管理”>“构建”>“菜单”将节点添加到二级菜单。
关于Drupal 限制主链接中菜单项的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3000314/