What's new in MageBridge thanks to Joomla! 1.6?
Monday, 28 March 2011Some weeks ago we released MageBridge for Joomla! 1.6, but making it compatible with Joomla! 1.6 was only part of the job: Joomla! 1.6 ships with various new features, and we have tried to integrate many of these features with MageBridge. Here's a (technical) overview.
Making things compatible with Joomla! 1.6
First of all, the codebase of MageBridge needed to be rewritten for 1.6 compatibility. For instance, the XML-RPC library was thrown out of Joomla!l 1.6, so we decided to rewrite things to our own JSON-RPC library instead. Also, numerous calls to the Joomla! Framework changed between 1.5 and 1.6, so we made our own MageBridge classes a bit more intelligent to check for the right Joomla! version (if-joomla15-do-this-else-do-that).
Adding to this, the XML-definitions of Joomla! extensions changed, so we are now distributing all our MageBridge extensions (30+) for both Joomla! 1.5 as Joomla! 1.6. We applied the Phing packaging system to keep this under control.
Product Connector - user groups
To get a bit less technical, the MageBridge Product Connectors allow you to do stuff when a specific Magento product is sold. For instance, when a customer buys a product you can add that customer to a specific mailing list in Joomla!. With the new ACLs of Joomla! 1.6, we also made the existing Product Connector for Joomla! Usergroups compatible with it. You can now add your Magento customers to a specific Joomla! 1.6 User Group after they buy a specific product in your shop: How configure your resources for that new User Group is up to your imagination.
Profile Connector - extensible profiles
MageBridge allows you to keep the Joomla! user-profile in sync with the Magento customer-profile. With Joomla! 1.6 the basic user-profile (username, name, password, email) can be extended with various extra fields (phone, fax, street). We created an extra Profile Connector for Joomla! 1.6 Extensible Profiles to support this.
Store Connector for multilinguality
Joomla! 1.6 ships with basic multilingual features. We added an extra MageBridge Store Connector to make sure that you can load Magento in the same language as the Joomla! frontend.
Joomla! 1.6 backend demo
MageBridge is so powerful that it often takes already time just to explain its bare features. Seeing is ofcourse believing, so - besides already having a free trial version available - we now opened up a Joomla! website to the public, including limited access to the Joomla! Administrator. This would not have been possible without Joomla! 1.6 ACLs, which we used to restrict all access to unwanted parts of the Joomla! backend.
ACL integration? Nope
One feature request that popped up somewhere was the question whether the Joomla! ACLs could be integrated with the Magento ACLs. This sounds so horrifying that we took a quick look at it, and decided to skip investigating it any further. Magento offers functionality and adds the ability to restrict this functionality. Joomla! offers functionality, and also adds abilities to restrict that functionality. But in our opinion, it makes no point to want to integrate the two - except for the opties already included in the current MageBridge implementation.
However, with our existing MageBridge Store Connectors you can still configure which customers (in a specific Joomla! group) should gain again access to which specific Magento stores. This allows you to rebuild the known Magento Enterprise feature of private sales.
Code integration? Nope
Back in the days before MageBridge, we tried to inject the Magento code into the Joomla! application. But we failed to make this working, so instead we built MageBridge as bridge using HTTP-communication between Joomla! and Magento. With 1.6 we investigated this again, but - unfortunately - code integration is still something that does not work as easily as you would want:
Various static constants can't be redefined; combining the Magento autoloader with the one from Joomla! works fine but causes the Joomla! Framework to loose some of it's intelligence (jimport); and various Magento extensions are just ugly coded so that integrations like these are bound to go wrong. But we will give it some more tries and give you all feedback on how it goes.
