You are here

function better_local_tasks_preprocess_menu_local_task in Better Local Tasks 8

Implements hook_preprocess_menu_local_task().

Add a css class to each local task tab.

File

./better_local_tasks.module, line 28
This is the module to make fancier local tasks.

Code

function better_local_tasks_preprocess_menu_local_task(&$variables) {
  $link_name = $variables['element']['#link']['title'];

  /* @var \Drupal\Core\Url $url */
  $url = $variables['element']['#link']['url'];
  $route_name = $url
    ->getRouteName();
  if (preg_match('/\\.canonical$/', $route_name)) {
    $link_name = 'view';
  }
  elseif (preg_match('/\\.edit_form$/', $route_name)) {
    $link_name = 'edit';
  }
  elseif (preg_match('/\\.delete_form$/', $route_name)) {
    $link_name = 'delete';
  }
  elseif (preg_match('/\\.version_history$/', $route_name)) {
    $link_name = 'revisions';
  }
  elseif (preg_match('/\\.devel_load$/', $route_name)) {
    $link_name = 'devel';
  }
  elseif (preg_match('/\\.content_translation_overview$/', $route_name)) {
    $link_name = 'translate';
  }
  elseif (preg_match('/\\.clone_form$/', $route_name)) {
    $link_name = 'clone';
  }
  elseif ($route_name = 'shortcut.set_switch') {
    $link_name = 'shortcuts';
  }
  $variables['link']['#attributes']['class'][] = $link_name;
}