When creating and editing pages in concrete5 development, you will inevitably need to load the desired page type object that will be assigned to a page. Note that page types are actually instances of the CollectionType
object in code. For consistency, we will continue to refer to them as page types outside of code.
We will continue performing these examples in the /config/site-post.php
file, as that is a quick and easy place to run the arbitrary code. We will also continue making use of our custom my_debug
function that was defined in the chapter introduction.
In this recipe, we will be loading a page type with the ID of 4
. Please make sure that this page type exists in your instance of concrete5, otherwise change the ID to something appropriate to your environment.
Much like loading pages, you will need to call a static function on the CollectionType
class. The steps are as follows:
Open
/config/site_post.php
in your text editor.First, we will need to know the numerical ID of the page type. In this case, we are going to assume that a page type called "Left Sidebar" exists, and that it has the numerical ID of
4
.$leftSidebarId = 4;
Now that we have the ID of the page type that we wish to load, we can call the
getByID
function of theCollectionType
class.$leftSidebarPageType = CollectionType::getByID($leftSidebarId);
We can verify that we loaded the correct page type by inspecting the
$leftSidebarPageType
variable and verifying that it is an instance of theCollectionType
class.my_debug($leftSidebarPageType);