You are here

function form_builder_pre_render_form in Form Builder 6

Same name and namespace in other branches
  1. 7.2 includes/form_builder.admin.inc \form_builder_pre_render_form()
  2. 7 includes/form_builder.admin.inc \form_builder_pre_render_form()

Pre-render function to alter the form being edited by Form builder.

This function modifies the form element itself and sets a #title to label the form preview and an #show_palette property to indicate to the theme wrapper whether the field palette should be added.

1 string reference to 'form_builder_pre_render_form'
form_builder_preview in includes/form_builder.admin.inc
Form. Given a form array, present it for editing in a preview.

File

includes/form_builder.admin.inc, line 522
form_builder.admin.inc Administrative interface for editing forms.

Code

function form_builder_pre_render_form($form) {
  global $theme;
  jquery_ui_add(array(
    'ui.draggable',
    'ui.droppable',
    'ui.sortable',
  ));
  drupal_add_js('misc/jquery.form.js');
  drupal_add_js(drupal_get_path('module', 'form_builder') . '/form_builder.js');

  // TODO: This JS file should be loaded dynamically as needed.
  drupal_add_js(drupal_get_path('module', 'options_element') . '/options_element.js');
  drupal_add_js('misc/tabledrag.js');
  drupal_add_js('misc/collapse.js');
  $settings = array(
    'emptyForm' => theme('form_builder_empty_form'),
    'emptyFieldset' => theme('form_builder_empty_fieldset'),
    'noFieldSelected' => theme('form_builder_no_field_selected'),
    'fieldLoading' => theme('form_builder_field_loading'),
  );
  drupal_add_js(array(
    'formBuilder' => $settings,
  ), 'setting');
  drupal_add_css(drupal_get_path('module', 'form_builder') . '/form_builder.css');
  drupal_add_css(drupal_get_path('module', 'options_element') . '/options_element.css');

  // We can't have forms inside of forms, so change this entire form a markup.
  $form['#type'] = 'markup';

  // Set a title for the preview if none exists.
  $form['#title'] = !isset($form['#title']) ? t('Form preview') : $form['#title'];

  // Remove unnecessary FAPI elements.
  unset($form['form_build_id']);
  unset($form['form_token']);
  unset($form['form_builder_preview']);

  // Check if the Form Builder block is enabled.
  // Otherwise make our own columns.
  if (!isset($form['#show_palette'])) {
    if (module_exists('block')) {
      $form['#show_palette'] = !db_result(db_query("SELECT status FROM {blocks} WHERE module = 'form_builder' AND theme = '%s'", $theme));
    }
    else {
      $form['#show_palette'] = TRUE;
    }
  }
  if ($theme == 'garland' || $theme == 'minnelli') {
    drupal_add_css(drupal_get_path('module', 'form_builder') . '/form_builder.garland.css', 'theme');
  }
  return $form;
}