You are here

function finder_views_form_finder_admin_element_edit_alter in Finder 7

Same name and namespace in other branches
  1. 6 modules/finder_views/finder_views.module \finder_views_form_finder_admin_element_edit_alter()

Implements hook_form_FORM_ID_alter().

See also

hook_form_FORM_ID_alter()

File

modules/finder_views/finder_views.module, line 204
The finder views module.

Code

function finder_views_form_finder_admin_element_edit_alter(&$form, $form_state) {
  $finder =& $form_state['storage']['finder'];
  if ($finder->base == 'views') {
    $element =& $form_state['storage']['finder_element_defaults'];
    unset($form['settings']['choices']['sort']);
    $form['settings']['choices']['displays'] = array(
      '#type' => 'fieldset',
      '#title' => t('Views displays'),
      '#weight' => 270,
      '#collapsible' => TRUE,
      '#collapsed' => TRUE,
      '#description' => t('Leaving this set to "Defaults" is perfectly suitable for most cases.'),
    );
    $displays = finder_views_get_displays($finder->settings['views']['view']);
    $form['settings']['choices']['displays']['query'] = array(
      '#type' => 'select',
      '#title' => t('Query display'),
      '#default_value' => $element->settings['choices']['displays']['query'] ? $element->settings['choices']['displays']['query'] : 'default',
      '#options' => $displays,
      '#required' => TRUE,
      '#weight' => 10,
      '#description' => t('
          Allows you to use a specific display to calculate the choices list,
          you can use this to add sort/filter settings via Views that do not
          affect other elements or the results.'),
    );
    $form['settings']['choices']['views'] = array(
      '#type' => 'fieldset',
      '#title' => t('Views arguments'),
      '#weight' => 280,
      '#collapsible' => TRUE,
      '#collapsed' => TRUE,
      '#description' => t('Restrict possible choices using arguments.  These arguments will not apply to the results - use with caution.'),
    );
    $form['settings']['choices']['views']['args'] = finder_php_setting(array(
      '#type' => 'textarea',
      '#default_value' => isset($element->settings['choices']['views']['args']) ? $element->settings['choices']['views']['args'] : '',
      '#title' => t('Arguments'),
      '#rows' => 1,
      '#description' => t('
          You can provide a list of arguments seperated by a delimiter.
          e.g: <em>term_1/term_2</em>.<br />Or insert PHP code to generate the
          list of arguments. e.g: <em>term_1/&lt;?php print "term_x/term_y";
          ?&gt;/term_2</em>. (Variables available: $finder_element)'),
    ), array(
      'finder' => t('Object containing data about this finder.'),
    ));
    $form['settings']['choices']['views']['delimiter'] = array(
      '#type' => 'textfield',
      '#default_value' => isset($element->settings['choices']['views']['delimiter']) ? $element->settings['choices']['views']['delimiter'] : '/',
      '#title' => t('Delimiter'),
      '#size' => 5,
      '#maxlength' => 10,
      '#description' => t('This is the character used to split multiple arguments above.'),
      '#required' => TRUE,
    );
  }
}