If you're still with me then good, because we're coding from here on!
We're going to look at the package controller first, and I'm going to walk you, line by line, through the code, explaining each statement as we go. Now, once we've completed Part 2 of this tutorial, if we install this package in our concrete5 application, when we check out your concrete5 Dashboard.
This page lists vulnerability statistics for all products of Concrete5.
Vulnerability statistics provide a quick overview for security vulnerabilities related to software products of this vendor.
Our first step is to create our package folder structure. This can be named as anything, but you might want to choose something you can rely on to be unique.
In concrete5 5.7 PHP namespacing will be employed, but in 5.6.3 and below you generally have to namespace your code by naming in ways unlikely to cause conflicts.
For more general information on packages check out concrete5developer documentation.
Our package is going to contain a blog, with a single dashboard page through which we can enable or disable comments on a sitewide basis, and through which we can add our Disqus shortname, since we're going to use the Disqus comments system instead of the guestbook block which the default installed blog uses.
Here we are going to show you how to add some additional optimizations that we use to really increase the performance of the system and most importantly the website for its end-users. For the purposes of this tutorial, we are going to show you how to implement these optimizations through c Panel.
These days we have seen an increase of clients switching their Wordpress and Drupal sites to use Concrete5, mostly for its user-friendly interface and tools, which takes out a lot of the guess work for clients trying to manage their own sites.
If you are anything like us, you have tested out and taken full advantage of the caching features that Concrete5 provides to assist in keeping your website loading quickly and keeping performance at an optimum level.
This page type will be used to create the default page layout that each and every blog post we make will inherit.
We could discuss page types at length here, but it's suffice to say that as well as governing presentation, page types also represent a data store, and are very useful on the context of defining information about a thing that you need to store, without going to the lengths of creating a new concrete5 object.