From 2c60ea08637f4f9dbfc0b43c101aff9d820a124d Mon Sep 17 00:00:00 2001 From: rMalie Date: Thu, 25 Aug 2011 15:27:49 +0000 Subject: [PATCH] // Fix multi virtual uri on same domain for htaccess + products on multishop git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@8196 b9a71923-0436-4b27-9f14-aed3839534dd --- classes/Product.php | 2 +- classes/Tools.php | 20 +++++++++++--------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/classes/Product.php b/classes/Product.php index 9f2ae429a..f59b17bcc 100644 --- a/classes/Product.php +++ b/classes/Product.php @@ -1437,7 +1437,7 @@ class ProductCore extends ObjectModel FROM `'._DB_PREFIX_.'product` p '.$context->shop->sqlAsso('product', 'p').' WHERE p.`active` = 1 - AND p.`id_product` IN ('.implode(', ', $ids_product).') + '.(($ids_product) ? 'AND p.`id_product` IN ('.implode(', ', $ids_product).')' : '').' AND p.`id_product` IN ( SELECT cp.`id_product` FROM `'._DB_PREFIX_.'category_group` cg diff --git a/classes/Tools.php b/classes/Tools.php index be88d90e8..4c1829755 100644 --- a/classes/Tools.php +++ b/classes/Tools.php @@ -1588,6 +1588,9 @@ class ToolsCore $domains = array(); foreach (ShopUrl::getShopUrls() as $shopUrl) { + if (!isset($domains[$shopUrl['domain']])) + $domains[$shopUrl['domain']] = array(); + $domains[$shopUrl['domain']] = array( 'physical' => $shopUrl['physical_uri'], 'virtual' => $shopUrl['virtual_uri'], @@ -1607,15 +1610,14 @@ class ToolsCore fwrite($writeFd, "\n# Disable Multiviews\nOptions -Multiviews\n\n"); fwrite($writeFd, "RewriteEngine on\n\n"); - foreach ($domains as $domain => $uri) - { - // Rewrite virtual multishop uri - if ($uri['virtual']) - { - fwrite($writeFd, 'RewriteCond %{HTTP_HOST} ^'.$domain.'$'."\n"); - fwrite($writeFd, "RewriteRule ^".ltrim($uri['virtual'], '/')."(.*) ".$uri['physical']."$1 [L]\n\n"); - } - } + foreach ($domains as $domain => $list_uri) + foreach ($list_uri as $uri) + // Rewrite virtual multishop uri + if ($uri['virtual']) + { + fwrite($writeFd, 'RewriteCond %{HTTP_HOST} ^'.$domain.'$'."\n"); + fwrite($writeFd, "RewriteRule ^".ltrim($uri['virtual'], '/')."(.*) ".$uri['physical']."$1 [L]\n\n"); + } // Webservice fwrite($writeFd, 'RewriteRule ^api/?(.*)$ '."webservice/dispatcher.php?url=$1 [QSA,L]\n\n");