// 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:
@@ -39,7 +39,7 @@ class BlockLayered extends Module
|
|||||||
{
|
{
|
||||||
$this->name = 'blocklayered';
|
$this->name = 'blocklayered';
|
||||||
$this->tab = 'front_office_features';
|
$this->tab = 'front_office_features';
|
||||||
$this->version = '1.8.4';
|
$this->version = '1.8.5';
|
||||||
$this->author = 'PrestaShop';
|
$this->author = 'PrestaShop';
|
||||||
$this->need_instance = 0;
|
$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');
|
$layered_filter_list = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('SELECT * FROM '._DB_PREFIX_.'layered_filter');
|
||||||
foreach ($layered_filter_list as $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']))
|
if (in_array((int)$params['category']->id, $data['categories']))
|
||||||
{
|
{
|
||||||
unset($data['categories'][array_search((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).'\'');
|
$data = Db::getInstance()->getValue('SELECT data FROM `'._DB_PREFIX_.'layered_friendly_url` WHERE `url_key` = \''.md5('/'.$attribute_name.'-'.$url_parameter).'\'');
|
||||||
if ($data)
|
if ($data)
|
||||||
foreach (Tools::unSerialize($data) as $key_params => $params)
|
foreach (self::unSerialize($data) as $key_params => $params)
|
||||||
{
|
{
|
||||||
if (!isset($selected_filters[$key_params]))
|
if (!isset($selected_filters[$key_params]))
|
||||||
$selected_filters[$key_params] = array();
|
$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);
|
$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']))
|
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']))
|
if (isset($layered_values['categories']) && count($layered_values['categories']))
|
||||||
foreach ($layered_values['categories'] as $id_category)
|
foreach ($layered_values['categories'] as $id_category)
|
||||||
$category_box[] = (int)$id_category;
|
$category_box[] = (int)$id_category;
|
||||||
@@ -4132,7 +4132,7 @@ class BlockLayered extends Module
|
|||||||
$values = false;
|
$values = false;
|
||||||
foreach ($res as $filter_template)
|
foreach ($res as $filter_template)
|
||||||
{
|
{
|
||||||
$data = Tools::unSerialize($filter_template['filters']);
|
$data = self::unSerialize($filter_template['filters']);
|
||||||
foreach ($data['categories'] as $id_category)
|
foreach ($data['categories'] as $id_category)
|
||||||
{
|
{
|
||||||
$n = 0;
|
$n = 0;
|
||||||
@@ -4175,4 +4175,18 @@ class BlockLayered extends Module
|
|||||||
if ($values)
|
if ($values)
|
||||||
Db::getInstance()->execute(rtrim($sql_to_insert, ','));
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user