2010-11-02 142 views
3

我正在創建一個讓您的用戶添加提要的模塊。 所以我想我的代碼提供可以在主題層覆蓋的選項卡。使用標籤創建drupal 6模塊

我想這可能與hook_menu來完成:

$items['tab_add_feed'] = array(
    'title' => 'Add Feed', 
    'page callback' => 'xml_parser_add_feed', 
    'access callback' => 'user_access', 
    'access arguments' => array('manage own feeds'), 
    'type' => MENU_LOCAL_TASK, 
); 

像上面。 但我在網站的正面使用它。

如何在頁面頂部添加製表符或鏈接drupal方式?

//編輯

有沒有標籤存在的那一刻,也許我必須讓他們看到?

通過將<a href="xml_parser/add_feed">add feed</a>添加到主頁面回調函數來修復它 但是,這是醜陋的,硬編碼的,而不是主題性的。等待更好的解決方案。

//編輯

這是我使用的代碼現在

function xml_parser_menu() { 
    $items = array(); 

    $items['xml_parser'] = array(
      'path' => 'xml_parser', 
      'title' => t('Feed'), 
      'description' => t('Add/edit feeds'), 
      'page callback' => 'xml_parser_manage_overview', 
      'access callback' => 'user_access', // get user access 
      'access arguments' => array('manage own feeds'), // check user if premission is set 
      'type' => MENU_NORMAL_ITEM, 
      'menu_name' => 'primary-links', // add to primary menu 
    ); 

    $items['xml_parser/add_feed'] = array(
      'path' => 'xml_parser/add_feed', 
      'title' => 'Add Feed', 
      'page callback' => 'xml_parser_add_feed', 
      'access callback' => 'user_access', 
      'access arguments' => array('manage own feeds'), 
      //'access' => user_access('maintain own subscriptions'), 
      'type' => MENU_LOCAL_TASK, 
    ); 
    return $items; 
} 
+1

在您的代碼中存在訪問參數錯誤。這需要數組的值; 'access arguments'=> array('manage own feeds'), – Bladedu 2010-11-02 14:07:04

+0

thnx,我現在編輯了代碼 – FLY 2010-11-03 09:41:58

回答

2

我認爲該項目的名稱會像「用戶/%/ add_feed」,與參數%是用戶標識。另外,訪問回調拼寫錯誤,應該是user_access。這應該在用戶個人資料頁面上爲用戶創建一個標籤。您也可以執行node /%/ add_feed將選項卡添加到節點。

在開發這個模塊中,你會發現它很有用也用這個:

function mymodule_init() { 
    cache_clear_all(); 
    menu_router_build(); 
} 

直到你的菜單直。

如果您只想添加一個任意選項卡到頁面來添加一個提要,它可能是一個自主菜單或主題鏈接。我需要更多地瞭解您嘗試提供的Feed的上下文以及用戶如何訂閱。

+0

我不想將標籤添加到用戶或節點頁面。我想添加一個標籤到'我的模塊頁面'。我也從我的問題中刪除了錯字 – FLY 2010-11-03 09:57:38

+0

哦,那麼你需要更多的菜單項。一個用於定義模塊的路徑,然後是出現在本地任務上的選項卡。 – Kevin 2010-11-03 13:24:01

+0

我的意思是說,爲了有選項卡,它們必須嵌套在父項下。我不認爲你可以擁有根路徑並將其作爲本地任務。 – Kevin 2010-11-03 13:56:34

0

您應該可以將標籤添加到首頁。請記住,您網站的首頁並不是真的「/」,默認情況下它是「/ node」(除非您更改了它)。

我只是猜測,因爲我沒有嘗試這樣做,但你的代碼應該工作,如果你改變你的標籤在$項目node/tab_add_feed的關鍵。

如果你還有別的東西作爲你的頭版(即一個視圖或面板),這將不適用。

+0

所以我改變了鍵和路徑(這是真的一樣嗎?)這是說它是一個父項的孩子的方式嗎?仍然不起作用 – FLY 2010-11-05 13:18:40