public function GroupNodeController::addPage in Group 8
Same name and namespace in other branches
- 2.0.x modules/gnode/src/Controller/GroupNodeController.php \Drupal\gnode\Controller\GroupNodeController::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
- modules/
gnode/ src/ Controller/ GroupNodeController.php, line 61
Class
- GroupNodeController
- Returns responses for 'group_node' GroupContent routes.
Namespace
Drupal\gnode\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('node_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 = [
'%node_type' => $bundle_label,
];
$description = $create_mode ? $this
->t('Add new content of type %node_type to the group.', $t_args) : $this
->t('Add existing content of type %node_type to the group.', $t_args);
$build['#bundles'][$bundle_name]['label'] = $bundle_label;
$build['#bundles'][$bundle_name]['description'] = $description;
}
}
return $build;
}