diff --git a/classes/Language.php b/classes/Language.php index 519f4dc21..c6cc366d2 100644 --- a/classes/Language.php +++ b/classes/Language.php @@ -364,7 +364,8 @@ class LanguageCore extends ObjectModel foreach($columns as $column) $fields .= $column['Field'].', '; $fields = rtrim($fields, ', '); - $identifier = 'id_'.str_replace('_lang', '', str_replace(_DB_PREFIX_, '', $name)); + preg_match('#^'.preg_quote(_DB_PREFIX_).'(.+)_lang$#i', $name, $m); + $identifier = 'id_'.$m[1]; $sql = 'INSERT IGNORE INTO `'.$name.'` ('.$fields.') (SELECT '; foreach($columns as $column) { diff --git a/classes/ObjectModel.php b/classes/ObjectModel.php index d6f3a3611..4765d9dc0 100644 --- a/classes/ObjectModel.php +++ b/classes/ObjectModel.php @@ -254,9 +254,8 @@ abstract class ObjectModelCore if (!Shop::isFeatureActive()) { if (isset($assos[$this->table]) && $assos[$this->table]['type'] == 'shop') - { $result &= $this->associateTo(Context::getContext()->shop->getID(true), 'shop'); - } + $assos = GroupShop::getAssoTables(); if (isset($assos[$this->table]) && $assos[$this->table]['type'] == 'group_shop') $result &= $this->associateTo(Context::getContext()->shop->getGroupID(), 'group_shop'); diff --git a/classes/shop/Shop.php b/classes/shop/Shop.php index 389116d39..b90ad0950 100644 --- a/classes/shop/Shop.php +++ b/classes/shop/Shop.php @@ -58,7 +58,7 @@ class ShopCore extends ObjectModel protected $identifier = 'id_shop'; /** @var array List of shops cached */ - protected static $shops = array(); + protected static $shops; private static $asso_tables = array( 'carrier' => array('type' => 'shop'), @@ -403,9 +403,11 @@ class ShopCore extends ObjectModel */ public static function cacheShops($refresh = false) { - if (self::$shops && !$refresh) + if (!is_null(self::$shops) && !$refresh) return; + self::$shops = array(); + $select = ''; $from = ''; $where = ''; diff --git a/install-dev/sql/db.sql b/install-dev/sql/db.sql index 9072a1619..955262acf 100644 --- a/install-dev/sql/db.sql +++ b/install-dev/sql/db.sql @@ -783,6 +783,7 @@ CREATE TABLE `PREFIX_hook` ( `description` text, `position` tinyint(1) NOT NULL default '1', `live_edit` tinyint(1) NOT NULL default '0', + `is_native` tinyint(1) NOT NULL default '0', PRIMARY KEY (`id_hook`), UNIQUE KEY `hook_name` (`name`) ) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;