2011-09-15 71 views
2

我想添加一個自定義菜單到Drupal 7,但似乎我無法處理hook_menu中的外部鏈接,因爲它們沒有插入到數據庫中。當我將實現更改爲使用menu_link_save時,內部菜單項不會保存在菜單路由表中,因此它們不會顯示出來。有沒有一種方法可以實現一個自定義菜單,該菜單將顯示在包含普通菜單項和鏈接到外部網站的頁腳中?Drupal添加外部鏈接到自定義菜單

回答

5

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/') 
); 

希望幫助

+0

不給你正確的答案回獎於2011年該解決方案行之有效然後,繼續所以現在儘管已經有過顯著變化做我道歉Drupal在那個時候。 –

+0

@MatthewPurdon沒有必要的道歉:) Drupal 7是儘可能這個雖然,來的Drupal 8我不認爲這種方法會工作 – Clive

1

這是不正確的,至少不現在。

您可以添加外部項目像這樣

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

這是不是真的什麼?請更具體一些。 – dbf

相關問題