Integrating MageBridge with other Magento extensions
A frequent question that pops up with MageBridge, is whether a certain Magento extension works together with it. In general, we can't say anything about this - except that any Magento extension should work, if it is properly written. Let's walk through all the parts that need to be compatible.
Magento extension-types
There are numerous extensions that can be installed within Magento. All of them work together with MageBridge - for a fact. But using them in MageBridge might be less straight-forward. By determining what the extension is doing, you can determine how much work it will be to integrate things in Joomla!.
- Backend extensions: MageBridge does not deal with the Magento backend, so there's no interference here whatsoever.
- Frontend extensions: For a Magento extension to appear in a frontend (Magento stand-alone or Joomla!/MageBridge), the extension most likely defines blocks or modifies blocks. Any Magento block can be forwarded to Joomla! - using either the MageBridge Component (for the content-block) or the MageBridge Custom Block module (for any other block).
Magento theming changes
Any modification to the Magento theme (whether it is in the PHTML-templates or XML-layouts) modifies the output of the Magento theme. MageBridge by itself does not modify anything. It only picks up the Magento theme, and instead of outputting the theme, it forwards it to Joomla!. To learn more about this concept of combined theming, see the MageBridge Design Guide.
Dealing with different URLs
Within Magento, the System Configuration allows you to configure various URLs for various scopes (Global / Website / Store). Some extensions are poorly written, only with a Magento single-site concept in mind. MageBridge requires the Magento multi-site design to be fully implemented within an extension.
For instance, if a CSS-file is integrated, the getSkinUrl() function needs to be used, and not the general getUrl(). The Magento website gives more tips regarding this.
Dealing with different types of output (JSON, AJAX)
Sometimes, a Magento extension is used to output different data than just HTML. MageBridge tries to detect this by applying various rules. Pages with limited block-output, JSON-data and various other types of output are dealt with. If this fails to work for some reason, the Yireo team will be able to help out here - simply, because this is supposed to work without problems in MageBridge. In most cases, if the Magento extension offers AJAX URLs, MageBridge will be able to detect this. If not, adding the AJAX URL to the box Direct Output URLs in the Magento configuration will add AJAX-compatibility.
Different HTML-structure requires different CSS
Whenever you pick a different Magento theme in Magento itself, the HTML-structure of your webpages changes. But this also means the CSS needs to change as well. This same rule applies to Joomla! / MageBridge. The global structure of your HTML-document is not any longer defined in the Magento theme, but in your Joomla! template. Any CSS-code that relies on that structure needs to be modified.
This means you might need to modify the CSS-code of Magento extensions. How much this will be, is impossible to say. However, it's common logic that if you want to have a custom built site, you also need to modify CSS-code - whether you're dealing with a stand-alone Magento site or a MageBridge/Joomla! site.
Adding extra blocks
Frequently, if a Magento extension requires JavaScript, it will use the Magento XML Layout to insert a script to the Magento header. MageBridge will detect this, and add the script to the Joomla! header instead. But if a Magento extension adds its own block to the Magento header-block, MageBridge will not bridge this automatically. The guide Adding custom Magento scripts to the Joomla! page will explain you how to deal with this.
Beware of the JavaScript problem
Magento itself uses a lot of different JavaScript effects, and most (if not all) of these effects are based on the ProtoType library. Unfortunately this ProtoType library is not working together with the MooTools library, that is frequently used in Joomla! extensions. You should configure your MageBridge environment in such a way that this conflict does not occur. If an extension is based on jQuery (with support with the jQuery compatibility mode), this works together nicely with either MooTools or ProtoType.
For more information, see the Working with JavaScript guide.
Created on Friday, 10 December 2010Modified on Tuesday, 01 May 2012
More tutorials in this section
- Using HM_FeaturedProducts with MageBridge
- Using Layered Navigation Pro with MageBridge
- Related products with the Joomla! Tags component
- Integrating MageBridge with other Joomla! extensions
- Language configuration in MageBridge
- Integrating JomSocial and MageBridge
- JomSocial profile-synchronization
- Overriding the JomSocial-connector configuration
- Working with JomSocial events
- Step-by-step: Configuring sh404SEF [INCOMPATIBLE]
- Integrating MageBridge with other Magento extensions
- Using ARTIO JoomSEF
- Use MageBridge with Advanced Module Manager
- Using OneStepCheckout with MageBridge
- Using Jirafe with MageBridge
- Adding aheadWorks AJAX Cart Pro to MageBridge
- Using EcomDev CheckItOut with MageBridge
- Integrating MageWorx Instant Cart with MageBridge
