创建链接到其父级的菜单项

时间:2011-03-01 20:07:21

标签: drupal drupal-6 drupal-modules

我一直在低调地寻找这个。我想以编程方式创建一个链接到其父级的普通菜单项。类似于默认菜单任务的概念,但只是一个普通的菜单项。有没有人这样做过?

我想要一些我可以用其中一个drupal钩子做的事情。

3 个答案:

答案 0 :(得分:0)

您只需要创建一个新的菜单项,该菜单项与其父项具有相同的路径

答案 1 :(得分:0)

$items['parent'] = array(
    'title' => 'I am parent',
    'page callback' => 'drupal_get_form',
    'page arguments' => 'get_parent',
    'access arguments' => array('access parent'),
    'type'      => MENU_NORMAL_ITEM,
);

$items['parent/child'] = array(
    'title' => 'I am child link of parent',
    'page callback' => 'drupal_get_form',
    'page arguments' => 'get_children_for_thisparent',
    'access arguments' => array('access children of parent'),
    'type'      => MENU_NORMAL_ITEM,
);

这应该可以解决问题:)

答案 2 :(得分:0)

假设您要将其放在主菜单下,

    $item['form_example'] = array(
        'title' => 'Example menu',
        'description' => 'This is an example menu item',
        'type' => MENU_NORMAL_ITEM,
        'page callback' => 'custom_function',
        'menu_name' => 'main-menu',
    );

    return $item;

然后,您将获得主菜单下的菜单项(清除缓存)。诀窍是添加一个键'menu_name'。

要获取menu_name,请打开菜单管理页面,然后在任何根菜单上单击“编辑菜单”。 URL将类似于'SITE_URL / admin / structure / menu / manage / main-menu / edit'。查看最后一个(此处为主菜单)之前的网址段。

对于第二种情况,您可能希望将其置于主菜单的主页下。代码是。

$item['form_example'] = array(
    'title' => 'Example menu',
    'description' => 'This is an example menu item',
    'type' => MENU_NORMAL_ITEM,
    'page callback' => 'custom_function',
    'menu_name' => 'main-menu',
    'plid' => 218,
);

return $item;

在这里,我已经为关联数组添加了一个关键的plid,它是菜单项的mlid(这里是'Home'),它将是一个孩子。对于这种情况,它将是主菜单的孩子。

要获取mlid,您必须执行与上述相同的操作,转到菜单管理页面并单击列表链接,然后单击菜单项上的编辑,例如, SITE_URL / admin / structure / menu / item / 218 / edit,这样你就可以获得mlid,从而完成它。

请注意。如果您从后端更改此菜单层次结构或其他设置,您将始终具有重置选项以重置它,并且在重置后它将表现得像代码中描述的那样。