2011-08-05 39 views
0

這是Drupal的忍者hook_load一個CCK自定義內容類型:如何在MENU_CALLBACK Drupal的

  1. 我創建一個名爲testmodule爲我的自定義模塊menu_hook;
  2. 我想打電話給一個MENU_CALLBACK並返回一個自定義的內容類型,我創建一個名爲「VideoNodes」

例子的加載CCK對象:現在

$items['save_video_data/%my_custom_cck_type/%'] = array(
     'type' => MENU_CALLBACK, 
     'page callback' => 'save_data_to_db', 
     'access arguments' => array('Save Data to my_custom_cck_type'), 
     'page arguments' => array(2), 
     'type' => MENU_CALLBACK, 
     'title' => 'Save a Data!' 
     ); 

,與上面的代碼,我的理解是我告訴drupal加載my_custom_cck_type並使用數組(2)位置(我的參數)作爲節點的id字段在數據庫中查找它。

我也明白,我將需要創建一個my_custom_cck_type_load()函數。

問題:

shoudl是什麼my_custom_cck_type_load()?我應該如何將所有與CCK類型相關的自定義字段都抓到返回的對象中?或者drupal爲我做這個?

回答

0

我將使用node_load作爲示例。開箱即用Drupal的菜單系統將加載類似路徑的節點。

node/1/view 
node/2/view 
node/3/view 

(注:路徑的「/視圖」部分往往隱藏,因爲它是默認選項卡)

菜單項的設置要做到這一點看起來像:

$items['node/%node/view'] = array(
    'type' => MENU_DEFAULT_LOCAL_TASK, 
    'title' => 'blabla', 
    'page callback' => 'node_view', 
    'page arguments' => array(1) 
    /* more stuff */ 
); 

在實際路徑中,%節點由一個數字(節點的NID)替換。這將導致菜單使用該數字作爲參數來觸發node_load。我們還使用%節點作爲node_view回調的頁面參數。回調接收的參數將是完全加載的節點對象。