function filter_form in Drupal 6
Same name and namespace in other branches
- 4 modules/filter.module \filter_form()
- 5 modules/filter/filter.module \filter_form()
Generates a selector for choosing a format in a form.
Parameters
$value: The ID of the format that is currently selected; uses the default format if not provided.
$weight: The weight of the form element within the form.
$parents: The parents array of the element. Required when defining multiple text formats on a single form or having a different parent than 'format'.
Return value
Form API array for the form element.
See also
Related topics
4 calls to filter_form()
- block_box_form in modules/
block/ block.module - Define the custom block form.
- comment_form in modules/
comment/ comment.module - Generate the basic commenting form, for appending to a node or display on a separate page.
- node_body_field in modules/
node/ node.pages.inc - Return a node body field, with format and teaser.
- user_edit_form in modules/
user/ user.module
File
- modules/
filter/ filter.module, line 488 - Framework for handling filtering of content.
Code
function filter_form($value = FILTER_FORMAT_DEFAULT, $weight = NULL, $parents = array(
'format',
)) {
$value = filter_resolve_format($value);
$formats = filter_formats();
$extra = theme('filter_tips_more_info');
if (count($formats) > 1) {
$form = array(
'#type' => 'fieldset',
'#title' => t('Input format'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
'#weight' => $weight,
'#element_validate' => array(
'filter_form_validate',
),
);
// Multiple formats available: display radio buttons with tips.
foreach ($formats as $format) {
// Generate the parents as the autogenerator does, so we will have a
// unique id for each radio button.
$parents_for_id = array_merge($parents, array(
$format->format,
));
$form[$format->format] = array(
'#type' => 'radio',
'#title' => $format->name,
'#default_value' => $value,
'#return_value' => $format->format,
'#parents' => $parents,
'#description' => theme('filter_tips', _filter_tips($format->format, FALSE)),
'#id' => form_clean_id('edit-' . implode('-', $parents_for_id)),
);
}
}
else {
// Only one format available: use a hidden form item and only show tips.
$format = array_shift($formats);
$form[$format->format] = array(
'#type' => 'value',
'#value' => $format->format,
'#parents' => $parents,
);
$tips = _filter_tips(variable_get('filter_default_format', 1), FALSE);
$form['format']['guidelines'] = array(
'#title' => t('Formatting guidelines'),
'#value' => theme('filter_tips', $tips, FALSE, $extra),
);
}
$form[] = array(
'#value' => $extra,
);
return $form;
}