Exemple #1
0
/**
 * 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);
    }
}