From df596c0889bcfe6d36d0dc67147379e3499451a0 Mon Sep 17 00:00:00 2001 From: mDeflotte Date: Tue, 12 Jun 2012 13:27:39 +0000 Subject: [PATCH] // Blocklayered - Define our own unSerialize git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@15990 b9a71923-0436-4b27-9f14-aed3839534dd --- modules/blocklayered/blocklayered.php | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/modules/blocklayered/blocklayered.php b/modules/blocklayered/blocklayered.php index 60c82f57b..1fa63d0ad 100644 --- a/modules/blocklayered/blocklayered.php +++ b/modules/blocklayered/blocklayered.php @@ -39,7 +39,7 @@ class BlockLayered extends Module { $this->name = 'blocklayered'; $this->tab = 'front_office_features'; - $this->version = '1.8.4'; + $this->version = '1.8.5'; $this->author = 'PrestaShop'; $this->need_instance = 0; @@ -1370,7 +1370,7 @@ class BlockLayered extends Module $layered_filter_list = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('SELECT * FROM '._DB_PREFIX_.'layered_filter'); foreach ($layered_filter_list as $layered_filter) { - $data = Tools::unSerialize($layered_filter_list['filters']); + $data = self::unSerialize($layered_filter_list['filters']); if (in_array((int)$params['category']->id, $data['categories'])) { unset($data['categories'][array_search((int)$params['category']->id, $data['categories'])]); @@ -2232,7 +2232,7 @@ class BlockLayered extends Module { $data = Db::getInstance()->getValue('SELECT data FROM `'._DB_PREFIX_.'layered_friendly_url` WHERE `url_key` = \''.md5('/'.$attribute_name.'-'.$url_parameter).'\''); if ($data) - foreach (Tools::unSerialize($data) as $key_params => $params) + foreach (self::unSerialize($data) as $key_params => $params) { if (!isset($selected_filters[$key_params])) $selected_filters[$key_params] = array(); @@ -3465,7 +3465,7 @@ class BlockLayered extends Module { $layered_filter = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('SELECT * FROM '._DB_PREFIX_.'layered_filter WHERE id_layered_filter = '.(int)$id_layered_filter); if ($layered_filter && isset($layered_filter['filters']) && !empty($layered_filter['filters'])) - $layered_values = Tools::unSerialize($layered_filter['filters']); + $layered_values = self::unSerialize($layered_filter['filters']); if (isset($layered_values['categories']) && count($layered_values['categories'])) foreach ($layered_values['categories'] as $id_category) $category_box[] = (int)$id_category; @@ -4132,7 +4132,7 @@ class BlockLayered extends Module $values = false; foreach ($res as $filter_template) { - $data = Tools::unSerialize($filter_template['filters']); + $data = self::unSerialize($filter_template['filters']); foreach ($data['categories'] as $id_category) { $n = 0; @@ -4175,4 +4175,18 @@ class BlockLayered extends Module if ($values) Db::getInstance()->execute(rtrim($sql_to_insert, ',')); } + + /** + * Define our own Tools::unSerialize() (since 1.5), to be available in PrestaShop 1.4 + */ + protected static function unSerialize($serialized) + { + if (method_exists('Tools', 'unserialize')) + return Tools::unSerialize($serialized); + + if (is_string($serialized) && (strpos($serialized, 'O:') === false || !preg_match('/(^|;|{|})O:[0-9]+:"/', $serialized))) + return @unserialize($serialized); + + return false; + } }