Actions
Bug #64257
closedPageRepository::getMenu(): Support multiple uid
Start date:
2015-01-13
Due date:
% Done:
100%
Estimated time:
TYPO3 Version:
7
PHP Version:
Tags:
Complexity:
hard
Is Regression:
No
Sprint Focus:
Description
TYPO3\CMS\Frontend\Page\PageRepository::getMenu() currently only supports an integer as $uid parameter, allowing selecting the subpages of a single parent page only.
When building a menu myself, I want to do this as efficient as possible. This means that I'd like to select the pages on the second level with a single query, instead of querying each child page for their pages.
Having getMenu() support an array of UIDs would solve the problem and make efficient selection of second level child pages possible.
Current unwanted state:
//number of SQL queries increases with the number of menu items $childPages = $pageSelect->getMenu(0); $subChildPages = array(); foreach ($pages as $page) { $subChildPages = array_merge( $subChildPages, $pageSelect->getMenu($page['uid']) ); }
Wanted:
// only 2 SQL queries, no matter how many child pages exist $childPages = $pageSelect->getMenu(0); $childUids = array_keys($childPages); $subChildPages = $pageSelect->getMenu($childUids);
Actions