1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- <?php
- namespace Drupal\edlp_studio;
- use Drupal\Core\Entity\EntityTypeInterface;
- use Drupal\Core\Entity\Routing\AdminHtmlRouteProvider;
- use Symfony\Component\Routing\Route;
- /**
- * Provides routes for Chutier entities.
- *
- * @see \Drupal\Core\Entity\Routing\AdminHtmlRouteProvider
- * @see \Drupal\Core\Entity\Routing\DefaultHtmlRouteProvider
- */
- class ChutierHtmlRouteProvider extends AdminHtmlRouteProvider {
- /**
- * {@inheritdoc}
- */
- public function getRoutes(EntityTypeInterface $entity_type) {
- $collection = parent::getRoutes($entity_type);
- $entity_type_id = $entity_type->id();
- if ($settings_form_route = $this->getSettingsFormRoute($entity_type)) {
- $collection->add("$entity_type_id.settings", $settings_form_route);
- }
- return $collection;
- }
- /**
- * Gets the settings form route.
- *
- * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
- * The entity type.
- *
- * @return \Symfony\Component\Routing\Route|null
- * The generated route, if available.
- */
- protected function getSettingsFormRoute(EntityTypeInterface $entity_type) {
- if (!$entity_type->getBundleEntityType()) {
- $route = new Route("/admin/structure/{$entity_type->id()}/settings");
- $route
- ->setDefaults([
- '_form' => 'Drupal\edlp_studio\Form\ChutierSettingsForm',
- '_title' => "{$entity_type->getLabel()} settings",
- ])
- ->setRequirement('_permission', $entity_type->getAdminPermission())
- ->setOption('_admin_route', TRUE);
- return $route;
- }
- }
- }
|