/** * Recurses through forms for input filter fieldsets and alters them. */ function _rubik_filter_form_alter(&$form) { $found = FALSE; foreach (element_children($form) as $id) { // Filter form element found if (isset($form[$id]['#element_validate']) && is_array($form[$id]['#element_validate']) && in_array('filter_form_validate', $form[$id]['#element_validate'])) { $form[$id]['#type'] = 'markup'; $form[$id]['#theme'] = 'filter_form'; $found = TRUE; } elseif ($id == 'format' && !empty($form[$id]['format']['guidelines'])) { $form[$id]['#theme'] = 'filter_form'; $found = TRUE; } else { _rubik_filter_form_alter($form[$id]); } } // If filter elements found, adjust parent element. if ($found) { foreach (element_children($form) as $element) { $form[$element]['#rubik_filter_form'] = TRUE; } $form = array('#type' => 'item', '#weight' => isset($form['#weight']) ? $form['#weight'] : 0, $form); } }
/** * Recurses through forms for input filter fieldsets and alters them. */ function _rubik_filter_form_alter(&$form) { $found = FALSE; $multiple_fields = FALSE; // Unlimited value CCK fields should not be altered // to avoid breaking the AHAH drag n drop and 'Add more' // functionality. if (isset($form['#field_name'])) { $field_name = $form['#field_name']; $field = content_fields($field_name); if ($field['multiple'] > 0) { $multiple_fields = TRUE; } } foreach (element_children($form) as $id) { // Filter form element found if (isset($form[$id]['#element_validate']) && is_array($form[$id]['#element_validate']) && in_array('filter_form_validate', $form[$id]['#element_validate'])) { if ($multiple_fields === TRUE) { continue; } $form[$id]['#type'] = 'markup'; $form[$id]['#theme'] = 'filter_form'; $found = TRUE; } elseif ($id == 'format' && !empty($form[$id]['format']['guidelines'])) { if ($multiple_fields === TRUE) { continue; } $form[$id]['#theme'] = 'filter_form'; $found = TRUE; } else { _rubik_filter_form_alter($form[$id]); } } // If filter elements found, adjust parent element. if ($found) { foreach (element_children($form) as $element) { $form[$element]['#rubik_filter_form'] = TRUE; } $form = array('#type' => 'item', '#weight' => isset($form['#weight']) ? $form['#weight'] : 0, $form); } }