You are here

public function TaxonomyDisplayAssociatedDisplayHandlerViews::formFieldset in Taxonomy display 7

Build our form for the fieldset.

Overrides TaxonomyDisplayHandlerForm::formFieldset

See also

TaxonomyDisplayHandlerForm::formFieldset()

File

handlers/associated/views.inc, line 74

Class

TaxonomyDisplayAssociatedDisplayHandlerViews
Add a display handler that will use the Drupal core method of display.

Code

public function formFieldset(&$form, &$values, $options = NULL) {
  module_load_include('module', 'views');
  $form['#description'] = t('Use <em>Views</em> for displaying associated content.');

  // Get options for the view select field.
  $views = views_get_all_views();
  $select_options = array();
  foreach ($views as $view) {
    if (views_view_is_enabled($view)) {

      // #1507632 It has been reported that some views have empty human names,
      // so we add a condition and use the view name if human is unavailable.
      $select_options[$view->name] = empty($view->human_name) ? $view->name : $view->human_name;
    }
  }
  $form['view'] = array(
    '#ajax' => array(
      'callback' => 'taxonomy_display_associated_display_handler_views_callback',
      'wrapper' => 'replace-td-views-display-field',
    ),
    '#default_value' => isset($options['view']) ? $options['view'] : FALSE,
    '#description' => t('Select which view you would like to display the associated content.'),
    '#options' => $select_options,
    '#title' => t('View'),
    '#type' => 'select',
  );

  // Retrieve the views displays to supply as options.
  if (isset($values['view'])) {
    $view = $views[$values['view']];
  }
  elseif (isset($options['view'])) {
    $view = $views[$options['view']];
  }
  else {

    // If the view hasn't been submitted and it's not previously saved then
    // fetch it as the first view field option.
    reset($select_options);
    $view = $views[key($select_options)];
  }
  $select_options = array();

  // Get options for the view's display field.
  foreach ($view->display as $key => $display) {
    $select_options[$key] = $display->display_title;
  }
  $form['display'] = array(
    '#default_value' => isset($options['display']) ? $options['display'] : 'default',
    '#description' => t('The display selected will have the taxonomy term ID supplied as the first argument.'),
    '#options' => $select_options,
    '#prefix' => '<div id="replace-td-views-display-field">',
    '#suffix' => '</div>',
    '#title' => t("View's display"),
    '#type' => 'select',
  );
  $form['use_view_title'] = array(
    '#default_value' => isset($options['use_view_title']) ? $options['use_view_title'] : 0,
    '#return_value' => 1,
    '#description' => t('If checked, the page title will be inherited from the view\'s display page title, instead of using the term name.'),
    '#prefix' => '<div id="replace-td-views-use_view_title-field">',
    '#suffix' => '</div>',
    '#title' => t("Set page title the same as view display title"),
    '#type' => 'checkbox',
  );
}