Hi,
I'm one of the developers of MageBridge, and with our extension we integrate Magento into Joomla!. This requires some weird tricks to also merge the Magento SEF URLs into the Joomla! SEF URLs, and because of this we have done some customization of the MageBridge router.php file. This works smoothly under Joomla! SEF and theoretically under any other SEF solutions that remains compatible with Joomla! SEF.
This was also always implied with ARTIO JoomSEF. By modifying ARTIO JoomSEF to use the original "router.php" file for MageBridge (setting it to either "Component's Router" or "") this worked out fine. Until one of the latest ARTIO JoomSEF upgrade.
I found a small bug that has heavy consequences for us. In the file "components/com_sef/joomsef.php" there is simple check whether a SEF URL matches the SEF URL as it would have been generated, and if it does not match, it redirects. However, instead of making a simple comparison, the value of $jSef is modified and therefor the comparison does not work:
if ((strpos($jSef, 'index.php?') === false) && ($oldUrl != $jSef)) {
Before this line of code $jSef could contain a valid URL:
But after this line, $jSef is suddenly turned into some kind of half-breed URL:
/shop/test?Itemid=57&option=com_magebridge&request=test&view=root
However, by modifying the line of code to the following, the problem is solved and the comparison works as it was supposed to:
if ((strpos($jSef, 'index.php?') === false) && (!$oldUrl == $jSef)) {
I consider myself good in PHP, but actually this problem baffles me. It must have something to do with PHP5 and references, but I have not it tracked down.
Hopefully you can apply a bugfix with the information above.
Thanks,
Jisse Reitsma
Yireo