Book Image

concrete5 Cookbook

Book Image

concrete5 Cookbook

Overview of this book

concrete5 is an increasingly popular open source content management system because of its incredible and easy-to-use interface. But, it also comes complete with a robust PHP framework, allowing web developers to create custom websites and applications with ease. "concrete5 Cookbook" is a practical collection of solutions to tasks that both novice and experienced concrete5 developers face on a regular basis. Readers will learn multiple subjects, including full blueprints for developing an event calendar add-on and an image gallery block. Developers new to concrete5 will quickly learn how to customize concrete5 to their needs, and seasoned pros will find it an excellent quick reference for performing specific tasks. "concrete5 Cookbook" will transform ordinary PHP developers into concrete5 experts capable of bending concrete5 to their will and unleashing the true power of this up-and-coming content management system. Throughout the course of over 140 recipes and 3 bonus project blueprint chapters, PHP developers will learn how to create custom blocks and dashboard interfaces as well as programmatically work with pages, files, users, permissions, and more. Discover the built-in Active Record support that makes working with databases simple and maintainable. Readers will also learn how to take advantage of the numerous helper classes included in concrete5, and will dive deep into the concrete5 MVC framework to create powerful custom websites and applications. Tie together all of the concepts learned in the recipes with 3 bonus chapters featuring complete blueprints to create a calendar add-on, an image gallery block type, and tips on how to sell your themes and add-ons for money! "concrete5 Cookbook" is a complete collection of recipes to solve the most common (and some not-so-common) tasks that concrete5 developers will face on a regular basis.
Table of Contents (19 chapters)
concrete5 Cookbook
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Getting a page type by its ID


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.

Getting ready

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.

How to do it...

Much like loading pages, you will need to call a static function on the CollectionType class. The steps are as follows:

  1. Open /config/site_post.php in your text editor.

  2. 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;
  3. Now that we have the ID of the page type that we wish to load, we can call the getByID function of the CollectionType class.

    $leftSidebarPageType = CollectionType::getByID($leftSidebarId);
  4. We can verify that we loaded the correct page type by inspecting the $leftSidebarPageType variable and verifying that it is an instance of the CollectionType class.

    my_debug($leftSidebarPageType);

How it works...

The getByID function performs a simple database query to find the page type that belongs to that ID. A CollectionType object is returned when a successful lookup is made.

See also

  • The Getting a page type by its handle recipe