Drupal добавление внешних ссылок в пользовательские меню - PullRequest
2 голосов
/ 15 сентября 2011

Я пытаюсь добавить пользовательское меню в Drupal 7, но мне кажется, что я не могу обрабатывать внешние ссылки в hook_menu, поскольку они не вставляются в базу данных. Когда я изменяю реализацию на использование menu_link_save, внутренние элементы меню не сохраняются в таблице маршрутов меню, поэтому они не отображаются. Есть ли способ реализовать пользовательское меню, которое будет отображаться в нижнем колонтитуле, которое содержит как обычные пункты меню, так и ссылки на внешние веб-сайты?

Ответы [ 2 ]

6 голосов
/ 15 сентября 2011

hook_menu() на самом деле предназначен только для внутренних путей, поэтому внешние пути не входят в таблицу menu_router. Есть небольшой трюк, который вы можете сделать, чтобы внутренние пути, которые вы определили, немедленно перенаправили на внешний сайт, используя drupal_goto () в качестве обратного вызова вашей страницы:

$items['my_internal_path'] = array(
  'title' => 'Title',
  'type' => MENU_NORMAL_ITEM,
  'access arguments' => array('access content'),
  'page callback' => 'drupal_goto',
  'page arguments' => array('http://external-site.com/')
);

Надеюсь, что поможет

1 голос
/ 12 сентября 2012

Это не так, по крайней мере, сейчас.

Вы можете добавить такие внешние элементы, как это

$items['http://facebook.com/'] = array(
  'title' => t('Facebook'),
  'type' => MENU_NORMAL_ITEM,
  'access arguments' => array('access content'),
  'menu_name' => 'menu-footer'
);
...