<?php /** * Implements hook_element_info(). */ function example_element_info() { $types = array( 'example' => array( '#input' => TRUE, '#tree' => TRUE, '#process' => array('example_process'), '#theme' => array('example'), '#pre_render' => array('form_pre_render_conditional_form_element'),请问这个有什么作用? '#value_callback' => 'example_value_callback' ) ); return $types; } /** * element显示前对element内参数的处理 */ function example_process($element, $form_state) { if(isset($element['default_value'])) { $element['#default_value'] = $element['default_value']; } return $element; } /** * element呈现的模板 */ function theme_example($variables) { $output = '<input name="example" type="text" value=""/>'; return $output; } /** * from submit后,element的最终值 */ function example_value_callback($element, $input = FALSE, &$form_state) { if ($input !== FALSE) { // element可以由多个element组成,但只有一个返回值,其他element将不返回 return $_POST['example']; } elseif (!empty($element['#default_value'])) { return $element['#default_value']; } return; } /** * Implements hook_theme(). */ function example_theme() { return array( 'example' => array( 'render element' => 'element', ) ); } function example_menu() { $items = array(); $items['test_element'] = array( 'title' => 'Example', 'page callback' => 'drupal_get_form', 'page arguments' => array('example_form'), 'access callback' => TRUE, 'expanded' => TRUE, ); return $items; } function example_form($form, &$form_state) { $form = array(); $form['example'] = array( '#type' => 'example', '#title' => 'example', ); $form['submit'] = array( '#type' => 'submit', '#value' => 'Submit' ); return $form; } function example_form_submit($form, &$form_state) { drupal_set_message('value: '.$form_state['values']['example']); }
还有为什么加载完这个模块,用了这个表单元素类型后总提示:
Notice: Undefined index: #type in _form_builder_handle_input_element() (line 1985 of E:\xampp\htdocs\drupal\includes\form.inc).
求各位大神帮帮忙!感激不尽!!标签
Drupal 版本