// Blocklayered - Define our own unSerialize

git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@15990 b9a71923-0436-4b27-9f14-aed3839534dd
This commit is contained in:
mDeflotte
2012-06-12 13:27:39 +00:00
parent 034e6a7e7f
commit df596c0889
+19 -5
View File
@@ -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;
}
}