multiform_test.module in Multiple forms 7.2
Same filename and directory in other branches
@author Kálmán Hosszu - http://drupal.org/user/267481
File
tests/multiform_test.moduleView source
<?php
/**
* @file
*
*
*
* @author Kálmán Hosszu - http://drupal.org/user/267481
*/
/* ====================== */
/* ==== DRUPAL HOOKS ==== */
/* ====================== */
/**
* Implementation of hook_menu().
*
* @return An array of menu items.
*/
function multiform_test_menu() {
$items = array();
$items['multiform-test/1'] = array(
'title' => 'Multiform test page 1',
'page callback' => 'multiform_test1_callback',
'access callback' => TRUE,
'type' => MENU_CALLBACK,
);
$items['multiform-test/2'] = array(
'title' => 'Multiform test page 2',
'page callback' => 'multiform_test2_callback',
'access callback' => TRUE,
'type' => MENU_CALLBACK,
);
return $items;
}
/**
* Callback for Test 1
*/
function multiform_test1_callback() {
$settings = array(
'#multiform_id' => 'multiform_test1',
'#subforms' => array(
array(
'form_id' => 'multiform_test1_1',
'#map' => array(
0 => array(
'#parents' => array(
'submit',
),
'#triggering_submit' => array(
'save',
),
),
1 => array(
'#parents' => array(
'delete',
),
'#triggering_submit' => array(
'delete',
),
),
),
),
array(
'form_id' => 'multiform_test1_2',
'#map' => array(
0 => array(
'#parents' => array(
'submit',
),
'#triggering_submit' => array(
'save',
),
),
1 => array(
'#parents' => array(
'delete',
),
'#triggering_submit' => array(
'delete',
),
),
),
),
),
'#submit_map' => array(
'#submits' => array(
'save' => array(
'#type' => 'submit',
'#value' => 'save',
),
'delete' => array(
'#type' => 'submit',
'#value' => 'delete',
),
),
),
'#redirect_path' => 'multiform-test/1',
);
return multiform_get_form($settings);
}
/**
* Callback for Test 2
*/
function multiform_test2_callback() {
$settings = array(
'#multiform_id' => 'multiform_test2',
'#subforms' => array(
array(
'form_id' => 'multiform_test2_1',
'#map' => array(
0 => array(
'#parents' => array(
'submit',
),
'#triggering_submit' => array(
'save',
),
),
),
),
array(
'form_id' => 'multiform_test2_2',
'#map' => array(
0 => array(
'#parents' => array(
'submit',
),
'#triggering_submit' => array(
'save',
),
),
),
),
),
'#submit_map' => array(
'#submits' => array(
'save' => array(
'#type' => 'submit',
'#value' => 'save',
),
),
),
'#redirect_path' => 'multiform-test/2',
);
return multiform_get_form($settings);
}
/* ====================== */
/* == MODULE FUNCTIONS == */
/* ====================== */
/* FIRST TEST CASE */
/**
* Build multiform_test1_1 form.
*
* @param type $form
* @param type $form_state
* @return array
*/
function multiform_test1_1($form, $form_state) {
$form['submit'] = array(
'#type' => 'submit',
'#value' => 'save',
'#submit' => array(
'multiform_test1_submit_button',
),
);
$form['delete'] = array(
'#type' => 'submit',
'#value' => 'delete',
'#submit' => array(
'multiform_test1_delete_button',
),
);
return $form;
}
/**
* Build multiform_test1_2 form.
*
* @param type $form
* @param type $form_state
* @return string
*/
function multiform_test1_2($form, $form_state) {
$form['submit'] = array(
'#type' => 'submit',
'#value' => 'save',
'#submit' => array(
'multiform_test1_submit_button',
),
);
$form['delete'] = array(
'#type' => 'submit',
'#value' => 'delete',
'#submit' => array(
'multiform_test1_delete_button',
),
);
return $form;
}
/**
* Submit handing.
*
* @param type $form
* @param type $form_state
*/
function multiform_test1_submit_button($form, $form_state) {
drupal_set_message($form['#form_id'] . 'multiform_test1_submit_button');
}
/**
* Handling delete.
*
* @param type $form
* @param type $form_state
*/
function multiform_test1_delete_button($form, $form_state) {
drupal_set_message($form['#form_id'] . 'multiform_test1_delete_button');
}
/* SECOND TEST CASE */
/**
* Build multiform_test2_1 form.
*
* @param type $form
* @param type $form_state
* @return array
*/
function multiform_test2_1($form, $form_state) {
$form['required_text_1'] = array(
'#type' => 'textfield',
'#title' => 'test1',
'#required' => TRUE,
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => 'save',
'#submit' => array(
'multiform_test2_submit_button',
),
);
return $form;
}
/**
* Build multiform_test2_2 form.
*
* @param type $form
* @param type $form_state
* @return array
*/
function multiform_test2_2($form, $form_state) {
$form['required_text_2'] = array(
'#type' => 'textfield',
'#title' => 'test2',
'#required' => TRUE,
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => 'save',
'#submit' => array(
'multiform_test2_submit_button',
),
);
return $form;
}
/**
* Submit handing.
*
* @param type $form
* @param type $form_state
*/
function multiform_test2_submit_button($form, $form_state) {
drupal_set_message($form['#form_id'] . 'multiform_test2_submit_button');
}
Functions
Name | Description |
---|---|
multiform_test1_1 | Build multiform_test1_1 form. |
multiform_test1_2 | Build multiform_test1_2 form. |
multiform_test1_callback | Callback for Test 1 |
multiform_test1_delete_button | Handling delete. |
multiform_test1_submit_button | Submit handing. |
multiform_test2_1 | Build multiform_test2_1 form. |
multiform_test2_2 | Build multiform_test2_2 form. |
multiform_test2_callback | Callback for Test 2 |
multiform_test2_submit_button | Submit handing. |
multiform_test_menu | Implementation of hook_menu(). |