group-8.x-1.x-dev/src/Entity/Routing/GroupRouteProvider.php
src/Entity/Routing/GroupRouteProvider.php
<?php
namespace Drupal\group\Entity\Routing;
use Drupal\Core\Entity\EntityTypeInterface;
use Drupal\Core\Entity\Routing\DefaultHtmlRouteProvider;
use Symfony\Component\Routing\Route;
/**
* Provides routes for groups.
*/
class GroupRouteProvider extends DefaultHtmlRouteProvider {
/**
* {@inheritdoc}
*/
protected function getAddPageRoute(EntityTypeInterface $entity_type) {
if ($route = parent::getAddPageRoute($entity_type)) {
$route->setOption('_group_operation_route', TRUE);
return $route;
}
return NULL;
}
/**
* {@inheritdoc}
*/
protected function getAddFormRoute(EntityTypeInterface $entity_type) {
if ($route = parent::getAddFormRoute($entity_type)) {
$route->setOption('_group_operation_route', TRUE);
$route->setDefault('_controller', '\Drupal\group\Entity\Controller\GroupController::addForm');
$route->setDefault('_title_callback', '\Drupal\group\Entity\Controller\GroupController::addFormTitle');
return $route;
}
return NULL;
}
/**
* {@inheritdoc}
*/
protected function getEditFormRoute(EntityTypeInterface $entity_type) {
if ($route = parent::getEditFormRoute($entity_type)) {
$route->setOption('_group_operation_route', TRUE);
return $route;
}
return NULL;
}
/**
* {@inheritdoc}
*/
protected function getDeleteFormRoute(EntityTypeInterface $entity_type) {
if ($route = parent::getDeleteFormRoute($entity_type)) {
$route->setOption('_group_operation_route', TRUE);
return $route;
}
return NULL;
}
/**
* {@inheritdoc}
*/
protected function getCollectionRoute(EntityTypeInterface $entity_type) {
if ($entity_type->hasLinkTemplate('collection') && $entity_type->hasListBuilderClass()) {
/** @var \Drupal\Core\StringTranslation\TranslatableMarkup $label */
$label = $entity_type->getCollectionLabel();
$route = new Route($entity_type->getLinkTemplate('collection'));
$route
->addDefaults([
'_entity_list' => $entity_type->id(),
'_title' => $label->getUntranslatedString(),
'_title_arguments' => $label->getArguments(),
'_title_context' => $label->getOption('context'),
])
->setRequirement('_permission', 'access group overview');
return $route;
}
return NULL;
}
}
