You are here

function ds_forms_preprocess_ds_forms_custom_form in Display Suite 7

Same name and namespace in other branches
  1. 7.2 modules/ds_forms/ds_forms.module \ds_forms_preprocess_ds_forms_custom_form()

Implements hook_preprocess_ds_forms_custom_form().

File

modules/ds_forms/ds_forms.module, line 172
Display Suite forms integration.

Code

function ds_forms_preprocess_ds_forms_custom_form(&$vars) {
  $rel_build = ds_build_load($vars['form'], $vars['form']['#form_id']);
  $entity_type = $rel_build->entity_type;
  $bundle = $rel_build->bundle;
  if ($vars['form']['#form_id'] == 'field_ui_display_overview_form') {
    return;
  }
  if ($layout = ds_get_layout($entity_type, $bundle, 'form', FALSE)) {

    // Hide empty regions variable.
    $hide_empty_regions = $layout['settings']['hide_empty_regions'];

    // Theme hook suggestions.
    $vars['theme_hook_suggestions'][] = $layout['layout'];
    $vars['theme_hook_suggestions'][] = $layout['layout'] . '__' . $entity_type;
    $vars['theme_hook_suggestions'][] = $layout['layout'] . '__' . $entity_type . '_' . $bundle;
    $form =& $vars['form'];

    // Add path to css file.
    if (isset($layout['css'])) {
      drupal_add_css($layout['path'] . '/' . $layout['layout'] . '.css');
    }

    // Add the hidden region.
    $layout['regions']['hidden'] = 'Hidden';

    // Create region variables based on the layout settings.
    foreach ($layout['regions'] as $region_name => $region) {

      // Create the region content.
      if ($region_name == 'hidden') {
        ds_forms_render_region($form, $region_name, $layout);
      }
      else {
        $vars[$region_name] = ds_forms_render_region($form, $region_name, $layout);

        // Hide empty regions.
        if ($hide_empty_regions && empty($vars[$region_name]) && empty($layout['flexible'])) {
          $vars[$region_name] = FALSE;
        }
        elseif (empty($vars[$region_name])) {
          $vars[$region_name] = ' ';
        }
      }

      // Add extras classes to the region.
      $vars[$region_name . '_classes'] = !empty($layout['settings']['classes'][$region_name]) ? ' ' . implode(' ', $layout['settings']['classes'][$region_name]) : '';
    }
  }
}