public function MenuLinkTreeManipulators::checkLinkAccess in Menu Manipulator 2.0.x
Same name and namespace in other branches
- 3.0.x src/Menu/MenuLinkTreeManipulators.php \Drupal\menu_manipulator\Menu\MenuLinkTreeManipulators::checkLinkAccess()
1 call to MenuLinkTreeManipulators::checkLinkAccess()
- MenuLinkTreeManipulators::filterByCurrentLanguage in src/
Menu/ MenuLinkTreeManipulators.php - Filter a menu tree by current language MenuLinks.
File
- src/
Menu/ MenuLinkTreeManipulators.php, line 102
Class
- MenuLinkTreeManipulators
- Provides a menu link tree manipulators.
Namespace
Drupal\menu_manipulator\MenuCode
public function checkLinkAccess(MenuLinkBase $link) {
$langcode = $this
->getLinkLanguage($link);
$not_applicable_langcodes = [
LanguageInterface::LANGCODE_NOT_APPLICABLE,
LanguageInterface::LANGCODE_NOT_SPECIFIED,
];
// Allow unspecified languages.
if (in_array($langcode, $not_applicable_langcodes)) {
return TRUE;
}
// Allow if targeted entity is translated, no matter menu item's language.
$entity = $this
->getLinkEntity($link);
if ($entity instanceof ContentEntityInterface && method_exists($entity, 'hasTranslation')) {
return $entity
->hasTranslation($this->langcode);
}
// Allow by the menu item's language itself.
return $this->langcode == $langcode;
}