public function ConfigSplitEntityViewBuilder::viewMultiple in Configuration Split 2.0.x
Same name and namespace in other branches
- 8 src/ConfigSplitEntityViewBuilder.php \Drupal\config_split\ConfigSplitEntityViewBuilder::viewMultiple()
Builds the render array for the provided entities.
Parameters
array $entities: An array of entities implementing EntityInterface to view.
string $view_mode: (optional) The view mode that should be used to render the entity.
string $langcode: (optional) For which language the entity should be rendered, defaults to the current content language.
Return value
A render array for the entities, indexed by the same keys as the entities array passed in $entities.
Throws
\InvalidArgumentException Can be thrown when the set of parameters is inconsistent, like when trying to view Comments and passing a Node which is not the one the comments belongs to, or not passing one, and having the comments node not be available for loading.
Overrides EntityViewBuilder::viewMultiple
File
- src/
ConfigSplitEntityViewBuilder.php, line 34
Class
- ConfigSplitEntityViewBuilder
- EntityViewBuilder for Config Split entities.
Namespace
Drupal\config_splitCode
public function viewMultiple(array $entities = [], $view_mode = 'full', $langcode = NULL) {
/** @var \Drupal\config_split\Entity\ConfigSplitEntityInterface[] $entities */
$build = [];
/**
* @var string $entity_id
* @var \Drupal\config_split\Entity\ConfigSplitEntity $entity
*/
foreach ($entities as $entity_id => $entity) {
$config = $this->splitManager
->getSplitConfig($entity
->getConfigDependencyName());
// @todo make this prettier.
$build[$entity_id] = [
'#cache' => [
'tags' => $entity
->getCacheTags(),
],
];
try {
$storage = $this->splitManager
->singleExportPreview($config);
$build[$entity_id]['preview'] = [
'#type' => 'container',
'title' => [
'#type' => 'html_tag',
'#tag' => 'h3',
'#value' => $this
->t('Preview'),
],
'items' => [
'#theme' => 'item_list',
'#items' => $this
->listStorageContents($storage),
'#list_type' => 'ul',
],
];
} catch (\Exception $exception) {
$build[$entity_id]['preview'] = [
'#markup' => $this
->t('Can not display preview of %split', [
'%split' => $entity
->label(),
]),
];
}
try {
$storage = $this->splitManager
->singleExportTarget($config);
$build[$entity_id]['exported'] = [
'#type' => 'container',
'title' => [
'#type' => 'html_tag',
'#tag' => 'h3',
'#value' => $this
->t('Exported'),
],
'items' => [
'#theme' => 'item_list',
'#items' => $this
->listStorageContents($storage),
'#list_type' => 'ul',
],
];
} catch (\Exception $exception) {
$build[$entity_id]['exported'] = [
'#markup' => $this
->t('Can not display export storage of %split', [
'%split' => $entity
->label(),
]),
];
}
}
return $build;
}