core-bundle/src/Resources/contao/modules/ModuleBooknav.php
protected function getBookPages($intParentId, $groups, $time)
	{
		$objPages = PageModel::findPublishedSubpagesWithoutGuestsByPid($intParentId, $this->showHidden);

		if ($objPages === null)
		{
			return;
		}

		foreach ($objPages as $objPage)
		{
			$_groups = StringUtil::deserialize($objPage->groups);

			// Do not show protected pages unless a front end user is logged in
			if (!$objPage->protected || $this->showProtected || (\is_array($groups) && \is_array($_groups) && \count(array_intersect($groups, $_groups))))
			{
				$this->arrPages[$objPage->id] = $objPage;

				if ($objPage->subpages > 0)
				{
					$this->getBookPages($objPage->id, $groups, $time);
				}
			}
		}
	}
protected function getBookPages($intParentId, $groups, $time)
	{
		$objPages = PageModel::findPublishedSubpagesWithoutGuestsByPid($intParentId, $this->showHidden);

		if ($objPages === null)
		{
			return;
		}

		foreach ($objPages as $objPage)
		{
			$_groups = StringUtil::deserialize($objPage->groups);

			// Do not show protected pages unless a front end user is logged in
			if (!$objPage->protected || $this->showProtected || (\is_array($groups) && \is_array($_groups) && \count(array_intersect($groups, $_groups))))
			{
				$this->arrPages[$objPage->id] = $objPage;

				if ($objPage->subpages > 0)
				{
					$this->getBookPages($objPage->id, $groups, $time);
				}
			}
		}
	}
Recursively get all book pages

@param integer $intParentId
@param array   $groups
@param integer $time