Drupal 6 : hook_menu ()에 링크를 추가하려면 어떻게합니까?
-
14-11-2019 - |
문제
내 모듈을 가지고 있으며 hook_menu
를 구현 한 메뉴 - 항목 리디렉션 (메뉴가 활성 상태를 유지해야합니다) 기존 WebForm 페이지 에이 페이지는 다음과 같습니다.
.$items['adminQuestion/create'] = array(
'title' => t('Crear Cuestionarios'),
'page callback' => "What i put here?",
'page arguments' => array('form_questionnaires'),
'access arguments' => array('access questionnaires'),
'type' => MENU_NORMAL_ITEM,
);
해결책 3
여기에 답변이 있습니다 :
$items['adminquestion/create'] = array(
'title' => 'Crear Cuestionarios',
'page callback' => 'questionnaires_page',
'access callback' => TRUE,
'type' => MENU_NORMAL_ITEM,
);
function questionnaires_page() {
module_load_include('inc', 'node', 'node.pages');
$output = node_add('webform');
return $output;
}
.
여기서 WebForm은 노드 / Add / WebForm의 별칭입니다. 감사합니다
다른 팁
drupal_goto
매개 변수로 리디렉션 할 경로 :
$items['adminQuestion/create'] = array(
'title' => t('Crear Cuestionarios'),
'page callback' => 'drupal_goto',
'page arguments' => array('node/add/webform'),
'access arguments' => array('access questionnaires'),
'type' => MENU_NORMAL_ITEM,
);
.
은 또한 $ ITEM [ 'ADMINEQUESTIONS']은 나쁜 연습입니다. URL 및 경로는 대소 문자를 구분하지 않아야합니다. 사실 : DRUPAL CAMELCASE에서는 모든 코드에서 매우 낙담합니다.
리디렉션을 통해 http 리디렉션 을 의미하는 경우, drupal_goto('path/to/webform')
를 사용하기 만하면 Webform 경로를 직접 사용할 수 있으므로 의미가 없습니다.IMO 필요한 것은 drupal_get_form()
인 WebForm의 node_load()
와 같은 API이므로 Webform은 메뉴 경로에로드됩니다.
.
// Assuming webform node with nid: 237
$items['adminQuestion/create'] = array(
'title' => t('Create Cuestionarios'),
'page callback' => 'node_load'
'page arguments' => array(237),
'access arguments' => array('access questionnaires'),
'type' => MENU_NORMAL_ITEM,
);
hook_theme()
의 Webform 구현은 노드를 형성 할 노드를 처리합니다.또는 가능한 경우 Webform Path를 변경할 수 있습니다.
주석을 읽는 것은 / node / add / webform에 경로 별칭을 만들고 싶은 것처럼 보입니다.hook_menu를 구현할 필요가 없습니다.
/ admin / build / path / add (경로 모듈을 사용하도록 설정했는지 확인하십시오).
여기에 '노드 페이지 추가'부분을 탭 그룹의 부분을 만들기 위해 한 작업
$items['mynode/new'] = array(
'title' => 'New Node',
'page callback' => 'node_add',
'page arguments' => array('my_node_type'),
'access arguments' => array('create my_node_type content'),
'file' => 'node.pages.inc',
'file path' => drupal_get_path('module', 'node'),
'type' => MENU_LOCAL_TASK,
'weight' => 0,
);
.