Ejemplo n.º 1
0
 /**
  * {@inheritdoc}
  */
 public function getDerivativeDefinitions($base_plugin_definition)
 {
     $this->derivatives = [];
     /** @var \Drupal\rng\Entity\EventType[] $event_types */
     foreach ($this->eventManager->getEventTypes() as $entity_type => $event_types) {
         $cache_tags = $this->entityManager->getDefinition($entity_type)->getListCacheTags();
         foreach ($event_types as $event_type) {
             $cache_tags = Cache::mergeTags($cache_tags, $event_type->getCacheTags());
         }
         // Only need one set of tasks task per entity type.
         if ($this->routeProvider->getRouteByName("entity.{$entity_type}.canonical")) {
             $event_default = "rng.event.{$entity_type}.event.default";
             $this->derivatives[$event_default] = array('title' => t('Event'), 'base_route' => "entity.{$entity_type}.canonical", 'route_name' => "rng.event.{$entity_type}.event", 'weight' => 30, 'cache_tags' => $cache_tags);
             $this->derivatives["rng.event.{$entity_type}.event.settings"] = array('title' => t('Settings'), 'route_name' => $this->derivatives[$event_default]['route_name'], 'parent_id' => 'rng.local_tasks:' . $event_default, 'weight' => 10, 'cache_tags' => $cache_tags);
             $this->derivatives["rng.event.{$entity_type}.event.access"] = array('title' => t('Access'), 'route_name' => "rng.event.{$entity_type}.access", 'parent_id' => 'rng.local_tasks:' . $event_default, 'weight' => 20, 'cache_tags' => $cache_tags);
             $this->derivatives["rng.event.{$entity_type}.event.messages"] = array('title' => t('Messages'), 'route_name' => "rng.event.{$entity_type}.messages", 'parent_id' => 'rng.local_tasks:' . $event_default, 'weight' => 30, 'cache_tags' => $cache_tags);
             $this->derivatives["rng.event.{$entity_type}.event.group.list"] = array('title' => t('Groups'), 'route_name' => "rng.event.{$entity_type}.group.list", 'parent_id' => 'rng.local_tasks:' . $event_default, 'weight' => 40, 'cache_tags' => $cache_tags);
             $this->derivatives["rng.event.{$entity_type}.register.type_list"] = array('route_name' => "rng.event.{$entity_type}.register.type_list", 'base_route' => "entity.{$entity_type}.canonical", 'title' => t('Register'), 'weight' => 40, 'cache_tags' => $cache_tags);
         }
     }
     foreach ($this->derivatives as &$entry) {
         $entry += $base_plugin_definition;
     }
     return parent::getDerivativeDefinitions($base_plugin_definition);
 }
Ejemplo n.º 2
0
 /**
  * {@inheritdoc}
  */
 protected function alterRoutes(RouteCollection $collection)
 {
     $event_types = $this->eventManager->getEventTypes();
     foreach (array_keys($event_types) as $entity_type) {
         $definition = $this->entityManager->getDefinition($entity_type);
         if ($canonical_path = $definition->getLinkTemplate('canonical')) {
             $manage_requirements = ['_entity_access' => $entity_type . '.manage event', '_entity_is_event' => 'TRUE', '_permission' => 'debug rng'];
             $options = [];
             $options['parameters'][$entity_type]['type'] = 'entity:' . $entity_type;
             // Rules.
             $route = new Route($canonical_path . '/event/rules', array('_controller' => '\\Drupal\\rng_debug\\Controller\\DebugController::listing', '_title' => 'Rules', 'event' => $entity_type), $manage_requirements, $options);
             $collection->add("rng.event.{$entity_type}.rules", $route);
         }
     }
 }
Ejemplo n.º 3
0
 /**
  * {@inheritdoc}
  */
 public function getDerivativeDefinitions($base_plugin_definition)
 {
     $this->derivatives = [];
     $event_types = $this->eventManager->getEventTypes();
     foreach (array_keys($event_types) as $entity_type) {
         // Only need one set of tasks task per entity type.
         if ($this->routeProvider->getRouteByName("entity.{$entity_type}.canonical")) {
             $event_default = "rng.event.{$entity_type}.event.default";
             $this->derivatives["rng.event.{$entity_type}.event.rules"] = array('title' => t('Rules'), 'route_name' => "rng.event.{$entity_type}.rules", 'parent_id' => 'rng.local_tasks:' . $event_default, 'weight' => 20);
         }
     }
     foreach ($this->derivatives as &$entry) {
         $entry += $base_plugin_definition;
     }
     return parent::getDerivativeDefinitions($base_plugin_definition);
 }
Ejemplo n.º 4
0
 /**
  * {@inheritdoc}
  */
 protected function alterRoutes(RouteCollection $collection)
 {
     $event_types = $this->eventManager->getEventTypes();
     foreach (array_keys($event_types) as $entity_type) {
         $definition = $this->entityManager->getDefinition($entity_type);
         if ($canonical_path = $definition->getLinkTemplate('canonical')) {
             $manage_requirements = ['_entity_access' => $entity_type . '.manage event', '_entity_is_event' => 'TRUE'];
             $options = [];
             // Option will invoke EntityConverter ParamConverter to upcast the
             // entity in $canonical_path.
             $options['parameters'][$entity_type]['type'] = 'entity:' . $entity_type;
             // Manage Event.
             $route = new Route($canonical_path . '/event', array('_form' => '\\Drupal\\rng\\Form\\EventSettingsForm', '_title' => 'Manage event', 'event' => $entity_type), $manage_requirements, $options);
             $collection->add("rng.event.{$entity_type}.event", $route);
             // Access.
             $route = new Route($canonical_path . '/event/access', array('_controller' => '\\Drupal\\rng\\Controller\\EventController::listing_access', '_title' => 'Access', 'event' => $entity_type), $manage_requirements, $options);
             $collection->add("rng.event.{$entity_type}.access", $route);
             // Reset access to default.
             $route = new Route($canonical_path . '/event/access/reset', array('_form' => '\\Drupal\\rng\\Form\\EventAccessResetForm', '_title' => 'Reset access to default', 'event' => $entity_type), $manage_requirements, $options);
             $collection->add("rng.event.{$entity_type}.access.reset", $route);
             // Messages.
             $route = new Route($canonical_path . '/event/messages', array('_form' => '\\Drupal\\rng\\Form\\MessageListForm', '_title' => 'Messages', 'event' => $entity_type), $manage_requirements, $options);
             $collection->add("rng.event.{$entity_type}.messages", $route);
             // Message add.
             $route = new Route($canonical_path . '/event/messages/add', array('_form' => '\\Drupal\\rng\\Form\\MessageActionForm', '_title' => 'Add message', 'event' => $entity_type), $manage_requirements, $options);
             $collection->add("rng.event.{$entity_type}.messages.add", $route);
             // Group list.
             $route = new Route($canonical_path . '/event/groups', array('_controller' => '\\Drupal\\rng\\Controller\\GroupController::listing', '_title' => 'Groups', 'event' => $entity_type), $manage_requirements, $options);
             $collection->add("rng.event.{$entity_type}.group.list", $route);
             // Group add.
             $route = new Route($canonical_path . '/event/groups/add', array('_controller' => '\\Drupal\\rng\\Controller\\GroupController::GroupAdd', '_title' => 'Add group', 'event' => $entity_type), $manage_requirements, $options);
             $collection->add("rng.event.{$entity_type}.group.add", $route);
             // Register.
             $route = new Route($canonical_path . '/register', array('_controller' => '\\Drupal\\rng\\Controller\\RegistrationController::RegistrationAddPage', '_title' => 'Register', 'event' => $entity_type), array('_registration_add_access' => 'TRUE'), $options);
             $collection->add("rng.event.{$entity_type}.register.type_list", $route);
             // Register w/ Registration Type.
             $options_register = $options;
             $options_register['parameters']['registration_type']['type'] = 'entity:registration_type';
             $route = new Route($canonical_path . '/register/{registration_type}', array('_controller' => '\\Drupal\\rng\\Controller\\RegistrationController::RegistrationAdd', '_title_callback' => '\\Drupal\\rng\\Controller\\RegistrationController::addPageTitle', 'event' => $entity_type), array('_registration_add_access' => 'TRUE'), $options_register);
             $collection->add("rng.event.{$entity_type}.register", $route);
         }
     }
 }
Ejemplo n.º 5
0
 /**
  * {@inheritdoc}
  */
 public function getDerivativeDefinitions($base_plugin_definition)
 {
     $this->derivatives = [];
     /** @var \Drupal\rng\Entity\EventType[] $event_types */
     foreach ($this->eventManager->getEventTypes() as $entity_type => $event_types) {
         $cache_tags = $this->entityManager->getDefinition($entity_type)->getListCacheTags();
         foreach ($event_types as $event_type) {
             $cache_tags = Cache::mergeTags($cache_tags, $event_type->getCacheTags());
         }
         // Only need one set of actions per entity type.
         $this->derivatives["rng.event.{$entity_type}.event.access.reset"] = array('title' => $this->t('Reset/customize access rules'), 'route_name' => "rng.event.{$entity_type}.access.reset", 'class' => '\\Drupal\\rng\\Plugin\\Menu\\LocalAction\\ResetAccessRules', 'appears_on' => array("rng.event.{$entity_type}.access"), 'cache_tags' => $cache_tags);
         $this->derivatives["rng.event.{$entity_type}.event.message.add"] = array('title' => $this->t('Add message'), 'route_name' => "rng.event.{$entity_type}.messages.add", 'appears_on' => array("rng.event.{$entity_type}.messages"), 'cache_tags' => $cache_tags);
         $this->derivatives["rng.event.{$entity_type}.event.group.add"] = array('title' => $this->t('Add group'), 'route_name' => "rng.event.{$entity_type}.group.add", 'appears_on' => array("rng.event.{$entity_type}.group.list"), 'cache_tags' => $cache_tags);
     }
     foreach ($this->derivatives as &$entry) {
         $entry += $base_plugin_definition;
     }
     return $this->derivatives;
 }