diff --git a/modules/opencase_no_cases/src/Plugin/Block/ContextualMenu.php b/modules/opencase_no_cases/src/Plugin/Block/ContextualMenu.php index cdfa2e3..150a8c4 100644 --- a/modules/opencase_no_cases/src/Plugin/Block/ContextualMenu.php +++ b/modules/opencase_no_cases/src/Plugin/Block/ContextualMenu.php @@ -23,6 +23,7 @@ class ContextualMenu extends BlockBase { */ public function build() { $route_name = \Drupal::routeMatch()->getRouteName(); + \Drupal::logger('my_module')->error(\Drupal::routeMatch()->getParameter('oc_actor')->bundle()); if ($route_name == 'entity.oc_actor.canonical' && \Drupal::routeMatch()->getParameter('oc_actor')->bundle() == 'client' ) { $markup = $this->actorPage(); $build = []; @@ -41,20 +42,20 @@ class ContextualMenu extends BlockBase { */ private function actorPage() { $actor_id = \Drupal::routeMatch()->getParameter('oc_actor')->id(); - $current_path = \Drupal::service('path.current')->getPath(); - return $this->generateLinksForAddingNewActivities("Add activity", ['actor_id' => $actor_id, 'destination' => $current_path]); + return $this->generateLinksForAddingNewActivities("Add activity", $actor_id); } /** * returns html markup. */ - private function generateLinksForAddingNewActivities($title, $query = []) { + private function generateLinksForAddingNewActivities($title, $actor_id) { $title = t($title); $markup = "

$title: "; $allActivityTypes = \Drupal::service('entity_type.bundle.info')->getBundleInfo('oc_activity'); + $redirect_destination = \Drupal\Core\Url::fromRoute("entity.oc_actor.canonical", ['oc_actor' => $actor_id])->toString(); foreach($allActivityTypes as $machine_name => $activityType) { $label = $activityType['label']; $url = \Drupal\Core\Url::fromRoute("entity.oc_activity.add_form", ['oc_activity_type' => $machine_name]); - $url->setOption('query', $query); + $url->setOption('query', ['actor_id' => $actor_id, 'destination' => $redirect_destination]); $link = \Drupal\Core\Link::fromTextAndUrl($label, $url)->toString(); $markup .= "   $link"; }