2014-01-22 50 views
1
添加標籤到節點編輯形式

我已經添加到節點編輯形式的選項卡在Drupal 7所示(從hook_menu執行代碼段中,不相關的線移除):在Drupal

'node/%/products' => array(
    'title' => t('Products'), 
    'page callback' => 'some_function', 
    'page arguments' => array(
    1 
), 
    'access callback' => TRUE, 
    'type' => MENU_LOCAL_TASK 
) 

的選項卡顯示但是,該頁面顯示在網站的默認主題中,而不是管理主題中。此外,顯示的頁面中缺少其他選項卡。

我試圖通過包括本的hook_admin_paths實現內固定這一點,但它並沒有區別:

return array(
    'node/%/products' => TRUE, 
); 

我怎麼能執行我的網頁在管理主題,以顯示和顯示其他選項卡節點編輯表單(如「編輯」,「修訂」等)?


編輯:箱使用的編輯時,或者在admin/appearance創建內容被選中,和系統定義的頁面在管理主題,如node/%/edit顯示,但我的新的一頁沒有管理的主題。

回答

1

打開/管理/外觀頁面,在設置管理菜單的頁面底部,勾選「編輯或創建內容時使用管理主題」複選框的值。

+0

謝謝,但那個盒子打勾。諸如'node /%/ edit'之類的頁面使用管理主題顯示。然而,我的新頁面'node /%/ products'不是。 –

2

我發現我做錯了什麼。在hook_menu被用來表示一個參數;在hook_admin_paths中,這些必須用星號代替。下面改變我的執行hook_admin_paths解決它:

return array(
    'node/*/products' => TRUE, 
); 
0

我有同樣的問題,我解決了以下hook_menu

<?php 
function <mymodulename>_menu() { 
    $items = array(); 

    $output['node/%node/mypath'] = array(
    'title' => t('Title'), 
    'type' => MENU_LOCAL_TASK, 
    'page arguments' => array('node', 1), 
    'page callback' => 'callback_function', 
    'theme callback' => 'variable_get', 
    'theme arguments' => array('admin_theme'), 
) 
} 

function callback_function() { 
    return 'My New Page.'; 
} 

我認爲你需要有%node路徑裏面,因爲這是正確的方式來「自動加載」節點(Drupal照顧這一點)並將它作爲參數傳遞給callback_function,您可以在其中使用加載的節點。