If you need to access the children of a page, you can have concrete5 return an array of numerical IDs. These IDs can then be used to load each of the Page
objects individually.
The steps for getting the children below a page are as follows:
Open
/config/site_post.php
in your preferred code editor.Load the parent page by its ID.
$page = Page::getByID(1);
Get the array of child IDs.
$children = $page->getCollectionChildrenArray();
Loop through the child ID array and output the name of each page.
foreach ($children as $childId) { $child = Page::getByID($childId); echo $child->getCollectionName().'<br />'; }
Exit the process.
exit;
concrete5 will return an array of numeric IDs for each of the pages beneath the parent page. In this example, we loaded the home page, so the result should be a list of every page on the website. This function ignores permissions, and can be taxing on the database if there are a lot of pages to load. It is a better idea to use the PageList
class to loop through pages, and that class is described later on in this chapter.