Returns a renderable array representing the edit page for one display.
public function getDisplayTab($view) {
$build = array();
$display_id = $view->displayID;
$display = $view
->get('executable')->displayHandlers[$display_id];
// If the plugin doesn't exist, display an error message instead of an edit
// page.
if (empty($display)) {
$title = isset($display->display['display_title']) ? $display->display['display_title'] : t('Invalid');
// @TODO: Improved UX for the case where a plugin is missing.
$build['#markup'] = t("Error: Display @display refers to a plugin named '@plugin', but that plugin is not available.", array(
'@display' => $display->display['id'],
'@plugin' => $display->display['display_plugin'],
));
}
else {
$build['details'] = $this
->getDisplayDetails($view, $display->display);
}
// In AJAX context, ViewUI::rebuildCurrentTab() returns this outside of form
// context, so hook_form_views_ui_edit_form_alter() is insufficient.
drupal_alter('views_ui_display_tab', $build, $view, $display_id);
return $build;
}