function fontawesome_menu_icons_link_alter in Font Awesome Menu Icons 8
Implements hook_link_alter().
File
- ./
fontawesome_menu_icons.module, line 294 - Contains fontawesome_menu_icons.module.
Code
function fontawesome_menu_icons_link_alter(&$variables) {
if (!empty($variables['options']['fa_icon']) && empty($variables['options']['already_processed'])) {
$class = $variables['options']['fa_icon'];
$prefix = !empty($variables['options']['fa_icon_prefix']) ? $variables['options']['fa_icon_prefix'] : 'fa';
$tag = !empty($variables['options']['fa_icon_tag']) ? $variables['options']['fa_icon_tag'] : 'i';
$appearance = !empty($variables['options']['fa_icon_appearance']) ? $variables['options']['fa_icon_appearance'] : 'before';
/** @var \Drupal\Core\Url $url */
$url = $variables['url'];
$is_link = $url
->isRouted() && $url
->getRouteName() == '<nolink>' ? FALSE : TRUE;
switch ($appearance) {
case "only":
if ($is_link) {
$variables['options']['attributes']['aria-label'] = $variables['text'];
$variables['text'] = new FormattableMarkup('<' . $tag . ' class="' . $prefix . ' ' . $class . '" aria-hidden="true"></' . $tag . '>', []);
}
else {
$variables['text'] = new FormattableMarkup('<' . $tag . ' class="' . $prefix . ' ' . $class . '" aria-hidden="true" title="@title"></' . $tag . '><span class="sr-only">@title</span>', [
'@title' => $variables['text'],
]);
}
break;
case "after":
$variables['text'] = new FormattableMarkup('@title <' . $tag . ' class="' . $prefix . ' ' . $class . '" aria-hidden="true"></' . $tag . '>', [
'@title' => $variables['text'],
]);
break;
case "before":
default:
$variables['text'] = new FormattableMarkup('<' . $tag . ' class="' . $prefix . ' ' . $class . '" aria-hidden="true"></' . $tag . '> <span class="link-text">@title</span>', [
'@title' => $variables['text'],
]);
break;
}
$variables['options']['already_processed'] = TRUE;
}
}