5.5 RC3: What's cooking?

It's been some time since the 5.5 betas were released, and I'm sure most of you (or at least some of you) have tried it for a spin. SugarCRM 5.5 adds some nice new features: Dynamic Teams, Advanced Password Management, Mobile layouts in the Studio, better Web Services and a better Themes Framework. However, those are just juicy new features from the press release. This is a quick overview of notable code changes.

Cache Directory Directive

SugarCRM has a huge cache directory which is used to store all kinds of temporary and also somewhat less temporary files. In config.php there has been a directive that points to this directory for years, even though a lot of the usages in the code have always been hard-coded to the default location. This has been reported several times.With the release of 5.5 it seems that this problem has been getting some attention: A lot of (not all) cache/ instances in the code have been replaced by the $sugar_config['cache_dir'] variable.

Theme Maintenance

All themes have been revamped to use CSS-based layouts instead of a tabled layout. There is the addition of the SugarIE6 theme (with automatic redirection of IE6 clients) and the simultaneous removal of Awesome80s, GoldenGate, Pipeline, Sugar2006, SugarClassic, Sunset and VintageSugar. No less then seven themes have been removed in Sugar's upcoming release. This most definitely is a part of SugarCRM Inc's plans to slim down SugarCRM's feature base. The themes that do remain are patched almost beyond recognition. Gone are the times of XTemplate: everything is Smarty now! The interface has been sliced up in dozens of small Smarty template files which mostly reside in themes/default/tpls. Next, all general images can be found in themes/default/images. Any overwriting templates and images are located in themes/(theme), reducing the codebase (themes directory shrinks from 4.9 to 3.3 MBytes in total). Finally, themes can be individually disabled from the Admin.

Be sure to take this one seriously, since almost all TPL files in Sugar have been modified to use the new CSS naming, the new JavaScript library, etc.

REST

Sugar has extended its webservice base with REST as an alternative to the existing SOAP service. You can find a nice discussion of RESTful here. This site also contains links to the official Web Services documentation.

Related Fields in Link

There is a promising new attribute to Link, the 'related_fields'. Not sure what this is for, it doesn't seem to be used yet. Perhaps a better way of creating relationship_info fields? (relationship_info fields are fields about a relationship, for instance the one that defines the role a Contact has related to an Opportunity)

Accounts in ProspectLists

Yes, it's now possible to add Accounts to ProspectLists! No support for other modules yet, however.

All help files have been removed

Yes, all help files have been removed from SugarCRM and all Help links have been replaced by deep-links to SugarCRM.com. I'm quite relieved, because this will make translations easier. However, what about translations of the official content? Will that be even possible? You might also be interested in this: SugarCRM is sending your unique server key to go with the Help request.

Model-View-Controller Changes

  • Controller: Support for mapping all action_x to action_y (action_remap). Very powerful!

SugarFields

  • All SugarFields are overwritable in custom/include/SugarFields. Woohoo!
  • It seems that Sugar is attempting to provide a general way of grouping fields with the new Collection SugarField
  • While saving, every SugarField instance (all fields) will receive one save() call
  • A new SugarField called Fullname (imagine the possibilities combined with overwritable SugarFields! This would support Internationalization much better then before.
  • Now only if SubPanels used SugarFields we could really make some headway.

Some Misc Items

  • Someone seems to have been obsessed with removing all unneeded require_once() calls and also moving them from out of the functions and methods to the top of the scripts. Nice.
  • The long-deprecated method SugarBean::create_list_query is gone
  • JavaScript: YUI has been upgraded to 2.6.0 and Ext JS 1 and 2 have been removed. Attention: This is actually pretty rare looking at Sugar's track record on keeping old libraries around. TinyMCE was upgraded (versions unknown)
  • PHP Libraries: PHPMailer was upgraded to 2.3 from 1.0.2. tcpdf was added.
  • SubPanels can now be disabled from the Admin. Not sure why this is here, since it cannot be determined per module and is therefore Sugar-wide.
  • 'Security' log calls will be redirected to 'debug' calls

That's it for now. If you have a contribution, please let me know.