Skip to content

Commit

Permalink
[TASK] Add option to disable translation fallback in menus
Browse files Browse the repository at this point in the history
Fixes #1498
  • Loading branch information
mbrodala committed Oct 31, 2018
1 parent 54143df commit c1cf041
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 4 deletions.
8 changes: 5 additions & 3 deletions Classes/Service/PageService.php
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ class PageService implements SingletonInterface
* @param boolean $includeNotInMenu
* @param boolean $includeMenuSeparator
* @param boolean $disableGroupAccessCheck
* @param boolean $normalWhenNoLanguage
*
* @return array
*/
Expand All @@ -60,7 +61,8 @@ public function getMenu(
array $excludePages = [],
$includeNotInMenu = false,
$includeMenuSeparator = false,
$disableGroupAccessCheck = false
$disableGroupAccessCheck = false,
$normalWhenNoLanguage = false
) {
$pageRepository = $this->getPageRepository();
$pageConstraints = $this->getPageConstraints($excludePages, $includeNotInMenu, $includeMenuSeparator);
Expand All @@ -72,8 +74,8 @@ public function getMenu(

static::$cachedMenus[$cacheKey] = array_filter(
$pageRepository->getMenu($pageUid, '*', 'sorting', $pageConstraints),
function($page) {
return $this->hidePageForLanguageUid($page) === false;
function($page) use ($normalWhenNoLanguage) {
return $this->hidePageForLanguageUid($page, -1, $normalWhenNoLanguage) === false;
}
);
}
Expand Down
11 changes: 10 additions & 1 deletion Classes/ViewHelpers/Menu/AbstractMenuViewHelper.php
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,13 @@ public function initializeArguments()
'Optional divider to insert between each menu item. Note that this does not mix well with automatic ' .
'rendering due to the use of an ul > li structure'
);
$this->registerArgument(
'normalWhenNoLanguage',
'boolean',
'If TRUE, a missing page overlay should be ignored',
false,
false
);
}

/**
Expand Down Expand Up @@ -420,14 +427,16 @@ public function getMenu($pageUid = null, $entryLevel = 0)
$showHiddenInMenu = (boolean) $this->arguments['showHiddenInMenu'];
$showAccessProtected = (boolean) $this->arguments['showAccessProtected'];
$includeSpacers = (boolean) $this->arguments['includeSpacers'];
$normalWhenNoLanguage = (boolean) $this->arguments['normalWhenNoLanguage'];
$excludePages = $this->processPagesArgument($this->arguments['excludePages']);

return $this->pageService->getMenu(
$pageUid,
$excludePages,
$showHiddenInMenu,
$includeSpacers,
$showAccessProtected
$showAccessProtected,
$normalWhenNoLanguage
);
}

Expand Down

0 comments on commit c1cf041

Please sign in to comment.