public function GroupMediaController::addPage in Group Media 8.2
Same name and namespace in other branches
- 8 src/Controller/GroupMediaController.php \Drupal\groupmedia\Controller\GroupMediaController::addPage()
Provides the group content creation overview page.
Parameters
\Drupal\group\Entity\GroupInterface $group: The group to add the group content to.
bool $create_mode: (optional) Whether the target entity still needs to be created. Defaults to FALSE, meaning the target entity is assumed to exist already.
Return value
array|\Symfony\Component\HttpFoundation\RedirectResponse The group content creation overview page or a redirect to the form for adding group content if there is only one group content type.
Overrides GroupContentController::addPage
File
- src/
Controller/ GroupMediaController.php, line 33
Class
- GroupMediaController
- Returns responses for 'group_media' GroupContent routes.
Namespace
Drupal\groupmedia\ControllerCode
public function addPage(GroupInterface $group, $create_mode = FALSE) {
$build = parent::addPage($group, $create_mode);
// Do not interfere with redirects.
if (!is_array($build)) {
return $build;
}
// Overwrite the label and description for all of the displayed bundles.
$storage_handler = $this->entityTypeManager
->getStorage('media_type');
foreach ($this
->addPageBundles($group, $create_mode) as $plugin_id => $bundle_name) {
if (!empty($build['#bundles'][$bundle_name])) {
$plugin = $group
->getGroupType()
->getContentPlugin($plugin_id);
$bundle_label = $storage_handler
->load($plugin
->getEntityBundle())
->label();
$t_args = [
'%media_type' => $bundle_label,
];
$description = $create_mode ? $this
->t('Create a media of type %media_type in the group.', $t_args) : $this
->t('Add an existing media of type %media_type to the group.', $t_args);
$build['#bundles'][$bundle_name]['label'] = $bundle_label;
$build['#bundles'][$bundle_name]['description'] = $description;
}
}
// Display the bundles in alpha order by label.
if (is_array($build['#bundles'])) {
uasort($build['#bundles'], function ($a, $b) {
return strnatcmp($a['label'], $b['label']);
});
}
return $build;
}