OtPageRepository.php 937 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. namespace Opentalent\OtTemplating\Utilities;
  3. use TYPO3\CMS\Frontend\Page\PageRepository;
  4. /**
  5. * Class OtPageRepository
  6. *
  7. * Provides some useful methods to query typo3 pages
  8. *
  9. * @package Opentalent\OtTemplating\Page
  10. */
  11. class OtPageRepository extends PageRepository
  12. {
  13. /**
  14. * Recursively returns all the subpages of the given page
  15. *
  16. * @param $pageId
  17. * @return array
  18. */
  19. public function getAllSubpagesForPage($pageId) {
  20. $subpages = [];
  21. $stack = $this->getSubpagesForPages(
  22. [$pageId],
  23. '*',
  24. 'sorting',
  25. '',
  26. false
  27. );
  28. foreach ($stack as $page) {
  29. $subpages[] = $page;
  30. $children = $this->getAllSubpagesForPage($page['uid']);
  31. if (!empty($children)) {
  32. $subpages = array_merge($subpages, $children);
  33. }
  34. }
  35. return $subpages;
  36. }
  37. }