You are here

function widgets_template_auto_form in Widgets 7

Form structure for the template auto form.

Note that this is not a complete form, it only contains the portion of the form for configuring the resize options. Therefore it does not not need to include metadata about the element, nor a submit button.

Parameters

$data: The current configuration for this resize element.

1 call to widgets_template_auto_form()
widgets_definition_edit_form_submit in ./widgets.admin.inc
Submit handler for adding a new widget set.
1 string reference to 'widgets_template_auto_form'
widgets_definition_edit_form_submit in ./widgets.admin.inc
Submit handler for adding a new widget set.

File

./widgets.admin.inc, line 762
Administration pages for widget settings.

Code

function widgets_template_auto_form($data, $element = NULL) {
  $form = array();
  if (!isset($element)) {
    $element = widgets_element_load_by_admin_path();
  }
  if (isset($element['data']) && count($element['data'])) {
    $data = $element['data'];
  }
  $fields = widgets_field_scan($element['template']);
  if (is_array($fields)) {
    foreach ($fields as $key => $values) {
      $keys = explode(':', $key);
      if (count($keys) > 0) {
        $key = $keys[count($keys) - 1];
      }
      $default = '';
      if (count($keys) == 1) {
        $default = isset($data[$keys[0]]) ? $data[$keys[0]] : '';
      }
      elseif (count($keys) == 2) {
        $default = isset($data[$keys[0]][$keys[1]]) ? $data[$keys[0]][$keys[1]] : '';
      }
      $title = ucfirst(str_replace(array(
        '_',
        '-',
      ), ' ', $key));
      $field = array(
        '#type' => 'textfield',
        '#title' => t($title),
        '#default_value' => $default,
        '#template_default_value' => $values['default'],
        '#description' => t('Leave blank to use default %default.', array(
          '%default' => $values['default'],
        )),
      );
      if (isset($values['pre']) || isset($values['post'])) {
        if (isset($values['pre'])) {
          $field['#replace_pre'] = $values['pre'];
        }
        if (isset($values['post'])) {
          $field['#replace_post'] = $values['post'];
        }
        $field['#description'] .= ' ' . t('Use <none> to remove setting.');
      }
      if (count($keys) == 1) {
        $form[$key] = $field;
      }
      else {
        if (!isset($form[$keys[0]])) {
          $form[$keys[0]] = array(
            '#type' => 'fieldset',
            '#title' => ucfirst(str_replace(array(
              '_',
              '-',
            ), ' ', $keys[0])),
            '#collapsible' => TRUE,
            '#collapsed' => FALSE,
          );
        }
        $form[$keys[0]][$key] = $field;
      }
    }
  }
  return $form;
}