2009-10-22 58 views
1

我繼承了Drupal5網站,並且負責進行一些更改,但我無法弄清楚從哪裏開始尋找。

在許多頁面上有提供給管理員一個菜單,允許你做某些動作:

概述 專家 資源和工具 在現場 新聞 活動 課程 多媒體 編輯 軌道 工作流程 設置

但是,在某些部分,有不同的選項: 預覽 佈局 設置 佈局設置 高級 語境 內容 出口

我需要添加(編輯,跟蹤,工作流程,設置)到第二個菜單,但我不知道該怎麼做。

我在page.tpl.php中看到有$ tab的區域,但我無法弄清楚它是如何構建的。

從我所知道的,主題是基於禪宗STARTERKIT主題。

回答

6

$ tabs變量通常會使用類型爲MENU_LOCAL_TASK的菜單項填充。

看看menu system,特別是在hook_menu()得到一個基本的想法。它歸結爲回調函數到路徑的映射。如果URL匹配hook_menu(可以包含佔位符!)中定義的路徑,則將調用爲該路徑註冊的回調函數以生成該URL的內容。

hook_menu項的'類型'定義路徑/回調組合在系統中的表示方式。它可以是MENU_CALLBACK,這意味着只是註冊的路徑/回調組合,但沒有對應的「真實」菜單條目。 A MENU_NORMAL_ITEM,將是相同的,但是具有「標準」菜單條目,例如,在導航菜單中。 A MENU_LOCAL_TASK是相同的,但相應的菜單條目通常顯示在$標籤中,而不是在菜單中。

所有共享相同基本路徑的MENU_LOCAL_TASK將最終成爲一組選項卡。所以,如果你有一個像路徑:其中定義爲MENU_LOCAL_TASK

  • 一些/路徑/ TAB1
  • 一些/路徑/ TAB2
  • 一些/路徑/ TAB3

,所有的這些,你會在他們代表的每個頁面上看到他們每個人的一個標籤。

因此,要找到需要修改/增強的位置,您應該搜索您的代碼庫以獲取定義這些選項卡所顯示路徑的所有hook_menu()實現。請注意,它們不需要全部定義在相同的地方,但可能來自不同模塊中的不同hook_menu實現。比您需要爲要添加的選項卡添加菜單定義,將相關路徑映射到回調函數。回調函數將返回用戶在單擊選項卡時應該看到的頁面內容。

0

如果您要顯示節點,通常$ tab中已經有Edit鏈接,因爲它不存在,可能是其他內容(某種佈局模塊)。你需要添加編輯/追蹤選項來編輯/追蹤什麼樣的內容?具體節點還是什麼?