我对Drupal相当新,只是让我的第一个模块显示了一个表单。在hook_menu()中,我设置了$ items [' form'],如下所示。当我导航到mysite.com/form时,除了主题和:找不到页面,请求的页面" / form"无法找到。
我试图清除我的缓存,给我的模块一个不同的名称,确保我的模块已启用,没有任何帮助。有谁知道问题可能是什么? .module文件中的代码就在这里:
<?php
//implements hook_permission()
function form_example_permission() {
return array(
'Submit form_example' => array(
'title' => t('Submit form_example'),
'description' => t('Submit the form_example form'),
),
);
}
//implements hook_menu()
function form_example_menu() {
$items['form'] = array(
'title' => 'My Example Form',
'type' => MENU_NORMAL_ITEM,
'acces' => TRUE,
'page callback' => 'drupal_get_form()',
'page arguments' => array('form_example_form'),
'acces arguments' => array('acces content'),
);
return $items;
}
//implements hook_form()
function form_example_form($form, &$form_state) {
$form['mynumber'] = array (
'#type' => 'textfield',
'#title' => t('My Number'),
'#size' => 10,
'#maxlength' => 10,
'#required' => TRUE,
'#description' => t('Please enter a valid number'),
);
$form['mytextfield'] = array(
'#type' => 'textfield',
'#title' => t('My Textfield'),
'#size' => 60,
'#maxlength' => 128,
'#required' => TRUE,
);
$form['mytext'] = array(
'#title' => t('My Textarea'),
'#type' => 'textarea',
'#description' => t('Enter some text'),
'#default value' => '',
'#required' => TRUE,
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Add item'),
);
return $form;
}
答案 0 :(得分:1)
'page callback' => 'drupal_get_form()
错误,您需要从函数名中删除括号。正确的实施将是page callback' => 'drupal_get_form
。并且acces => TRUE
也是错误的,它必须是'访问回调',如果你设置固定的TRUE值,那么你不需要指定access arguments
密钥。因为access callback
无论如何都会返回TRUE。进一步reading ..
<强>更新强> 例如:
function form_example_permission() {
return array(
'submit form_example' => array(
'title' => t('Submit form_example'),
'description' => t('Submit the form_example form'),
),
);
}
//implements hook_menu()
function form_example_menu() {
$items['form'] = array(
'title' => 'My Example Form',
'type' => MENU_NORMAL_ITEM,
'access callback' => 'user_access',
'page callback' => 'drupal_get_form',
'page arguments' => array('form_example_form'),
'access arguments' => array('submit form_example'),
);
return $items;
}
(你的代码中有一个拼写错误)不要忘记刷新缓存。
答案 1 :(得分:1)
请将acces
更改为access
并将drupal_get_form()
更改为drupal_get_form
,然后更改为clear a caches
function form_example_menu() {
$items['form'] = array(
'title' => 'My Example Form',
'type' => MENU_NORMAL_ITEM,
'access' => TRUE,
'page callback' => 'drupal_get_form',
'page arguments' => array('form_example_form'),
'access arguments' => array('access content'),
);
return $items;
}