CMSMS 2.0 is a significant renewal of our favourite content management system. A large amount of the functionality has undergone re-factoring, rewriting, or re-thinking with the intent of increasing both the simplicity and power we have become accustomed to when building websites.
Some of the highlights include:
- A completely new Content Management module (CMSContentManager)
- An entire re-think as to how templates and stylesheets are managed (DesignManager)
- A new module for building navigations (Navigator)
- A new admin search module (AdminSearch)
- A brand spanking new installation/upgrade/freshen mechanism
The beta program has been created to enable the public to assist us in finding, reproducing, and isolating issues so that they can be fixed before production sites are generated. Our goal is to make the final release of CMSMS 2.0 the fastest, most stable, and best release ever.
We need your help to install and test this release as much as possible. Try out some of the things you regularly use CMSMS for, and play with the new functionality. Try out your modules, and maybe try porting some of your sites experimentally to see what some of the problems are. The more information we can get, the more we can fix.
As you know, in order to make an omelette, a few eggs must be broken. There are some third party modules that will need to be revised to work with CMSMS 2.0. This includes modules that:
- Work with the content API directly, or create new content types
- Work with template API directly (not just module templates)
- Create WYSIWYG or syntax highlighter interfaces.
About the DesignManager
The Design Manager is perhaps the biggest thing for experienced CMSMS developers to learn. It is a new module which unifies and combines all of the previous template editing functionality, stylesheet functionality, and ThemeManager into one cohesive module.
In DesignManager, every template is treated exactly the same: there is no real distinction in the system between page templates, module templates, and generic templates (previously generic templates were called "Global Content Blocks"). This makes implementing advanced concepts such as template re-use, template inheritance, and function libraries much more simple.
CMSMS does not discriminate which type of template is called, it really only needs a name. The type functionality is there strictly to allow for the organization and management of templates. Additionally, templates can be placed in categories for further organization.
Template types, when used, have two components: an 'originator', and a name. The originator indicates which module or section of code created the 'type', and the name indicates a distinct type name. i.e: 'News::Summary' indicates a summary template for the News module.
"Designs" are a new object which loosely associates stylesheets and templates together. This allows for organizing templates even further—and sharing them. Full import and export functionality is provided for designs.
The biggest change with respect to content and the DesignManager is that now, when editing a content page, you now must select both a design and a template. Because there is no real distinction between types of templates, the design is used so that the proper stylesheets can be associated with the page and template.
This will take a bit of learning and a bit of time to figure out, but once you get your head wrapped around this concept we are sure you will see the flexibility and power in these capabilities.
About the new Installer:
We have written a brand new installation/upgrade/repair application to allow easily installing CMSMS. This single PHP file also handles installing language packs, and re-building your config.php if it becomes corrupt.
Because we've written this exciting new installation utility (we call it the Installation Assistant), we will no longer need to distribute individual language packs, diff files, or English-only and full distributions.
So, How do I Install this thing?
If your web environment supports a fairly standard version of PHP 5.4 (subject to change) then you should have few problems running the installer.
The installation assistant is distributed as a single php file enclosed inside of a .zip file (for easy downloading). Here are the steps to follow:
1. Download the install assistant .zip file to your desktop machine. Typically, this file will be called something like cmsms-install-2.0-beta1.zip (or something similar)
2. Upload the zip file to your web host in your web root (or the destination directory where you want to install CMSMS).
3. unzip the zip file
4. Browse to the php file. something like: http://imysite.com/cmsms-install.php
5. Follow the on screen instructions.
The .zip file also contains a README document with more detailed instructions.
What about Upgrades?
This is the difficult part of the beta process. We need people from the community to test upgrading sites too, so we can isolate and fix problems with that; however, we cannot verify that the new version is production ready.
Upgrade testing should ONLY be performed on copies of websites in a secure location with a verified backup. Also, you will need to cross reference the third party modules and other plugins/UDT's that are in use on the site to ensure that they should be 2.0 compatible. Please do extensive upgrade testing!
How long will the beta run?
There is no fixed time limit on the beta program. We will release 2.0 for production when we feel (based on our experience, and community reports) that the code base is production ready. We do expect that the beta program will run for a few months, and we will need to release a few different beta versions.
I have a question about new functionality, where do I ask it?
If it's a question you have, there are a few ways you can ask it:
1. Post it in the forum. We have a special forum setup specifically for issues related to the 2.0 Beta. Please ask your question there, and provide as much information as possible for us to be able to understand and answer you quickly. This forum will be heavily moderated.
2. Ask it in the beta IRC channel. We have created a special IRC channel specifically for discussions about the 2.0 beta process. This channel is irc://irc.freenode.net/#cmsms-beta ;
I have found a problem, how do I report it?
For those of you who are experiencing problems with 2.0, please provide a well-described post in the appropriate section of our forum. It is very important that you provide as much information as possible, and steps to reproduce the problem.
Our dev team members may not be able to investigate the problem immediately, therefore the more information you provide the better. We will endeavour to isolate and understand the issue, and then figure out how the issue can be solved.
Note: The beta process is not a time to ask for features. During the beta process we will not be adding features, only ensuring that the features we have decided upon for this release work the way that they are intended.
Warning: Not for Production Use!!
As mentioned above. This is a beta process where we identify issues and resolve them before final public release. We cannot, and will not, support the use of 2.0 Beta in a production environment.
What Modules are Broken:
We have briefly mentioned some of the types of modules that would probably be broken. Here is a brief list of some of the popular modules that will need either minor or major revisions to be compatible with 2.0.
The biggest changes in the 2.0 API are related to WYSIWYG/highlighter modules, and to modules that work with directly with templates and stylesheets. Additionally, most methods that were previously marked as deprecated have been removed.
Fixing modules that work directly with templates and stylesheets will involve rewriting the code to work with the new template API. For your reference, we have updated all of our 2.0 API documentation and have shared it at: http://www.cmsmadesimple.org/APIDOC2_0. The classes you need to look at include:
For WYSIWYG modules this method should return TRUE for CmsCoreCapabilities::WYSIWYG_MODULE. (CmsCoreCapabilities is a new class for CMSMS 2.0)
- WYSIWYGGenerateHeader() / SyntaxGenerateHeader()
If you have further difficulties and questions when updating your module for 2.0 comparability, please feel free to contact us via the special 2.0 forum, or the irc beta channel.