function ViewListBuilder::getDisplaysList
Same name in other branches
- 9 core/modules/views_ui/src/ViewListBuilder.php \Drupal\views_ui\ViewListBuilder::getDisplaysList()
- 8.9.x core/modules/views_ui/src/ViewListBuilder.php \Drupal\views_ui\ViewListBuilder::getDisplaysList()
- 11.x core/modules/views_ui/src/ViewListBuilder.php \Drupal\views_ui\ViewListBuilder::getDisplaysList()
Gets a list of displays included in the view.
Parameters
\Drupal\Core\Entity\EntityInterface $view: The view entity instance to get a list of displays for.
Return value
array An array of display types that this view includes.
1 call to ViewListBuilder::getDisplaysList()
- ViewListBuilder::buildRow in core/
modules/ views_ui/ src/ ViewListBuilder.php - Builds a row for an entity in the entity listing.
File
-
core/
modules/ views_ui/ src/ ViewListBuilder.php, line 252
Class
- ViewListBuilder
- Defines a class to build a listing of view entities.
Namespace
Drupal\views_uiCode
protected function getDisplaysList(EntityInterface $view) {
$displays = [];
$executable = $view->getExecutable();
$executable->initDisplay();
foreach ($executable->displayHandlers as $display) {
$rendered_path = FALSE;
$definition = $display->getPluginDefinition();
if (!empty($definition['admin'])) {
if ($display->hasPath()) {
$path = $display->getPath();
if ($view->status() && !str_contains($path, '%')) {
// Wrap this in a try/catch as trying to generate links to some
// routes may throw an exception, for example if they do not
// respond to HTML, such as RESTExports.
try {
// @todo Views should expect and store a leading /. See:
// https://www.drupal.org/node/2423913
$rendered_path = Link::fromTextAndUrl('/' . $path, Url::fromUserInput('/' . $path))->toString();
} catch (BadRequestException|NotAcceptableHttpException $e) {
$rendered_path = '/' . $path;
}
}
else {
$rendered_path = '/' . $path;
}
}
$displays[] = [
'display' => $definition['admin'],
'path' => $rendered_path,
];
}
}
sort($displays);
return $displays;
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.