From e0f104107082958ee93840ef18126be9fbf5ea9b Mon Sep 17 00:00:00 2001 From: Damien Metzger Date: Tue, 30 Jul 2013 19:15:51 +0200 Subject: [PATCH] // Performance improvements for the cart page --- classes/Address.php | 9 ++++----- classes/Link.php | 6 +++--- classes/shop/Shop.php | 22 ++++++++++------------ 3 files changed, 17 insertions(+), 20 deletions(-) diff --git a/classes/Address.php b/classes/Address.php index cb1fef134..10600c1cf 100644 --- a/classes/Address.php +++ b/classes/Address.php @@ -313,11 +313,10 @@ class AddressCore extends ObjectModel { $key = 'address_exists_'.(int)$id_address; if (!Cache::isStored($key)) - Cache::store( - $key, Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(' - SELECT `id_address` - FROM '._DB_PREFIX_.'address a - WHERE a.`id_address` = '.(int)$id_address)); + { + $id_address = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('SELECT `id_address` FROM '._DB_PREFIX_.'address a WHERE a.`id_address` = '.(int)$id_address); + Cache::store($key, (bool)$id_address); + } return Cache::retrieve($key); } diff --git a/classes/Link.php b/classes/Link.php index e5019b07a..7946e2044 100644 --- a/classes/Link.php +++ b/classes/Link.php @@ -91,10 +91,10 @@ class LinkCore if (!$id_lang) $id_lang = Context::getContext()->language->id; - if ($id_shop === null) - $shop = Context::getContext()->shop; - else + if (Configuration::get('PS_MULTISHOP_FEATURE_ACTIVE') && $id_shop !== null) $shop = new Shop($id_shop); + else + $shop = Context::getContext()->shop; $url = 'http://'.$shop->domain.$shop->getBaseURI().$this->getLangLink($id_lang); diff --git a/classes/shop/Shop.php b/classes/shop/Shop.php index da7a42e6c..4ca5cf8f4 100644 --- a/classes/shop/Shop.php +++ b/classes/shop/Shop.php @@ -187,18 +187,16 @@ class ShopCore extends ObjectModel public function setUrl() { - $sql = 'SELECT su.physical_uri, su.virtual_uri, - su.domain, su.domain_ssl, t.id_theme, t.name, t.directory - FROM '._DB_PREFIX_.'shop s - LEFT JOIN '._DB_PREFIX_.'shop_url su ON (s.id_shop = su.id_shop) - LEFT JOIN '._DB_PREFIX_.'theme t ON (t.id_theme = s.id_theme) - WHERE s.id_shop = '.(int)$this->id.' - AND s.active = 1 - AND s.deleted = 0 - AND su.main = 1'; - - if (!$row = Db::getInstance()->getRow($sql)) - return; + $row = Db::getInstance()->getRow(' + SELECT su.physical_uri, su.virtual_uri, su.domain, su.domain_ssl, t.id_theme, t.name, t.directory + FROM '._DB_PREFIX_.'shop s + LEFT JOIN '._DB_PREFIX_.'shop_url su ON (s.id_shop = su.id_shop) + LEFT JOIN '._DB_PREFIX_.'theme t ON (t.id_theme = s.id_theme) + WHERE s.id_shop = '.(int)$this->id.' + AND s.active = 1 AND s.deleted = 0 AND su.main = 1'); + + if (!$row) + return false; $this->theme_id = $row['id_theme']; $this->theme_name = $row['name'];