display[$options['display']])) { watchdog( 'taxonomy_display', 'The view and/or view display for %vocab is missing, go to the full display page and reconfigure the taxonomy term\'s associated content display.', array( '%vocab' => $term->vocabulary_machine_name, '!link' => url('admin/structure/taxonomy/' . $term->vocabulary_machine_name . '/display/full'), ), WATCHDOG_ERROR ); } // Else if the user has access to the view. elseif ($view->access($options['display'])) { // Generate the view's output. $output = $view->preview($options['display'], array($term->tid)); if ($output) { $build['view'] = array( '#markup' => $output, ); } } return $build; } /** * Build our form for the fieldset. * * @see TaxonomyDisplayHandlerForm::formFieldset() */ public function formFieldset(&$form, &$values, $options = NULL) { module_load_include('module', 'views'); $form['#description'] = t('Use Views 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)) { $select_options[$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' => '
', '#suffix' => '
', '#title' => 'View\'s display', '#type' => 'select', ); } /** * We store values to access later for rendering and editing. * * @see TaxonomyDisplayHandlerForm::formSubmit() */ public function formSubmit($form, &$values) { // We are using the exact keys that our formFieldset() implementation // defines and we want all of the values stored, so we have no need to alter // them before returning. return $values; } }