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

Setting page attributes


Pages, like most objects in concrete5, can have any type of custom attribute attached to them. This allows for immense flexibility, but it can be difficult to read and write these attributes using raw SQL. The concrete5 API makes setting and reading page attributes easy.

Getting ready

You will need to know at least the handle of the attribute key that you wish to assign to the page. A common attribute to set is the Meta Title attribute, which updates the text that appears in the HTML <title> tag.

How to do it...

We will set the Meta Title attribute to the About Us page in this example. The steps are as follows:

  1. Open /config/site_post.php in your preferred code editor.

  2. Load the Page object that you wish to set the attribute on.

    $page = Page::getByPath('/about');
  3. Call the setAttribute function on the $page object, passing in two parameters: the attribute handle (key), and the value.

    $page->setAttribute('meta_title', 'New Page Meta Title');
  4. Output a success message and exit the process.

    echo 'done!';
    exit;

How it works...

The setAttribute function is a member of the Collection class, which the Page class extends. It requires that you provide two parameters, an attribute key (which can either be a string representing the attribute key handle (which we provided here), or an actual AttributeKey object), and the value.

There's more...

The setAttribute function is very handy for setting the data of any kind of page attribute. One can update a page's meta information (such as description, keywords, and title) and also give the page various options, such as, excluding it from the navigation (as seen previously) or from the sitemap.xml file that search engines look for.

You can update any attribute that has been installed in the concrete5 system. To see all available page attributes, or to create new ones, visit the Page Attributes area of your site's dashboard (located at /dashboard/pages/attributes/).

See also

  • The Getting a page by its path recipe

  • The Getting a page attribute recipe