You are here

function node_gallery_api_flatten_item_edit_form in Node Gallery 7

Eliminates any fieldsets from the image item edit form.

1 call to node_gallery_api_flatten_item_edit_form()
node_gallery_api_item_edit_form in ./node_gallery_api.pages.inc
Gallery Item edit form.

File

./node_gallery_api.pages.inc, line 630
Node Gallery module.

Code

function node_gallery_api_flatten_item_edit_form($form_item, &$flattened = array(), $inheritance = array()) {
  if (empty($form_item) || !is_array($form_item)) {
    return $form_item;
  }
  if (empty($flattened)) {

    // We start with the whole form, because nested values will be overwritten.
    $flattened = $form_item;
  }
  foreach (element_children($form_item) as $key) {
    $element = $form_item[$key];
    if (isset($element['#type']) && $element['#type'] == 'fieldset') {
      if (isset($element['#tree']) && !empty($element['#tree'])) {

        // We have to keep this as its tree preserving. just remove fieldset.
        unset($element['#type']);
        $flattened[$key] = $element;
      }
      else {

        // This overwrites the old level if existing, so the field
        // inherits title and weight from the 'deepest' fieldset.
        $inheritance['#title'] = $element['#title'];
        $inheritance['#weight'] = $element['#weight'];
        unset($flattened[$key]);
        node_gallery_api_flatten_item_edit_form($element, $flattened, $inheritance);
        $inheritance = array();
      }
    }
    else {
      $flattened[$key] = array_merge($inheritance, $element);
    }
  }
  return $flattened;
}