나는 간단한 모듈이 :드루팔 : 페이지 인수로 패스 기능 이름은
나는 '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'에서 디버그라는 함수 '페이지 인수'에 전달하려는
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"문자열 만 표시합니다.
왜 메뉴 훅은 페이지 인수가 함수 이름이 아니라 스팅인지 이해하지 못합니까?
UPD : (STABLE) 모듈 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 way"가 아니다. – m1n0