// blocklayered fix

This commit is contained in:
rMalie
2011-07-06 13:27:41 +00:00
parent 692c1e9c8d
commit fc28eb57bf
3 changed files with 68 additions and 50 deletions
+28 -13
View File
@@ -186,7 +186,6 @@ abstract class ModuleCore
$this->id = Db::getInstance()->Insert_ID(); $this->id = Db::getInstance()->Insert_ID();
$this->enable(true); $this->enable(true);
$this->id = Db::getInstance()->Insert_ID();
return true; return true;
} }
@@ -199,18 +198,21 @@ abstract class ModuleCore
{ {
if (!Validate::isUnsignedId($this->id)) if (!Validate::isUnsignedId($this->id))
return false; return false;
$result = Db::getInstance()->ExecuteS('
SELECT `id_hook` $sql = 'SELECT id_hook
FROM `'._DB_PREFIX_.'hook_module` hm FROM '._DB_PREFIX_.'hook_module hm
WHERE `id_module` = '.(int)($this->id)); WHERE id_module = '.(int)$this->id;
$result = Db::getInstance()->ExecuteS($sql);
foreach ($result AS $row) foreach ($result AS $row)
{ {
Db::getInstance()->Execute(' $sql = 'DELETE FROM `'._DB_PREFIX_.'hook_module`
DELETE FROM `'._DB_PREFIX_.'hook_module` WHERE `id_module` = '.(int)$this->id.'
WHERE `id_module` = '.(int)($this->id).' AND `id_hook` = '.(int)$row['id_hook'];
AND `id_hook` = '.(int)($row['id_hook'])); Db::getInstance()->Execute($sql);
$this->cleanPositions($row['id_hook']); $this->cleanPositions($row['id_hook']);
} }
$this->disable(true);
return Db::getInstance()->Execute(' return Db::getInstance()->Execute('
DELETE FROM `'._DB_PREFIX_.'module` DELETE FROM `'._DB_PREFIX_.'module`
WHERE `id_module` = '.(int)($this->id)); WHERE `id_module` = '.(int)($this->id));
@@ -244,7 +246,7 @@ abstract class ModuleCore
$sql = 'SELECT id_shop $sql = 'SELECT id_shop
FROM '._DB_PREFIX_.'module_shop FROM '._DB_PREFIX_.'module_shop
WHERE id_module = '.$this->id.' WHERE id_module = '.$this->id.'
'.(($list) ? 'AND id_shop IN('.implode(', ', $list).')' : ''); '.((!$forceAll) ? 'AND id_shop IN('.implode(', ', $list).')' : '');
$items = array(); $items = array();
if ($results = Db::getInstance($sql)->executeS($sql)) if ($results = Db::getInstance($sql)->executeS($sql))
foreach ($results as $row) foreach ($results as $row)
@@ -286,8 +288,10 @@ abstract class ModuleCore
*/ */
public function disable($forceAll = false) public function disable($forceAll = false)
{ {
$list = Shop::getListOfID($this->shopID, $this->shopGroupID); $sql = 'DELETE FROM '._DB_PREFIX_.'module_shop
Db::getInstance()->execute('DELETE FROM '._DB_PREFIX_.'module_shop WHERE id_module = '.$this->id.' AND id_shop IN('.implode(', ', $list).')'); WHERE id_module = '.$this->id.'
'.((!$foreAll) ? ' AND id_shop IN('.implode(', ', Shop::getListOfID($this->shopID, $this->shopGroupID)).')' : '');
Db::getInstance()->execute($sql);
} }
/** /**
@@ -382,12 +386,23 @@ abstract class ModuleCore
/** /**
* Unregister module from hook * Unregister module from hook
* *
* @param int $id_hook Hook id * @param int $id_hook Hook id (can be a hook name since 1.5.0)
* @param array $shopList List of shop * @param array $shopList List of shop
* @return boolean result * @return boolean result
*/ */
public function unregisterHook($hook_id, $shopList = null) public function unregisterHook($hook_id, $shopList = null)
{ {
// Get hook id if a name is given as argument
if (!is_numeric($hook_id))
{
$sql = 'SELECT `id_hook`
FROM `'._DB_PREFIX_.'hook`
WHERE `name` = \''.pSQL($hook_id).'\'';
$hook_id = Db::getInstance()->getValue($sql);
if (!$hook_id)
return false;
}
$sql = 'DELETE FROM `'._DB_PREFIX_.'hook_module` $sql = 'DELETE FROM `'._DB_PREFIX_.'hook_module`
WHERE `id_module` = '.(int)$this->id.' WHERE `id_module` = '.(int)$this->id.'
AND `id_hook` = '.(int)$hook_id AND `id_hook` = '.(int)$hook_id
+4 -3
View File
@@ -271,11 +271,12 @@ class ShopCore extends ObjectModel
public static function getExcludedUris() public static function getExcludedUris()
{ {
$directories = scandir(dirname(__FILE__).'/../'); $dirname = dirname(__FILE__);
$directories = scandir($dirname.'/../');
$not_uri = array(); $not_uri = array();
foreach ($directories AS $directory) foreach ($directories AS $directory)
if (is_dir(dirname(__FILE__).'/../'.$directory) AND (!preg_match ('/^\./', $directory))) if (is_dir($dirname.'/../'.$directory) AND (!preg_match ('/^\./', $directory)))
$not_uri[] = '/'.$directory.'/'; $not_uri[] = $directory;
return $not_uri; return $not_uri;
} }
+23 -21
View File
@@ -149,12 +149,12 @@ class BlockLayered extends Module
Configuration::updateValue('PS_LAYERED_BITLY_USERNAME', Tools::getValue('bitly_username')); Configuration::updateValue('PS_LAYERED_BITLY_USERNAME', Tools::getValue('bitly_username'));
Configuration::updateValue('PS_LAYERED_BITLY_API_KEY', Tools::getValue('bitly_api_key')); Configuration::updateValue('PS_LAYERED_BITLY_API_KEY', Tools::getValue('bitly_api_key'));
Configuration::updateValue('PS_LAYERED_SHARE', Tools::getValue('share_url')); Configuration::updateValue('PS_LAYERED_SHARE', Tools::getValue('share_url'));
$html .= ' $html .= '
<div class="conf confirm"> <div class="conf confirm">
<img src="../img/admin/ok.gif" alt="" title="" /> <img src="../img/admin/ok.gif" alt="" title="" />
'.$this->l('Settings saved successfully').' '.$this->l('Settings saved successfully').'
</div>'; </div>';
} }
else else
{ {
$html .= ' $html .= '
@@ -296,7 +296,6 @@ class BlockLayered extends Module
$selectedFilters['category'][] = $id_parent; $selectedFilters['category'][] = $id_parent;
$queryFilters = ''; $queryFilters = '';
foreach ($selectedFilters AS $key => $filterValues) foreach ($selectedFilters AS $key => $filterValues)
{ {
if (!sizeof($filterValues)) if (!sizeof($filterValues))
@@ -383,18 +382,21 @@ class BlockLayered extends Module
$n = (int)Tools::getValue('n', Configuration::get('PS_PRODUCTS_PER_PAGE')); $n = (int)Tools::getValue('n', Configuration::get('PS_PRODUCTS_PER_PAGE'));
$sql = ' $sql = 'SELECT p.id_product, p.out_of_stock, p.available_for_order, p.quantity, p.minimal_quantity, p.id_category_default, p.customizable, p.show_price, p.`weight`,
SELECT p.id_product, p.out_of_stock, p.available_for_order, p.quantity, p.minimal_quantity, p.id_category_default, p.customizable, p.show_price, p.`weight`, p.ean13, pl.available_later, pl.description_short, pl.link_rewrite, pl.name, i.id_image, il.legend, m.name manufacturer_name, p.condition, p.id_manufacturer,
p.ean13, pl.available_later, pl.description_short, pl.link_rewrite, pl.name, i.id_image, il.legend, m.name manufacturer_name, p.condition, p.id_manufacturer, DATEDIFF(p.`date_add`, DATE_SUB(NOW(), INTERVAL '.(Validate::isUnsignedInt(Configuration::get('PS_NB_DAYS_NEW_PRODUCT')) ? Configuration::get('PS_NB_DAYS_NEW_PRODUCT') : 20).' DAY)) > 0 AS new
DATEDIFF(p.`date_add`, DATE_SUB(NOW(), INTERVAL '.(Validate::isUnsignedInt(Configuration::get('PS_NB_DAYS_NEW_PRODUCT')) ? Configuration::get('PS_NB_DAYS_NEW_PRODUCT') : 20).' DAY)) > 0 AS new FROM '._DB_PREFIX_.'product p
FROM '._DB_PREFIX_.'product p LEFT JOIN '._DB_PREFIX_.'product_shop ps ON ps.id_product = p.id_product
LEFT JOIN '._DB_PREFIX_.'product_lang pl ON (pl.id_product = p.id_product) LEFT JOIN '._DB_PREFIX_.'product_lang pl ON (pl.id_product = p.id_product AND pl.id_shop = '.Shop::getCurrentShop(true).')
LEFT JOIN '._DB_PREFIX_.'image i ON (i.id_product = p.id_product AND i.cover = 1) LEFT JOIN '._DB_PREFIX_.'image i ON (i.id_product = p.id_product AND i.cover = 1)
LEFT JOIN '._DB_PREFIX_.'image_lang il ON (i.id_image = il.id_image AND il.id_lang = '.(int)($cookie->id_lang).') LEFT JOIN '._DB_PREFIX_.'image_lang il ON (i.id_image = il.id_image AND il.id_lang = '.(int)($cookie->id_lang).')
LEFT JOIN '._DB_PREFIX_.'manufacturer m ON (m.id_manufacturer = p.id_manufacturer) LEFT JOIN '._DB_PREFIX_.'manufacturer m ON (m.id_manufacturer = p.id_manufacturer)
WHERE p.`active` = 1 AND pl.id_lang = '.(int)$cookie->id_lang.$queryFilters WHERE p.`active` = 1
.' ORDER BY '.Tools::getProductsOrder('by', Tools::getValue('orderby')).' '.Tools::getProductsOrder('way', Tools::getValue('orderway')). AND pl.id_lang = '.(int)$cookie->id_lang.'
' LIMIT '.(((int)(Tools::getValue('p', 1)) - 1) * $n.','.$n); AND ps.id_shop = '.Shop::getCurrentShop(true)
.$queryFilters.
' ORDER BY '.Tools::getProductsOrder('by', Tools::getValue('orderby')).' '.Tools::getProductsOrder('way', Tools::getValue('orderway')).
' LIMIT '.(((int)(Tools::getValue('p', 1)) - 1) * $n.','.$n);
$this->products = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS($sql); $this->products = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS($sql);
return $this->products; return $this->products;
@@ -426,7 +428,7 @@ class BlockLayered extends Module
$whereC = rtrim($whereC, 'OR ').')'; $whereC = rtrim($whereC, 'OR ').')';
$productsSQL = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS(' $productsSQL = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('
SELECT p.`id_product`, p.`condition`, p.`id_manufacturer`, p.`weight`, s.quantity SELECT p.`id_product`, p.`condition`, p.`id_manufacturer`, p.`weight`, s.quantity,
(SELECT GROUP_CONCAT(`id_category`) FROM `'._DB_PREFIX_.'category_product` cp WHERE cp.`id_product` = p.`id_product`) as ids_cat, (SELECT GROUP_CONCAT(`id_category`) FROM `'._DB_PREFIX_.'category_product` cp WHERE cp.`id_product` = p.`id_product`) as ids_cat,
(SELECT GROUP_CONCAT(`id_feature_value`) FROM `'._DB_PREFIX_.'feature_product` fp WHERE fp.`id_product` = p.`id_product`) as ids_feat, (SELECT GROUP_CONCAT(`id_feature_value`) FROM `'._DB_PREFIX_.'feature_product` fp WHERE fp.`id_product` = p.`id_product`) as ids_feat,
(SELECT GROUP_CONCAT(DISTINCT(pac.`id_attribute`)) (SELECT GROUP_CONCAT(DISTINCT(pac.`id_attribute`))
@@ -708,7 +710,7 @@ class BlockLayered extends Module
$params = '?'; $params = '?';
foreach($_GET as $key => $val) foreach ($_GET as $key => $val)
$params .= $key.'='.$val.'&'; $params .= $key.'='.$val.'&';
$share_url = $link->getCategoryLink((int)$category->id, $category->link_rewrite[(int)$cookie->id_lang], (int)$cookie->id_lang).rtrim($params, '&'); $share_url = $link->getCategoryLink((int)$category->id, $category->link_rewrite[(int)$cookie->id_lang], (int)$cookie->id_lang).rtrim($params, '&');