You are here

function filter_form in Drupal 6

Same name and namespace in other branches
  1. 4 modules/filter.module \filter_form()
  2. 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

filter_form_validate()

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;
}