' . "\n";
// If #title is not set, we don't display any label or required marker.
if (!isset($element['#title'])) {
$element['#title_display'] = 'none';
}
$prefix = isset($element['#field_prefix']) ? '
' . $element['#field_prefix'] . ' ' : '';
$suffix = isset($element['#field_suffix']) ? '
' . $element['#field_suffix'] . '' : '';
switch ($element['#title_display']) {
case 'before':
$output .= ' ' . theme('form_element_label', $variables);
$output .= ' ' . '
' . $prefix . $element['#children'] . $suffix . "
\n";
break;
case 'invisible':
case 'after':
$output .= ' ' . $prefix . $element['#children'] . $suffix;
$output .= ' ' . theme('form_element_label', $variables) . "\n";
break;
case 'none':
case 'attribute':
// Output no label and no required marker, only the children.
$output .= ' ' . $prefix . $element['#children'] . $suffix . "\n";
break;
}
if (!empty($element['#description'])) {
$output .= '
' . $element['#description'] . "
\n";
}
$output .= "
\n";
return $output;
}
/**
* Form content for examples/form_example/element_example.
*
* Simple form to demonstrate how to use the various new FAPI elements
* we've defined.
*/
function form_example_element_demo_form($form, &$form_state) {
$form['a_form_example_textfield'] = array(
'#type' => 'form_example_textfield',
'#title' => t('Form Example textfield'),
'#default_value' => variable_get('form_example_textfield', ''),
'#description' => t('form_example_textfield is a new type, but it is actually uses the system-provided functions of textfield'),
);
$form['a_form_example_checkbox'] = array(
'#type' => 'form_example_checkbox',
'#title' => t('Form Example checkbox'),
'#default_value' => variable_get('form_example_checkbox', FALSE),
'#description' => t('Nothing more than a regular checkbox but with a theme provided by this module.'),
);
$form['a_form_example_element_discrete'] = array(
'#type' => 'form_example_phonenumber_discrete',
'#title' => t('Discrete phone number'),
'#default_value' => variable_get(
'form_example_element_discrete',
array(
'areacode' => '999',
'prefix' => '999',
'extension' => '9999',
)
),
'#description' => t('A phone number : areacode (XXX), prefix (XXX) and extension (XXXX). This one uses a "discrete" element type, one which stores the three parts of the telephone number separately.'),
);
$form['a_form_example_element_combined'] = array(
'#type' => 'form_example_phonenumber_combined',
'#title' => t('Combined phone number'),
'#default_value' => variable_get('form_example_element_combined', '0000000000'),
'#description' => t('form_example_element_combined one uses a "combined" element type, one with a single 10-digit value which is broken apart when needed.'),
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Submit'),
);
return $form;
}
/**
* Submit handler for form_example_element_demo_form().
*/
function form_example_element_demo_form_submit($form, &$form_state) {
// Exclude unnecessary elements.
unset($form_state['values']['submit'], $form_state['values']['form_id'], $form_state['values']['op'], $form_state['values']['form_token'], $form_state['values']['form_build_id']);
foreach ($form_state['values'] as $key => $value) {
variable_set($key, $value);
drupal_set_message(
t('%name has value %value',
array(
'%name' => $key,
'%value' => print_r($value, TRUE),
)
)
);
}
}