custom/form_helper/form_helper_validation/form_helper_validation.demo.inc, line 11
form_helper_validation_demo_form()Demo form for form helper validation
<?php
function form_helper_validation_demo_form() {
include_once('form_helper_validation.test.data.inc');
$path = drupal_get_path('module', 'form_helper_validation');
drupal_add_css($path .'/form_helper_validation.demo.css');
drupal_add_js($path .'/form_helper_validation.demo.js');
$rules = _form_helper_validation_get_rules();
$test_data = form_helper_validation_test_data();
// Form
$form = array(
'#tree' => TRUE,
'#redirect' => FALSE,
);
// Links to test form with valid and invalid data
$form['test'] = array(
'#type' => 'markup',
'#value' => '<div>Test: <a href="#" id="form-helper-validation-demo-valid">valid data</a> | <a href="#" id="form-helper-validation-demo-invalid">invalid data</a></div>',
);
// Loop rule and generate elements
foreach ($rules as $key => $value) {
// Fielset
$form[$key] = array(
'#type' => 'fieldset',
'#attributes' => array('class' => 'form-helper-validation-demo'),
);
// Value
$form[$key]['value'] = array(
'#type' => 'textfield',
'#title' => ucwords($key) .' '. t('value'),
'#element_validate' => array('form_helper_validation_validate_element_'. $key),
// Call with rule type
// '#element_validate' => array('form_helper_validation_validate_element_name'),
);
// Test Data
if ($test_data[$key]) {
// Test options with valid and invalid optgroups
$options = array("" => "Select a test");
foreach ($test_data[$key]['valid'] as $valid_value) {
$options['valid'][$valid_value] = $valid_value;
}
foreach ($test_data[$key]['invalid'] as $invalid_value) {
$options['invalid'][$invalid_value] = $invalid_value;
}
// Test
$form[$key]['tests'] = array(
'#type' => 'select',
'#title' => ucwords($key) .' '. t('test data'),
'#options' => $options,
);
// Display rule options in fieldset
if ($test_data[$key]['options']) {
// Set element validate options
$form[$key]['value']['#element_validate_options'] = $test_data[$key]['options'];
$form[$key]['options'] = array(
'#type' => 'fieldset',
'#title' => ucwords($key) .' '. t('options'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
// Create elements for each rule option
foreach ($test_data[$key]['options'] as $option_key => $option_value) {
$form[$key]['options'][$option_key] = array(
'#type' => 'textfield',
'#title' => $option_key,
'#default_value' => $option_value,
);
}
}
}
}
// Custom fieldset
$form['custom'] = array(
'#type' => 'fieldset',
'#attributes' => array('class' => 'form-helper-validation-demo'),
);
$form['custom']['value'] = array(
'#type' => 'textfield',
'#title' => t('Custom ') .' '. t('value'),
'#element_validate' => array('form_helper_validation_demo_custom_validation_rule'),
);
$form['custom']['tests'] = array(
'#type' => 'select',
'#title' => t('Custom ') .' '. t('test data'),
'#options' => array(
'' => 'Select a test',
'valid' => array('abc' => 'abc'),
'invalid' => array('def' => 'def'),
),
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Submit'),
);
return $form;
}
?>