Skip to content

Commit 3d64469

Browse files
authored
Correctly include subpages in result set (#12)
1 parent 1cc5bf0 commit 3d64469

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

src/Menu/MenuBuilder.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -150,16 +150,16 @@ private function getPages(int $pid, array $options): ?Collection
150150
$beUserLoggedIn = $this->tokenChecker->isPreviewMode();
151151
$unroutableTypes = $this->pageRegistry->getUnroutableTypes();
152152

153-
$arrPages = Database::getInstance()->prepare("SELECT p1.id, EXISTS(SELECT * FROM tl_page p2 WHERE p2.pid=p1.id AND p2.type!='root' AND p2.type NOT IN ('" . implode("', '", $unroutableTypes) . "')" . (!$options['showHidden'] ? " AND p2.hide=0" : "") . (!$beUserLoggedIn ? " AND p2.published=1 AND (p2.start='' OR p2.start<=$time) AND (p2.stop='' OR p2.stop>$time)" : "") . ") AS hasSubpages FROM tl_page p1 WHERE p1.pid=? AND p1.type!='root' AND p1.type NOT IN ('" . implode("', '", $unroutableTypes) . "')" . (!$options['showHidden'] ? " AND p1.hide=0" : "") . (!$beUserLoggedIn ? " AND p1.published=1 AND (p1.start='' OR p1.start<=$time) AND (p1.stop='' OR p1.stop>$time)" : "") . " ORDER BY p1.sorting")
153+
$arrPages = Database::getInstance()->prepare("SELECT p1.*, EXISTS(SELECT * FROM tl_page p2 WHERE p2.pid=p1.id AND p2.type!='root' AND p2.type NOT IN ('" . implode("', '", $unroutableTypes) . "')" . (!$options['showHidden'] ? " AND p2.hide=0" : "") . (!$beUserLoggedIn ? " AND p2.published=1 AND (p2.start='' OR p2.start<=$time) AND (p2.stop='' OR p2.stop>$time)" : "") . ") AS subpages FROM tl_page p1 WHERE p1.pid=? AND p1.type!='root' AND p1.type NOT IN ('" . implode("', '", $unroutableTypes) . "')" . (!$options['showHidden'] ? " AND p1.hide=0" : "") . (!$beUserLoggedIn ? " AND p1.published=1 AND (p1.start='' OR p1.start<=$time) AND (p1.stop='' OR p1.stop>$time)" : "") . " ORDER BY p1.sorting")
154154
->execute($pid)
155-
->fetchAllAssoc();
155+
;
156156

157-
if (\count($arrPages) < 1)
157+
if ($arrPages->numRows < 1)
158158
{
159159
return null;
160160
}
161161

162-
return PageModel::findMultipleByIds(array_map(static function ($row) { return $row['id']; }, $arrPages));
162+
return Collection::createFromDbResult($arrPages, 'tl_page');
163163
}
164164

165165
$ids = StringUtil::deserialize($options['pages'], true);

0 commit comments

Comments
 (0)