Bring Out Yer Dead!
Monty Python fans will quickly recognize the title phrase and remember the scene where he's not quite dead. So begins this article on how to remove all the old, dead stuff from your Exponent site and custom theme. Before the end of the year (probably v2.2.3 which tentatively will be a Thanksgiving/Christmas holiday/last release of 2013) we'll have stripped out several deprecated modules and no longer support older themes (deprecated function calls).
Deprecated Function Calls
- The most prevalent deprecated call when hard-coding modules is that a 2.0 controller requires an 'action' parameter where all the old school modules only used a 'view' parameter. The default action is ALWAYS 'showall' (if none is passed) and the default view is ALWAYS the action name (if none is passed). Therefore if you simply updated an old function call by changing it to 'expTheme::module()' and did not ensure you passed an 'action' parameter...you may not see the correct view...especially if the view you requested was not a variant of the showall action.
- Take for instance, the Search module 'Show' view. If you updated it to simply pass the 'view' parameter of 'show', it would attempt to display the 'showall_show' view with the showall action. The easiest fix is to change the 'view' parameter to an 'action' parameter which will automatically use the same named view ('action'=>'show').
- I've previously written about the other hard-coding function calls which must be replaced. In v2.2.1 you'll now receive a deprecated theme call warning message when logged on as an admin. The message will contain details about what file and line the deprecated call is on and a suggestion on the fix with a link to a more detailed help page. (updating to 2.2.0 blog post) (theme update guide)
- The Headline module was marked as deprecated quite a while back and was fully removed in v2.2.0. It is replaced by the Text module showall 'Headline' view. This change is automatically accomplished in an upgrade by converting all Headline modules into Text modules with the Headline view.
- The Flowplayer module uses a non-HTML5 compliant player and was replaced by a newer Media Player module. The new Media Player module also plays simple YouTube links using the same player (YouTube module requires using the 'embed' code) so we've also deprecated the YouTube module. Though they still exist, they will be completely removed as stated above. There is currently an optional upgrade script to convert all Flowplayer and YouTube modules into Media Player modules. Currently if you run a 0.9x Migration, it will create Flowplayer/YouTube modules which you can then upgrade to Media Player modules. This will be changed once the deprecated modules are removed.
- All the old school modules have been deprecated, replaced, and removed as of v2.2.0. In fact, you'll notice the 'Old School' modules tab is missing from the Module Manager. Any old school modules on the site will automatically be upgraded to work with their 2.0 controller replacement during an upgrade.
- And now that PHP v5.5 has been released, PHP v5.3 is no longer recommended (end of life) and PHP 5.2 is obsolete, we should consider updating the minimum PHP requirement be at least v5.3.1 (or one of the more robust iterations of v5.3) to allow some of the v5.3+ only PHP features such as namespaces, etc...
Exponent CMS Developer