0
我有單模:Drupal的:通功能名稱作爲頁面參數
function cabinet_menu() {
$items['cabinet'] = array(
'title' => 'cabinet',
'title callback' => 'cabinet_title',
//'title arguments' => array(1),
'page arguments' => array('cabinet_mysettings'),
'page callback' => 'cabinet_page',
'access arguments' => array('access content'),
'type' => MENU_NORMAL_ITEM,
);
return $items;
}
我想傳遞給頁面的參數「一個名爲「cabinet_mysettings」
function cabinet_mysettings() {
debug('call settings');
global $user;
$cabinet = user_load($user->uid);
return $cabinet;
}
function cabinet_page($cabinet) {
debug($cabinet);
}
在「cabinet_page」調試功能只顯示字符串「cabinet_mysettings」。
爲什麼菜單鉤子不明白,頁面參數不是一個函數名稱,而是一個刺痛?
UPD:devel的模塊hook_menu:
$items['devel/reinstall'] = array(
'title' => 'Reinstall modules',
'page callback' => 'drupal_get_form',
'page arguments' => array('devel_reinstall'),
'description' => 'Run hook_uninstall() and then hook_install() for a given module.',
'access arguments' => array('access devel information'),
'file' => 'devel.pages.inc',
'menu_name' => 'devel',
);
我認爲'devel_reinstall'是一個函數。
有誰知道這種回調是如何工作的?
m1n0,這對我很清楚。但我想分享我的模塊在'cabinet_title'和'cabinet_page'函數中生成的數據。 URL中不會有wildchar。我想要在'cabinet_title'和'cabinet_page'之前調用的函數。它必須生成模塊數據。 – menelai
我應該在每個函數中調用'cabinet_mysettings'還是有正確的方法? – menelai
是的,在每一個需要你的數據的函數中調用'cabinet_mysettings'是可能的解決方案......但是你也可以考慮有一個靜態對象來存儲這些數據......甚至會話變量......這取決於你的具體的情況是,但是如果它進行了大量的處理或者它從數據庫加載數據,那麼您不應該多次調用該函數。 我最喜歡的選擇是靜態對象,它是相當優雅的解決方案,但它不完全是「drupal方式」 – m1n0