function ds_forms_preprocess_ds_forms_custom_form in Display Suite 7.2
Same name and namespace in other branches
- 7 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 129 - Display Suite forms integration.
Code
function ds_forms_preprocess_ds_forms_custom_form(&$vars) {
$form = ds_build_load($vars['form'], $vars['form']['#form_id']);
if (!$form) {
return;
}
$entity_type = $form->entity_type;
$bundle = $form->bundle;
if ($layout = ds_get_layout($entity_type, $bundle, 'form', FALSE)) {
// 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);
}
// Add extras classes to the region.
$vars[$region_name . '_classes'] = !empty($layout['settings']['classes'][$region_name]) ? ' ' . implode(' ', $layout['settings']['classes'][$region_name]) : '';
// Add a wrapper to the region.
if (empty($layout['flexible'])) {
$vars[$region_name . '_wrapper'] = isset($layout['settings']['wrappers'][$region_name]) ? $layout['settings']['wrappers'][$region_name] : 'div';
}
}
// Add layout attributes if any
if (!empty($layout['settings']['layout_attributes'])) {
$vars['layout_attributes'] = ' ' . $layout['settings']['layout_attributes'];
}
else {
$vars['layout_attributes'] = '';
}
if (isset($layout['settings']['classes']['layout_class'])) {
foreach ($layout['settings']['classes']['layout_class'] as $layout_class) {
$vars['classes_array'][] = $layout_class;
}
}
// Ensure there is a class
$vars['classes_array'][] = 'ds-form';
// Merge the classes into a string
$vars['classes'] = implode(' ', $vars['classes_array']);
// Add a layout wrapper
$vars['layout_wrapper'] = isset($layout['settings']['layout_wrapper']) ? $layout['settings']['layout_wrapper'] : 'div';
// Add the rest of the form elements
$vars['drupal_render_children'] = drupal_render_children($vars['form']);
}
}