我有自己的模块,我实现了hook_menu
,我想要一个菜单项重定向(菜单必须保持活动状态)到现有的webform页面,这个页面是:?q = node / add /网络表单。
$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,
);
答案 0 :(得分:3)
使用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,
);
另请注意$ items ['adminQuestions']是不好的做法:URLS和路径永远不应区分大小写:实际上:在任何代码中都强烈建议不要使用Drupal CamelCase。
答案 1 :(得分:1)
如果您指的是通过重定向 HTTP重定向,则可以简单地使用drupal_goto('path/to/webform')
,但这没有意义,因为您可以直接使用网络表单路径。 IMO你需要的是一个drupal_get_form()
- 类似于Webform的API node_load()
,因此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实现负责对要形成的节点进行处理。或者,您可以根据需要更改网络表单路径。
答案 2 :(得分:1)
以下是答案:
$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是node / add / webform的别名。 感谢
答案 3 :(得分:0)
阅读评论,听起来像是要创建/ node / add / webform的路径别名。您不需要实现hook_menu。
您在/ admin / build / path / add创建别名(确保已启用路径模块)。
答案 4 :(得分:0)
以下是我为制作选项卡组的“添加节点页”部分所做的工作
$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,
);