zoukankan      html  css  js  c++  java
  • Drupal7 自定义表单元素(form element)

    <?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']);
    }
  • 相关阅读:
    HDU--1212大数取模
    欧拉函数
    自制体重转换器
    常用快捷键
    Markdown基本语法
    python全栈开发day50-jquery之ajax、XmlHttpRquest
    python全栈开发day49-jquery的位置信息、事件流、事件对象,事件委托,事件绑定和解绑
    阳历转阴历算法
    python全栈开发day48-jqurey自定义动画,jQuery属性操作,jQuery的文档操作,jQuery中的ajax
    python全栈开发day47-jqurey
  • 原文地址:https://www.cnblogs.com/catcat811/p/2108204.html
Copyright © 2011-2022 走看看