CMSMS 2.0 (say what now?!)
CMSMS 2.0 (say what now?!)
So, about a month ago I sat down and discussed the changes that were incoming for the 1.1 branch. There were lots of big, exciting changes and a bit of controversy mixed in. Well, the scope of 1.1 has changed since then...
The next major release of CMSMS will be 2.0. Why? Because I'm basically changing everything. It's not a total rewrite... but more of a major organization and rethinking of key elements. Fixing all the things I hate about the current implementation (yes, I'm probably CMSMS's worst critic).
Here's a quick rundown of everything that's been done so far...
- I've basically touched every piece of code in CMSMS in the last month. My goal here is a consolidation of a real API. I've renamed just about every file to be a consistent naming scheme. I've moved almost all of the functionality of the index.php and include.php into other files. I've documented most of the flow and how it works, as well.
- A lot of methods in the system are now in static php files in the API. Things like $gCms->getContentOperations() have gone away in favor of the simpler CmsContentOperations::some_method.
- I spent the last few nights reworking a LOT of the admin panel and how it operates. The menu is now controlled via an xml file that defines the structure of the menus. If you want to remove functions... just modify the xml file. I've also removed about 50% of the admin theme class functions in favor of using a global smarty template per theme.
- I've rewritten the hierarchy manager (again!) using a MUCH simpler set of tree classes. The result was an incredible speed-up.
- I've added function caching via pear's Cache:Lite. It can implemented anywhere in the system via the CmsCache class... I've added it in about 10 key places in the system to help reduce files loading and repetitive SQL queries (loading nls files and loading site preferences).
- I've also added FULL PAGE caching. If you're running a generally static site, turning this on will reduce page generation times to roughly .01 seconds and no database hits. The cache is automatically cleared when any page, template or global content block is edited, so you won't need to clear this by hand.
- I'm systematically removing the _seq tables from the system. Current svn has them removed from 5 key tables (content, content_props, groups, users and templates) already and I'm hoping to get to all of them for 2.0.
- Elijah is currently is the process of consolidating all of the javascript libraries to Dojo. This should remove a lot of the weird dependencies from the lib directory and make it a lot more streamlined and consistent. It will also put in place the idea of shipping just with the simple Dojo editor as the default WYSIWYG, with others available via the Module Manager.
- I've removed about 50% of the global functions from the system already in favor of static methods in various classes (e.g. get_site_preference becomes CmsApplication::get_preference). Some have backwards compatible global functions still around (like redirect for CmsResponse::redirect).
- I've rewritten the language handling functions into a CmsLanguage class. The code is about 25% of it's original size, and is written for the future Language Manager module that will be in 2.0. CMSMS will now ship with one language, and the ability to either download a language pack, or download languages via the Language Manager... much like how the Module Manager works now. More details on that later when we figure them out.
- I've rewritten addcontent,editcontent,listcontent,addtemplate and edittemplate from scratch. I've used proper API changes and smarty templates throughout. They're now not the scary bits of code they used to be.
Given the fact that all this has been done, but key features of what I put in my last post haven't even been touched yet, I think I'm going to have to extend my timelines a bit. With that, I expect to see a 2.0 beta near the end of Q1 (end of March), with a full version in the middle of Q2.
I expect a LONG beta process. The upgrade procedure is going to be steep, some modules will not work, and other things are going to creep up. Not to mention that there will have to be an entire rewrite of the server-side translation center to accommodate the changes I want to make.
If you want to follow the progress, or even play around with what is there so far, check out the 1.1 branch at http://svn.cmsmadesimple.org/svn/cmsmad ... /1.1. I won't be taking bug reports yet, as there are still a lot of holes to be patched up. But it's coming along...
Thanks!
Ted
The next major release of CMSMS will be 2.0. Why? Because I'm basically changing everything. It's not a total rewrite... but more of a major organization and rethinking of key elements. Fixing all the things I hate about the current implementation (yes, I'm probably CMSMS's worst critic).
Here's a quick rundown of everything that's been done so far...
- I've basically touched every piece of code in CMSMS in the last month. My goal here is a consolidation of a real API. I've renamed just about every file to be a consistent naming scheme. I've moved almost all of the functionality of the index.php and include.php into other files. I've documented most of the flow and how it works, as well.
- A lot of methods in the system are now in static php files in the API. Things like $gCms->getContentOperations() have gone away in favor of the simpler CmsContentOperations::some_method.
- I spent the last few nights reworking a LOT of the admin panel and how it operates. The menu is now controlled via an xml file that defines the structure of the menus. If you want to remove functions... just modify the xml file. I've also removed about 50% of the admin theme class functions in favor of using a global smarty template per theme.
- I've rewritten the hierarchy manager (again!) using a MUCH simpler set of tree classes. The result was an incredible speed-up.
- I've added function caching via pear's Cache:Lite. It can implemented anywhere in the system via the CmsCache class... I've added it in about 10 key places in the system to help reduce files loading and repetitive SQL queries (loading nls files and loading site preferences).
- I've also added FULL PAGE caching. If you're running a generally static site, turning this on will reduce page generation times to roughly .01 seconds and no database hits. The cache is automatically cleared when any page, template or global content block is edited, so you won't need to clear this by hand.
- I'm systematically removing the _seq tables from the system. Current svn has them removed from 5 key tables (content, content_props, groups, users and templates) already and I'm hoping to get to all of them for 2.0.
- Elijah is currently is the process of consolidating all of the javascript libraries to Dojo. This should remove a lot of the weird dependencies from the lib directory and make it a lot more streamlined and consistent. It will also put in place the idea of shipping just with the simple Dojo editor as the default WYSIWYG, with others available via the Module Manager.
- I've removed about 50% of the global functions from the system already in favor of static methods in various classes (e.g. get_site_preference becomes CmsApplication::get_preference). Some have backwards compatible global functions still around (like redirect for CmsResponse::redirect).
- I've rewritten the language handling functions into a CmsLanguage class. The code is about 25% of it's original size, and is written for the future Language Manager module that will be in 2.0. CMSMS will now ship with one language, and the ability to either download a language pack, or download languages via the Language Manager... much like how the Module Manager works now. More details on that later when we figure them out.
- I've rewritten addcontent,editcontent,listcontent,addtemplate and edittemplate from scratch. I've used proper API changes and smarty templates throughout. They're now not the scary bits of code they used to be.
Given the fact that all this has been done, but key features of what I put in my last post haven't even been touched yet, I think I'm going to have to extend my timelines a bit. With that, I expect to see a 2.0 beta near the end of Q1 (end of March), with a full version in the middle of Q2.
I expect a LONG beta process. The upgrade procedure is going to be steep, some modules will not work, and other things are going to creep up. Not to mention that there will have to be an entire rewrite of the server-side translation center to accommodate the changes I want to make.
If you want to follow the progress, or even play around with what is there so far, check out the 1.1 branch at http://svn.cmsmadesimple.org/svn/cmsmad ... /1.1. I won't be taking bug reports yet, as there are still a lot of holes to be patched up. But it's coming along...
Thanks!
Ted
Re: CMSMS 2.0 (say what now?!)
Somehow I feel this could change the whole perception of this cms.....
Can't wait now, though I love it already as it's got the power and simplicity I need!

Can't wait now, though I love it already as it's got the power and simplicity I need!

Re: CMSMS 2.0 (say what now?!)
That sounds really great! Looking forward to trying it out 

-
- Power Poster
- Posts: 496
- Joined: Wed Jan 25, 2006 11:53 am
Re: CMSMS 2.0 (say what now?!)
Sounds great.
Just some questions.
How about the modules that are now availeble to CMSMS 1.02. Will they stil work with 2.0 ?
Are the access right more advanced. Is it possible to let a user only edit the contect of a page and not the attributes like position in the menu, template, etc. a page is using ?
Greetings
Musicscore
Just some questions.
How about the modules that are now availeble to CMSMS 1.02. Will they stil work with 2.0 ?
Are the access right more advanced. Is it possible to let a user only edit the contect of a page and not the attributes like position in the menu, template, etc. a page is using ?
Greetings
Musicscore
Re: CMSMS 2.0 (say what now?!)
So far, modules are still compatible. I've been doing what I can to keep backwards compatibility working correctly and I intend to keep doing that. However, there are a few things I'd like to change yet, so I can't guarantee anything yet.musicscore wrote: How about the modules that are now availeble to CMSMS 1.02. Will they stil work with 2.0 ?
Are the access right more advanced. Is it possible to let a user only edit the contect of a page and not the attributes like position in the menu, template, etc. a page is using ?

I still need to talk about permissions changes with calguy. I know one of the things we want to change is group ownership and editing permissions for pages and templates. But I think you're right... we should probably have some kind of more granular approach for certain things.
Any suggestions on how you guys think permissions should work would be most helpful.
Thanks!
Ted
Re: CMSMS 2.0 (say what now?!)
One big question.
Is it possible to upgrade from version 1.02 to 2.0 without any problems?

Is it possible to upgrade from version 1.02 to 2.0 without any problems?

Re: CMSMS 2.0 (say what now?!)
So far, it is. My plan is to keep the upgrade as simple as possible using the same mechanism we have in place. Currently, that still works. However, with the changes in permissions coming, it could get hairy. We should be able to upgrade the content, groups, etc from a 1.0.2 site, but the permissions could be so drastically different, that you might have to set them up again if you made major changes. We'll know more once we figure out exactly what we're going to do for perms in 2.0.MichaelK wrote: One big question.
Is it possible to upgrade from version 1.02 to 2.0 without any problems?
![]()
Ted
Re: CMSMS 2.0 (say what now?!)
Will the new version require PHP 5 or will it still work with version 4?
The new version sounds fantastic! Keep up the good work!
The new version sounds fantastic! Keep up the good work!
Re: CMSMS 2.0 (say what now?!)
I'm not a developer, but I think it was discussed on IRC that 2.0 would be PHP 5 only.djprozac wrote: Will the new version require PHP 5 or will it still work with version 4?
Then, a question about the translations: Will it be possible to translate the installer in 2.0?
Re: CMSMS 2.0 (say what now?!)
Correct, all the things mentioned in the 1.1 thread apply... including being PHP5 only.
As for the installer, the plan is to either rewrite it or at least do a major overhaul. I've been looking at some of the other PHP application installers lately, and I like what they're doing. Almost all have translations in the installer... which will probably be the only language files included in the core download.
As for the installer, the plan is to either rewrite it or at least do a major overhaul. I've been looking at some of the other PHP application installers lately, and I like what they're doing. Almost all have translations in the installer... which will probably be the only language files included in the core download.
Re: CMSMS 2.0 (say what now?!)
Would be nice if I can do that via admin panelTed wrote: If you want to remove functions... just modify the xml file.

Re: CMSMS 2.0 (say what now?!)
It will be really cool for the cms made simple to be more faster and more simple because this is the name it stay behind.
The features and changes that Ted is talking about are especially directed into this way.
I would like to suggest using jquery library (www.jquery.com) because is really light-weight and has a lot of features.
I also wish one little feature which will be great for editing.
It is enabled tabs in textarea for editing templates and stylesheets.
I am with you people.
Svilen Sabev
The features and changes that Ted is talking about are especially directed into this way.
I would like to suggest using jquery library (www.jquery.com) because is really light-weight and has a lot of features.
I also wish one little feature which will be great for editing.
It is enabled tabs in textarea for editing templates and stylesheets.
I am with you people.
Svilen Sabev
Re: CMSMS 2.0 (say what now?!)
This 2.0 is good news.
I Like the new "full page caching" very much. Thx !
PM
I Like the new "full page caching" very much. Thx !
PM
Re: CMSMS 2.0 (say what now?!)
yeah, the full page caching is my favourite! Now I have loading times of up to 10 secs on some servers where the DB is not on localhost. I'm really excited how it all turns out.
Keep up the good work!
wientanz
Keep up the good work!
wientanz
Re: CMSMS 2.0 (say what now?!)
Looking forward to these additions. I keep preaching CMSMS to all of my developer friends. Bravo everyone !