[-] CORE : fixed bug #PSCFV-4754 Image sizes are the same for all shops and themes

This commit is contained in:
vAugagneur
2012-12-18 14:59:34 +01:00
parent 270ae41d15
commit ef0eb49ba9
19 changed files with 80 additions and 57 deletions
+31 -12
View File
@@ -78,6 +78,8 @@ class ImageTypeCore extends ObjectModel
* @var array Image types cache
*/
protected static $images_types_cache = array();
protected static $images_types_name_cache = array();
protected $webserviceParameters = array();
@@ -87,20 +89,17 @@ class ImageTypeCore extends ObjectModel
* @param string|null Image type
* @return array Image type definitions
*/
public static function getImagesTypes($type = null, $id_theme = false)
public static function getImagesTypes($type = null)
{
if (!isset(self::$images_types_cache[$type.($id_theme ? '-'.$id_theme : '')]))
if (!isset(self::$images_types_cache[$type]))
{
$where = 'WHERE 1';
if ($id_theme)
$where .= ' AND id_theme='.(int)$id_theme;
if (!empty($type))
$where .= ' AND '.pSQL($type).' = 1 ';
$query = 'SELECT * FROM `'._DB_PREFIX_.'image_type`'.$where.' ORDER BY `name` ASC';
self::$images_types_cache[$type] = Db::getInstance()->executeS($query);
}
return self::$images_types_cache[$type];
}
@@ -116,9 +115,9 @@ class ImageTypeCore extends ObjectModel
die(Tools::displayError());
Db::getInstance()->executeS('
SELECT `id_image_type`
FROM `'._DB_PREFIX_.'image_type`
WHERE `name` = \''.pSQL($typeName).'\'');
SELECT `id_image_type`
FROM `'._DB_PREFIX_.'image_type`
WHERE `name` = \''.pSQL($typeName).'\'');
return Db::getInstance()->NumRows();
}
@@ -128,9 +127,29 @@ class ImageTypeCore extends ObjectModel
* @param string $name
* @param string $type
*/
public static function getByNameNType($name, $type)
public static function getByNameNType($name, $type = null)
{
return Db::getInstance()->getRow('SELECT `id_image_type`, `name`, `width`, `height`, `products`, `categories`, `manufacturers`, `suppliers`, `scenes` FROM `'._DB_PREFIX_.'image_type` WHERE `name` = \''.pSQL($name).'\' AND `'.pSQL($type).'` = 1');
if (!isset(self::$images_types_name_cache[$name.'_'.$type]))
{
self::$images_types_name_cache[$name.'_'.$type] = Db::getInstance()->getRow('
SELECT `id_image_type`, `name`, `width`, `height`, `products`, `categories`, `manufacturers`, `suppliers`, `scenes`
FROM `'._DB_PREFIX_.'image_type`
WHERE `name` = \''.pSQL($name).'\' '.(!is_null($type) ? 'AND `'.pSQL($type).'` = 1' : ''));
}
return self::$images_types_name_cache[$name.'_'.$type];
}
}
public static function getFormatedName($name)
{
$theme_name = Context::getContext()->shop->theme_name;
$name_without_theme_name = str_replace(array('_'.$theme_name, $theme_name.'_'), '', $name);
//check if the theme name is already in $name if yes only return $name
if (strstr($name, $theme_name) && self::getByNameNType($name))
return $name;
else if (self::getByNameNType($name_without_theme_name.'_'.$theme_name))
return $name_without_theme_name.'_'.$theme_name;
else
return $theme_name.'_'.$name_without_theme_name;
}
}
+11 -11
View File
@@ -516,11 +516,11 @@ class LanguageCore extends ObjectModel
// delete images
$files_copy = array(
'/en.jpg',
'/en-default-thickbox_default.jpg',
'/en-default-home_default.jpg',
'/en-default-large_default.jpg',
'/en-default-medium_default.jpg',
'/en-default-small_default.jpg'
'/en-default-'.ImageType::getFormatedName('thickbox').'.jpg',
'/en-default-'.ImageType::getFormatedName('home').'.jpg',
'/en-default-'.ImageType::getFormatedName('large').'.jpg',
'/en-default-'.ImageType::getFormatedName('medium').'.jpg',
'/en-default-'.ImageType::getFormatedName('small').'.jpg'
);
$tos = array(_PS_CAT_IMG_DIR_, _PS_MANU_IMG_DIR_, _PS_PROD_IMG_DIR_, _PS_SUPP_IMG_DIR_);
foreach ($tos as $to)
@@ -726,12 +726,12 @@ class LanguageCore extends ObjectModel
$files_copy = array(
'/en.jpg',
'/en-default-thickbox_default.jpg',
'/en-default-home_default.jpg',
'/en-default-large_default.jpg',
'/en-default-medium_default.jpg',
'/en-default-small_default.jpg',
'/en-default-scene_default.jpg'
'/en-default-'.ImageType::getFormatedName('thickbox').'.jpg',
'/en-default-'.ImageType::getFormatedName('home').'.jpg',
'/en-default-'.ImageType::getFormatedName('large').'.jpg',
'/en-default-'.ImageType::getFormatedName('medium').'.jpg',
'/en-default-'.ImageType::getFormatedName('small').'.jpg',
'/en-default-'.ImageType::getFormatedName('scene').'.jpg'
);
foreach (array(_PS_CAT_IMG_DIR_, _PS_MANU_IMG_DIR_, _PS_PROD_IMG_DIR_, _PS_SUPP_IMG_DIR_) as $to)
foreach ($files_copy as $file)