public function VocabularyListBuilder::render in Drupal 9
Same name and namespace in other branches
- 8 core/modules/taxonomy/src/VocabularyListBuilder.php \Drupal\taxonomy\VocabularyListBuilder::render()
Builds the entity listing as renderable array for table.html.twig.
@todo Add a link to add a new item to the #empty text.
Overrides DraggableListBuilder::render
File
- core/
modules/ taxonomy/ src/ VocabularyListBuilder.php, line 161
Class
- VocabularyListBuilder
- Defines a class to build a listing of taxonomy vocabulary entities.
Namespace
Drupal\taxonomyCode
public function render() {
$entities = $this
->load();
// If there are not multiple vocabularies, disable dragging by unsetting the
// weight key.
if (count($entities) <= 1) {
unset($this->weightKey);
}
$build = parent::render();
// If the weight key was unset then the table is in the 'table' key,
// otherwise in vocabularies. The empty message is only needed if the table
// is possibly empty, so there is no need to support the vocabularies key
// here.
if (isset($build['table'])) {
$access_control_handler = $this->entityTypeManager
->getAccessControlHandler('taxonomy_vocabulary');
$create_access = $access_control_handler
->createAccess(NULL, NULL, [], TRUE);
$this->renderer
->addCacheableDependency($build['table'], $create_access);
if ($create_access
->isAllowed()) {
$build['table']['#empty'] = t('No vocabularies available. <a href=":link">Add vocabulary</a>.', [
':link' => Url::fromRoute('entity.taxonomy_vocabulary.add_form')
->toString(),
]);
}
else {
$build['table']['#empty'] = t('No vocabularies available.');
}
}
return $build;
}