You are here

function social_event_managers_menu_local_tasks_alter in Open Social 8.7

Same name and namespace in other branches
  1. 8.9 modules/social_features/social_event/modules/social_event_managers/social_event_managers.module \social_event_managers_menu_local_tasks_alter()
  2. 8 modules/social_features/social_event/modules/social_event_managers/social_event_managers.module \social_event_managers_menu_local_tasks_alter()
  3. 8.2 modules/social_features/social_event/modules/social_event_managers/social_event_managers.module \social_event_managers_menu_local_tasks_alter()
  4. 8.3 modules/social_features/social_event/modules/social_event_managers/social_event_managers.module \social_event_managers_menu_local_tasks_alter()
  5. 8.4 modules/social_features/social_event/modules/social_event_managers/social_event_managers.module \social_event_managers_menu_local_tasks_alter()
  6. 8.5 modules/social_features/social_event/modules/social_event_managers/social_event_managers.module \social_event_managers_menu_local_tasks_alter()
  7. 8.6 modules/social_features/social_event/modules/social_event_managers/social_event_managers.module \social_event_managers_menu_local_tasks_alter()
  8. 8.8 modules/social_features/social_event/modules/social_event_managers/social_event_managers.module \social_event_managers_menu_local_tasks_alter()
  9. 10.3.x modules/social_features/social_event/modules/social_event_managers/social_event_managers.module \social_event_managers_menu_local_tasks_alter()
  10. 10.0.x modules/social_features/social_event/modules/social_event_managers/social_event_managers.module \social_event_managers_menu_local_tasks_alter()
  11. 10.1.x modules/social_features/social_event/modules/social_event_managers/social_event_managers.module \social_event_managers_menu_local_tasks_alter()
  12. 10.2.x modules/social_features/social_event/modules/social_event_managers/social_event_managers.module \social_event_managers_menu_local_tasks_alter()

Implements hook_menu_local_tasks_alter().

File

modules/social_features/social_event/modules/social_event_managers/social_event_managers.module, line 300
Contains social_event_managers.module.

Code

function social_event_managers_menu_local_tasks_alter(&$data, $route_name) {
  $can_show_managers_link = FALSE;
  $routes_to_check = [
    'view.event_enrollments.view_enrollments',
    'entity.node.canonical',
    'view.managers.view_managers',
    'view.manage_enrollments.page',
    'view.event_manage_enrollments.page_manage_enrollments',
  ];
  if (in_array($route_name, $routes_to_check)) {
    $node = \Drupal::service('current_route_match')
      ->getParameter('node');
    if (!is_null($node) && !$node instanceof Node) {
      $node = Node::load($node);
    }
    if ($node instanceof Node && $node
      ->getType() === 'event') {
      $can_show_managers_link = TRUE;

      // Should we minimise the amount of tabs? If so we remove enrollees as we
      // show it in the management tab.
      if (!empty($data['tabs'][0]['views_view:view.event_enrollments.view_enrollments'])) {
        unset($data['tabs'][0]['views_view:view.event_enrollments.view_enrollments']);
      }

      // For Guest Enrollments alone we hide them as well and place them in the
      // manage tab.
      if (!empty($data['tabs'][0]['views_view:view.manage_enrollments.page'])) {
        unset($data['tabs'][0]['views_view:view.manage_enrollments.page']);
      }
      if (!social_event_manager_or_organizer()) {
        $data['tabs'][0]['views_view:view.event_manage_enrollments.page_manage_enrollments']['#link']['title'] = t('Enrollments');
      }
    }
  }

  // PLace this here, since hiding it should happen
  // always and not only on the mentioned routes.
  if (!$can_show_managers_link) {
    unset($data['tabs'][0]['views_view:view.managers.view_managers']);
    unset($data['tabs'][0]['views_view:view.event_manage_enrollments.page_manage_enrollments']);
  }
}