CMSMS 2.0 - Fantastic Progress

The Dev Team is happy to tell you that CMSMS 2.0 is still in very active development. A number of people are working on it. To toot our own horns just a little bit, it is looking great! There are lots of new features and performance improvements. Almost everything has been touched in some way--most of it major. New features include new design management tools, new content management module, content locking, admin search, and more...

Category: General
Posted: October 11, 2013 by mr101010

It has been a while since we've brought you an update on our progress with CMSMS 2.0. So we thought we would drop you a line and tell you about some of the great things that are happening.

The Dev Team is happy to tell you that CMSMS 2.0 is still in very active development. A number of people are working on it. To toot our own horns just a little bit, it is looking great! There are lots of new features and performance improvements. Almost everything has been touched in some way--most of it major. We are sure you will love it! Here are some details of what is to come:

Content Management Made Simpler

CMSContentManager: The new, from-scratch module that replaces the content management functionality is nearing completion.

You thought managing content in CMSMS was great before; now it is even better. In the new module, the content list has been improved with Ajaxy search, pagination, advanced tooltips, and content locking. The pagination, and other under-the-hood improvements, should remove most bottlenecks in the CMSMS admin console for larger websites. The auto-complete search capability will make finding a content item to edit quick and efficient. The content locking will ensure that your editors can no longer accidentally interrupt each other's work. Additionally, site administrators will have more power over what columns are displayed to users in the content list. This is great stuff!

The Edit Content form has been improved a bit (it was good before, now it is better). We have rationalized the form into more tabs on the page, and re-organized some of the fields making it a bit more logical. Additionally, we have added "dirty form" support to minimize the chance of accidentally losing changes to a content item. The locking functionality is dynamic, so that nobody can steal your lock on a content item as long as you're actively doing something on the page. Now you won't have to worry as much about having multiple content editors on a website.


Moving content management into a module makes it possible for adventurous developers to fork this module to add further features. Website developers can then swap out the entire content management functionality with that provided by another module.

The internal content objects have been improved as well. Each content block has a priority attribute, and of course the tab attribute, allowing you to specify which content blocks appear in which order on which tab in the Edit Content form. There's a "required" attribute as well, so you can make sure something is entered in the content blocks before the form is submitted.

We've created a new jQuery plugin that provides an Ajaxy content page picker. This plugin is used by the content manager, the news module, and can easily be used by any module that requires the selection of a content page. Replacing the potentially large dropdown in previous versions, this plugin should further reduce bottlenecks on large sites.

Better Navigation Menus

The new Navigator module, which is replacing the MenuManager module, provides greater power to build custom, powerful navigations. The biggest difference between MenuManager and Navigator is that Navigator provides a recursive tree of objects to Smarty for templating, rather than one very long structured array.

We've finished the build of this module, documented it, created the sample templates, and converted the default content that comes with CMSMS to use it instead of MenuManager. It is fast, efficient, and provides more flexibility than MenuManager ever did.

DesignManager: The new way to manage templates

As you may or may not know, we've completely refactored the way templates, stylesheets, and designs are managed in CMSMS. This new module will provide a unified interface for all core templates, core module templates, generic templates (formerly Global Content Blocks), and, in the future, module templates for third party modules.

This module provides for organizing your templates into categories, and filtering on those categories. You can filter by the type of template, the design that the template uses, and more. The template and stylesheet lists have pagination and also support locking. This makes managing and finding templates and stylesheets simple.

The forms for editing stylesheets and templates have "dirty form" functionality to prevent accidentally losing your changes, and support locking so that no other designer/developer can accidentally stomp on your CSS or template changes (it's happened to us a few times).

AdminSearch : Find things easily

CMSMS uses a lot of templates and provides a great deal of flexibility in how you use them. It also allows you to manage a lot of stylesheets, and thousands of pages. This brand new module for 2.0 will make finding items in those templates, stylesheets, and pages simple. As well, it's modular, so third party modules can write a class to allow you to search within that data.


FileManager : So Long, ImageManager

FileManager has received a lot of attention in 2.0, primarily to absorb the important functionality from ImageManager enabling us to remove the separate image manipulation. This new functionality relies heavily on javascript to provide dynamic image manipulation methods for rotation, cropping and resizing.


More Smarty Plugins

To make developing dynamic, flexible, and powerful websites even simpler, there are a number of new Smarty plugins included with CMSMS 2.0, including the {cms_module_hint}, {form_start}, {form_end}, and {cms_action_url} plugins. This gives more power to influence module behavior, create urls to actions, and design great forms all from within Smarty.

Fewer Admin Themes

We have removed the NCleanBlue admin theme from the 2.0 distribution. Going forward we will only be supporting one admin theme in CMSMS. You can still create and manage your own, however.

Manage User Preferences

One of the big powers (and therefore problems) with CMSMS is that it provides the user with a lot of customization capabilities. Some of these settings are hidden inside modules (filter settings and such). Now CMSMS admin users who manage other admin users have better ability to control those settings. They can clear all of a users settings, or copy settings from another user. This is a great tool for when you want all of your users to use a certain editor, or admin theme, for example.

Improved UI and Help

Throughout the CMSMS admin console in 2.0 we've improved the user experience. We've added labels and tooltips where they were needed, improved some styling with respect to tooltips, and put a great deal of effort into the user experience. Most form fields in the admin console, and most table column headers, have tooltips providing better indication of the item's function and valid data.

There is a great deal of context sensitive help in 2.0's admin console. A help icon sits next to or near each form field providing popup help for the individual item. We have tried to write the help in such a way as the intended reader would understand it. For example, the help for user preferences is aimed towards a user with little or no experience, whereas the popup help in the design manager is intended towards a user with a more advanced technical knowledge.

We're still working

CMSMS 2.0 is already significantly better than the 1.x series, and we could call it a day and release that. However, there are a few issues that we want to fix once and release 2.0 with a huge bang!

We are working on a new single file install/upgrade script. The idea is that you place this single file in your website and browse to it. It will do the system checks and guide you through the installation process, downloading and expanding what it needs to. This saves the process of having to chose download the CMSMS tarball to your workstation, expand it, and upload it to your host before you even know if you are going to have compatibility problems.

We are improving the module manager to show the number of downloads for a particular module (or version of a module) along with the dates that each module is released, and a few more goodies.

We are investigating the possibility of upgrading MicroTiny to the latest release of tinymce (version 4 of tinymce is very nice). However, we tried this before, and had some difficulties due to the fact that tinymce4 API was still a little immature to allow us to adapt our plugins.

There is still lots of work to do with respect to testing modules, and testing the upgrade process. This will take a bit of time, and will have to be done before the beta cycle.

A Bull in a China Shop

to quote Longfellow:

From "The Rainy Day"
Be still, sad heart, and cease repining;
Behind the clouds is the sun still shining;
Thy fate is the common fate of all,
Into each life some rain must fall,
Some days must be dark and dreary.

That means, that whilst we're dramatically improving your favourite content management system, we have broken some things in order to fix them. There will be some grief, particularly for module developers.

We know now that some modules which deal with Content objects will need to be revised (like AdvancedContent and Cataloger). Though we don't think the changes will be that extreme. WYSIWYG Editors and syntax highlighters will also need some minor adjustments. Additionally, because of the new way that templates and stylesheets work, modules like TemplateExternalizer are going to need some modification. Multi-language modules may need to be adjusted too, but this is still to be determined.

Module developers will be encouraged to utilize the upcoming CMSMS 2.0 beta period to test their modules and figure out how they will need to be changed. The Dev team members will be around to assist anybody with specific questions. We're planning on having an updated API document ready when the beta cycle begins.

We are working to minimize the effort that will be required during the upgrade process, and to well document what we can't automatically adjust for people. More on the upgrade process to come as we work it out.

When can I lay my anxious little hands on it?

We're continuing to work hard on this release, and plan to get it out to you as soon as January 2014. There is still quite a bit of work to do as we are aiming to make this not only the most feature rich and stable release in our history, but also the easiest to install and manage.

Stay tuned, we'll keep you up to date as we get closer to the beta release.