drupal - 如何在drupal中获取某个父级下方的所有菜单项?

标签 drupal menu

我真的只需要某个菜单项下第一级的 mlid 和标题文本。这就是我目前正在做的事情。 (它有效,但我怀疑可能有更像 drupal 的方式。):

/**
 * Get all the children menu items below 'Style Guide' and put them in this format:
 * $menu_items[mlid] = 'menu-title'
 * @return array
 */
function mymod_get_menu_items() {
    $tree = menu_tree_all_data('primary-links');
    $branches = $tree['49952 Parent Item 579']['below']; // had to dig for that ugly key
    $menu_items = array();
    foreach ($branches as $menu_item) {
        $menu_items[$menu_item['link']['mlid']] = $menu_item['link']['title'];
    }
    return $menu_items;
}

在那儿?

最佳答案

实际上,使用 menu_build_tree() 可以轻松获取该信息。 :

// Set $path to the internal Drupal path of the parent or
// to NULL for the current path 
$path = 'node/123';
$parent = menu_link_get_preferred($path);
$parameters = array(
    'active_trail' => array($parent['plid']),
    'only_active_trail' => FALSE,
    'min_depth' => $parent['depth']+1,
    'max_depth' => $parent['depth']+1,
    'conditions' => array('plid' => $parent['mlid']),
  );

$children = menu_build_tree($parent['menu_name'], $parameters);
$children包含您需要的所有信息。 menu_build_tree()检查访问或翻译相关的限制,所以你只能得到用户真正应该看到的。

关于drupal - 如何在drupal中获取某个父级下方的所有菜单项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2716787/

相关文章:

php - 无法访问 Drupal 的 MySQL 数据库

php - drupal字段集合如何存储在数据库中?

android - 总是在android中下拉菜单

css - 关于菜单项的 CSS 问题

c++ - MFC 上下文菜单的项目高度不正确

css - 我无法编辑 drupal 模块,CSS 位置很难找到

jquery - 有没有一种简单的方法来实现 jQuery 插件作为 Drupal 内容节点的一部分?

php - 如何覆盖 drupal 7 中的 Web 表单提交功能?

javascript - 如何在单击而不是悬停时打开 Superfish jQuery 菜单?

css - Internet Explorer 兼容性问题(CSSPlay 菜单)