• twitter image
  • facebook image
  • youtube image
  • linkedin image
Language: CMS Made Simple Czech CMS Made Simple France CMS Made Simple Hungary CMS Made Simple Russia CMS Made Simple Netherlands

All times are UTC




Post new topic Reply to topic  [ 1 post ] 
Author Message
 Post subject: CMSMS 2.0 Update
PostPosted: Sun May 31, 2015 3:19 pm 
Offline
Dev Team Member
Dev Team Member
User avatar

Joined: Tue Oct 19, 2004 6:44 pm
Posts: 7966
Location: Fernie British Columbia, Canada
It has been a bit since I last updated you on the status of 2.0, and since we are getting close to finished, and there is some important news I thought it was time to drop you a line.

CMSMS 2.0 has undergone extensive testing lately by the ever helpful and constructive members of the french community, and by the members of the dev team. We have fixed numerous problems with the installation and upgrade process, fixed issues with locking in the content manager, fixed issues with the Design manager and a thousand other small, but important things.

We have also changed all core modules that output to the frontend of the site (Search, ModuleManager, News, Navigator) to use a new smarty variable scope for their output so that variables created in one module cannot stomp on another module's variables. This also may have positive performance implications though we haven't specifically tested this.

We have spent a great deal of time analysing and optimizing the code for performance, specifically focussing on database query optimization, and reducing database queries where possible. We also under took various code optimizations particularly where that code was executed for frontend requests and the core API. As we were at a state of diminishing returns we did not specifically optimize all code particularly if it was only for some admin requests.

Most recently the smarty guys released Smarty 3.1.24. Their latest public release in quite a while. This release reportedly improves template compile time by 30 to 40 percent, and introduces numerous security fixes. It was our thought that this was going to be the best opportunity for a while (if our tests succeeded) to upgrade smarty and to remove our hacks.

For those of you who attended the geekmoot you will remember in my presentation that I stated one of our goals for after 2.0 was to go to a 'pure smarty'. Well, the opportunity presented itself early.

Our tests indicate that this version of smarty (3.1.24) is stable, and works properly (previous versions had significant bugs, at least one of which we reported). So we have upgraded CMSMS 2.0 to use a pure, un-modified version of smarty.

Although this is great news in itself, it is unfortunate that this will cause problems for a significant percentage of people upgrading their sites from CMSMS 1.x. This is due to the way smarty now deals with variable scopes and sub templates.

In CMSMS 1.x it was assumed and documented that all smarty variables were available at all time, and never disappeared. If you created a variable (lets say 'page_title' in a module template called from the {content} tag that was called from within the </__body> section of your page template, that variable {$page_title} would be available within the <head> section of your page template.

Unfortunately, that is no longer true without explicit action by you. In smarty (now that CMSMS is using an un-modified version of Smarty), sub templates create their own scope. And there is a hierarchy of templates. Variables are copied from parent scopes into child scopes, but are not copied from the child to the parent. Making a smarty variable persistent across multiple scopes requires explicit action by the site developer (specifically you).

Fortunately, it is relatively easy to copy a local variable in a sub template, into a global variable for use in the parent, or other peer templates. And we have added a new smarty plugin to the core to help even more.

If you remember the stock News detail template there was a line such as this:
Code:
{assign var='canonical' value=$entry->canonical}

That created a smarty variable called 'canonical' that was then used in the <head> portion of the page template to create the <link rel="canonical"> tag.
Because of the new smarty scoping methodology, that syntax now looks like this:
Code:
{assign var='canonical' value=$entry->canonical scope=global}


Additionally, the {share_data} plugin will allow you to specify numerous local variables that should be copied to the global scope. i.e:
Code:
{share_data scope=global vars='page_title,canonical,page_description'}


CMSMS uses smarty sub-templates extensively. The most obvious ones are the {content} tags, module templates, like {News}, {Search}, or {Navigator}. However the three portions of the page template (above the HTML tag, from </__body> down, and the head section) are each individual sub templates. Thus, without explicit action variables created in the top section are now not available in the body.

Where we go from here:
At this time we are going to quickly undertake one more round of internal testing to make sure we haven't recently introduced any critical errors. After a sufficient group of dev team members have tested the release and consider it reasonable we will freeze commits except for bug fixes, and issue a public release candidate. We will also be generating twice daily public snapshots of the release candidate.

Although a little behind schedule, we hope that the release candidate will run for four to six weeks, at which time we will kick it out there.

So, there is good news mixed in with the bad (a little sugar with the medicine). Stay tuned, and thank you for your time.

_________________
Follow me on twitter
Please post system information from "Extensions >> System Information" (there is a bbcode option) on all posts asking for assistance.
--------------------
If you can't bother explaining your problem well, you shouldn't expect much in the way of assistance.


Top
  Profile  
 
Share On:
Share on Facebook Share on Twitter Share on Google+
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 1 post ] 

All times are UTC


Who is online

Users browsing this forum: No registered users


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Hosting Nation - Managed CMSMS Hosting