2013-04-06 185 views
4

我想在我的Drupal 7站點的mysite.com/user用戶帳戶頁面添加兩個新選項卡。我想添加鏈接添加照片節點/添加/照片和添加視頻節點/添加/視頻,但我模塊user_menu_add下面的代碼是不是爲我工作:添加自定義選項卡到用戶配置文件頁面Drupal 7

function user_menu_add_menu() { 

$items['node/add/photos'] = array(
    'title' => t('Add Photos'), 
    'page callback' => 'user_menu_add', 
    'page arguments' => array(1), 
    'access callback' => TRUE, 
    'access arguments' => array('access user menu add'), 
    'type' => MENU_LOCAL_TASK, 
); 

return $items; 

} 

我已經引用的例子是here這作品,但只爲「/用戶」子目錄下

function my_module_menu() { 

$items['user/%user/funky'] = array(
    'title' => t('Funky Button'), 
    'page callback' => 'my_module_funky', 
    'page arguments' => array(1), 
    'access callback' => TRUE, 
    'access arguments' => array('access funky button'), 
    'type' => MENU_LOCAL_TASK, 
); 

return $items; 

} 

Current User Tabs

回答

6

鏈接可以保持node/add/photos菜單項原樣。您需要保持網址格式的格式,如user/%user/addphoto所示,以使選項卡顯示在用戶個人資料頁面上。但是,請嘗試在新菜單項中使用drupal_goto()重定向到node/add/photos頁面。

試試這個:

$items['user/%user/addphoto'] = array(
    'title' => t('Add Photos'), 
    'page callback' => 'drupal_goto', 
    'page arguments' => array('node/add/photos'), 
    'access callback' => 'user_is_logged_in', 
    'type' => MENU_LOCAL_TASK, 
); 

參考文獻:

+0

謝謝!我無法弄清楚爲什麼Drupal不會在沒有這個的情況下將用戶路由到用戶配置文件區域之外! – DrCord 2014-03-14 22:36:18

6

我沒有足夠的聲譽COM回答一個問題。 注重的是hook_menu 需要翻譯標題確實是文件說:

"title": Required. The untranslated title of the menu item. 

所以代碼應該是

function my_module_menu() { 
    $items['user/%user/addphoto'] = array(
     'title' => 'Add Photos', 
     'page callback' => 'drupal_goto', 
     'page arguments' => array('node/add/photos'), 
     'access callback' => 'user_is_logged_in', 
     'type' => MENU_LOCAL_TASK, 
    ); 
    return $items; 
} 
+0

你是對的。具體來說,作爲「title」給出的值被傳遞給「標題回調」,默認爲[t()](https://api.drupal.org/api/drupal/includes%21bootstrap.inc/function/t/7) 。 – 2014-03-07 15:55:29

相關問題