In many advanced concrete5 applications, developers may need to find a list of all of the pages that belong to a given page type. In this example, we will get an array of pages that have a page type with the handle of right_sidebar
.
If your instance of concrete5 does not have a page type with the handle of right_sidebar
, feel free to adapt the recipe to suit your needs. We will continue using /config/site_post.php
as our sandbox to run random code snippets, as well as our custom debugging function that we created in this chapter's introduction.
The steps for getting a list of pages belonging to a page type are as follows:
Open
/config/site_post.php
in your code editor to try out the following code.Load the page type by its handle.
$pageType = CollectionType::getByHandle('right_sidebar');
Get the array of
Page
objects.$pages = $pageType->getPages();
Dump the array to see its contents.
foreach ($pages as $page) { echo $page->getCollectionTitle().'<br />'; } exit;
concrete5 simply uses the relational MySQL database to find all of the pages that are related to the page type. Be aware that concrete5 ignores permissions settings when this function is called, so this should really only be used for internal purposes.