The next step: Developing CMSMS 2.0
Hello Everybody, and Happy New Year.
Since the release of CMSMS 1.11, whilst simultaneously supporting the 1.11.x series and fixing issues, we have also been quietly working on the next new feature version of CMS Made Simple. Though we do not have an arrival date yet, the version is progressing nicely and we felt it was time to give you a preview of what you can look forward to.
The new feature release is not a complete rewrite; however it will contain many new rationalizations and features. We feel that they are significant enough to have decided that we are tentatively naming the new release ‘CMS Made Simple 2.0’.
So, we are delighted to unveil some of the new features.
Confirmed New Features
1. Design Manager
The new Design Manager is our solution rationalizing all template, css, and design capabilities into one module, plus providing a new set of classes.
With the new template ‘inheritance’,A ‘include’ and ‘function’ capabilities of Smarty3 we decided that it was time to rationalize the whole template functionality, making it easier to re-use templates, provide one common interface for editing both templates and stylesheets, and work with designs. The Design Manager, and it’s associated classes have the following features:
- A new concept; a “Design” object is created that contains associations to stylesheets and templates. A Design can be associated multiple stylesheets, templates. Though this is just a loose relationship.
- The Design Manager module provides the editors for Stylesheets, and Templates
- Designs can be read from, and written to XML (including old theme files). The exported design xml file will contain all images, stylesheets and templates associated with the design.
- Templates, Module Templates and GCBs now all fall into the new ‘templates’ section, with no real distinction between them other than a unique name.
- Templates are only loosely associated with their type (e.g. You could use a Menu Manager template within Products if you really wanted to).
- Templates can belong to zero or more designs.
- Templates can belong to zero or more categories.
- Stylesheets can belong to zero or more designs.
- Templates, Designs and Stylesheets must all be uniquely named.
- Content pages must now be associated with both a ‘Design’ and a ‘Template’ (the design association is used to find stylesheets to render).
- All objects (Designs, Templates, Stylesheets) now have a description field.
- Templates can have additional editors, and an owner for more granular control of design.
- All Core modules (such as Menu Manager, News and Search) no longer have template editing functionality. This is now handled entirely by the Design Manager.
2. New smarty plugins for module form and page creation.
We have added numerous smarty plugins (and will probably add a few more) to make creation of forms in a module template simpler. This marks a change in the way forms are created in modules and moves most of the layout functionality into Smarty, whilst keeping the business logic in PHP. To that end, many of the module API methods that create input elements will now be deprecated.
3. Enhancements to Add/Edit Content
The Add/Edit content forms have been rationalized into a single form and moved into smarty as much as possible, thus to allow for customization and enhancements. Additionally, we’re working on the ability for better management of the various content properties.
4. Rewrite of the UDT interface.
We have rewritten the User Defined Tag code to be more aesthetically pleasing and to go with our new admin interface style.
This will be a big feature for site developers; an admin side search that will search through templates, stylesheets, designs, page content, and (with hooks) the content of other modules to find specified text. This is extremely useful to help you find elements in admin that previously would have required manually looking through templates, pages and GCBs, etc. This will dramatically improve site development in CMSMS.
6. A better end user experience.
We are going through all admin forms and adding interactive help and making sure that the forms are reasonably accessible for persons with disabilities.
Planned New features
7. ‘Navigator’ Module
One of the biggest issues developers face with CMSMS is creating unique navigation. The primary reason for this is that, when it comes to styling and editing templates, the flat lists of nodes currently generated by MenuManager do not fit very well with a hierarchical data structure.
The new Navigator module will work in much the same way as MenuManager does, however, instead of generating a flat list of nodes, it will generate a hierarchical data structure. With that, and some simple smarty logic it will become a trivial task to generate custom dynamic navigation within CMSMS.
7. New Installer
A big problem with installing and upgrading CMSMS is the requirement to upload and expand the entire package on your website before you can find out that there’s compatibility or other issue. To that end we’re working on a single file installer to improve the process. The concept of this is as follows.
By uploading the single installation file and browsing to it you will begin the process. The new installer will detect if CMSMS is already there and create an install or upgrade situation depending on what it finds. The installer will then guide you through the various compatibility tests to ensure that you won’t have a problem with the core package and modules. Thirdly the installer will allow you to select which packages you want to use (base vs. full package, diff packages, language packs etc), download and expand those selected into your installation and finally will execute the appropriate routines to seamlessly install or upgrade your core. Whilst this new installer won’t solve problems with 3rd party module compatibilities, it will go a long way towards making the installation process smoother.
8. PHP 5.3.x or greater
As previously announced, CMSMS 2.0 (tentative) will require PHP 5.3 or greater.
Notes on Compatibility and Support
As the saying goes, you can’t make an omelette without breaking a few eggs, but we think you will find this to be a very tasty omelette. Thus, with these major changes we are predicting that there will be inevitable upgrade and compatibility issues with some third party modules (at this time WYSIWYG modules, and modules that create content types are known to be effected). However, we will not be breaking the module template API or the module form API so many modules should continue to operate with zero, or minor modifications.
Additionally, there will probably be some layout issues as we try to manipulate the data structures containing templates, GCB’s and stylesheets into the new design structure. We will however attempt to minimize, and/or document any upgrade issues.
Due to the compatibility issues that we know we will have, the Dev team has decided that the 1.11.x series will be supported (for bug fixes and security issues) for one year from the release of the first 2.0 package. This will give site developers the opportunity to work with module developers to ensure a smooth upgrade process.
So, that is the state of play right now. We will look forward to telling you more information as it becomes appropriate. Thanks for reading.
The Dev team
comments powered by Disqus