Newsfeeds
ImpressCMS org - Blog
Latest posts
Accessing the Database in ImpressCMS
I've spent a fair amount of time unraveling the intricacies of the core of ImpressCMS and it is quite revealing. At times, I wonder - "What were they thinking?". At other times - "What was I thinking?" The latest area I've been focusing on is the database classes.
PHP 5.5 is out, and with that, the deprecation of the mysql extension, which we have used exclusively since before our first release. The 1.3 release introduced a sketchy and incomplete foundation for adding PDO support, but it hasn't been fully implemented. Until now, that is.
Preloads, A Visual Aid
Our last exercise in core functionality was a deeper look at preloads, and I wanted to give you a little present to help bring it all together. So, I did it by writing a new preload just to display all the preload events as they were being triggered.
With this preload, you see debug messages throughout the page as each event triggers. Not every page triggers every event because some of them are attached to other processes, like loading HTML textareas. The code comments indicate where in the core to look for the specific events, if you're interested. There is one event (startCoreBoot) that triggers before the necessary language file loads to display a friendly debug message (that will be addressed in an upcoming patch). But, the basic information will be understood.
This preload can also serve as a template for your own preloads - just rename the file and class to match your needs, then customize the methods you wish to fire your process. Remove the other methods to keep the memory usage down and you're all set!
Happy Twelfth Night!
You can download the 'preload debug' patch from our SourceForge patch repository.
Merry Christmas To All!
Over the years, the people involved in ImpressCMS have become like family to me. That is something difficult to achieve as we are spread around the globe, speak different languages and live in different cultures and have different beliefs. Yet, we have stayed together, shared good times and bad, struggled and endured.
Wherever you are and whatever your holidays are, may they bring warmth, love, joy, peace and hope!
ImpressCMS modules on Ohloh
I have been updating the repository information for ImpressCMS modules on Ohloh these last few days. A bit of manual labor, because of the way we chose to structure the Subversion repository at it's creation, but it is quite interesting to go over all the different modules, see what's out there and see some that really deserve an update.
Going Deeper: Preloads
Since we are now focusing on publishing patches for very specific features, there are lots of opportunities to go deeper under the covers of ImpressCMS and expand, strengthen and share what makes it so great. Patches aren't just quick fixes, they have a lot of value in so many ways.
We need to bring attention to why someone would want to use ImpressCMS instead of another sytem, like Wordpress, Joomla!, Drupal or XOOPS. There is so much we have available to us, just waiting to be discovered!
Picture This: A Profile Puzzle
Recently, we had a new member point out that the Profile module didn't show a user's avatar unless the gravatar option was enabled. While this was quite simple to fix, once it was brought to our attention, it is an example of how tightly coupled some of our code really is.
Users are a core functionality and Gravatars are enabled as part of the core preferences - modules should be able to assume that calling a core function will return an appropriate response based on the core settings. Modules should not have to check for any dependencies of those core functions. Any module, the Profile module included, should be able to send a request to the core to retrieve a user's profile image and not care where it comes from - a default image, a gravatar, or a user-uploaded image (maybe even a Google+ profile image or Facebook profile image in the future).
Real-time support and discussions on IRC
We are trying out an IRC channel for those discussions and questions that are best done in real-time. There is currently a Skype chat in use, but that's more suited to an internal discussion forum, as you need to request to join the group.
Have a look at our channel via the web-based KiwiIRCat https://kiwiirc.com/client/irc.kiwi ... ImpressCMS and tell us what you think we can improve. keep reading ...
Facebook Mailing List signup
We're working on extra ways to keep you updated on what's happening in the ImpressCMS world, and a refreshed offer of mailing lists is definitely on the horizon. keep reading ...
An Example of Decoupling - Email Protection
Initial problem: Updating Smarty required adding ImpressCMS-specific code back in
In ImpressCMS v1.1, email protection was introduced - a way to convert email addresses to images instead of text to prevent spambots from harvesting emails. The method for doing this was insserted into the Smarty library - and every update to Smarty since then has required us to reinsert this code. While this approach worked, it wasn't the best situation - and we have a few other instances where this is happening in the core. We need to decouple these things to make them easier to maintain.
This appeared to be a rather simple thing to do, it was isolated to a specific portion of code and could be released fairly quickly as a patch. So, I created a task branch in our repository for this and set to work on it. My initial approach was to make us of the Smarty plugin capabilities - take it out of the main Smarty class and put it in a plugin. We already have several plugins for Smarty - the image resizer is the most recent addition to them.
Project Update, 14 Oct 2013: Patches, Releases, Decoupling
Over the weekend, David (@fiammybe), Steffen (@qm-b) and I got together on Google+ Hangout and went over the tasks and activities we shared to keep the project going, and talked a little about the tools we currently use to manage those tasks. Going in to our next stage of development, we'll be making some adjustments because our development and release cycles are changing. We are looking forward to a lot of new activity focused on delivering a better community and content management system to you.
October Goals - PDO, Smarty, Versioning
There are already 2 different patches in the works - one for PDO support, one to update Smarty (again) and help decouple the email protection from it, plus one being added to help better track the versions of all the components in the core. We plan on having a new patch released later this week or early next week. Remember - these patches are meant to be independent of one another and you can apply as many as you'd like. But, there won't be full upgrades or completely seemless migrations. You'll need to do some work, but the patches will be ready to use on your sites.