// Merge -> revision 8608

git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@8612 b9a71923-0436-4b27-9f14-aed3839534dd
This commit is contained in:
rMalie
2011-09-15 16:10:59 +00:00
parent 8d9309ba23
commit 1977f1d851
8 changed files with 99 additions and 83 deletions
+21 -5
View File
@@ -1387,7 +1387,7 @@ class BlockLayered extends Module
/* If the current category isn't defined of if it's homepage, we have nothing to display */
$id_parent = (int)Tools::getValue('id_category', Tools::getValue('id_category_layered', 1));
if ($id_parent == 1)
return;
return false;
$queryFilters = ' AND p.active = 1';
@@ -1888,7 +1888,7 @@ class BlockLayered extends Module
{
if (is_array($value) AND array_key_exists('checked', $value ))
{
$paramGroupSelected .= '-'.Tools::link_rewrite($value['name']);
$paramGroupSelected .= '-'.str_replace('-', '_', Tools::link_rewrite($value['name']));
$paramGroupSelectedArray [Tools::link_rewrite($typeFilter['name'])][] = Tools::link_rewrite($value['name']);
if (!isset($titleValues[$typeFilter['name']]))
@@ -1900,7 +1900,7 @@ class BlockLayered extends Module
}
if(!empty($paramGroupSelected))
{
$paramSelected .= '/'.Tools::link_rewrite($typeFilter['name']).$paramGroupSelected;
$paramSelected .= '/'.str_replace('-', '_', Tools::link_rewrite($typeFilter['name'])).$paramGroupSelected;
$optionCheckedArray[Tools::link_rewrite($typeFilter['name'])] = $paramGroupSelected;
}
}
@@ -1912,21 +1912,32 @@ class BlockLayered extends Module
{
foreach ($typeFilter['values'] as $key => $values)
{
$nofollow = false;
$optionCheckedCloneArray = $optionCheckedArray;
//if not filters checked, add parameter
if(!in_array(Tools::link_rewrite($values['name']), $paramGroupSelectedArray[Tools::link_rewrite($typeFilter['name'])]))
{
//update parameter filter checked before
if(array_key_exists(Tools::link_rewrite($typeFilter['name']), $optionCheckedArray))
if(array_key_exists(Tools::link_rewrite($typeFilter['name']), $optionCheckedArray)) {
$optionCheckedCloneArray[Tools::link_rewrite($typeFilter['name'])] = $optionCheckedCloneArray[Tools::link_rewrite($typeFilter['name'])].'-'.str_replace('-', '_', Tools::link_rewrite($values['name']));
$nofollow = true;
}
else
$optionCheckedCloneArray[Tools::link_rewrite($typeFilter['name'])] = '-'.str_replace('-', '_', Tools::link_rewrite($values['name']));
}
else
{
// Remove selected parameters
$optionCheckedCloneArray[Tools::link_rewrite($typeFilter['name'])] = str_replace('-'.str_replace('-', '_', Tools::link_rewrite($values['name'])), '', $optionCheckedCloneArray[Tools::link_rewrite($typeFilter['name'])]);
if(empty($optionCheckedCloneArray[Tools::link_rewrite($typeFilter['name'])]))
unset($optionCheckedCloneArray[Tools::link_rewrite($typeFilter['name'])]);
}
$parameters = '';
foreach ($optionCheckedCloneArray as $keyGroup => $valueGroup)
$parameters .= '/'.str_replace('-', '_',$keyGroup).$valueGroup;
//write link
$typeFilter['values'][$key]['link'] = $linkBase.$parameters;
$typeFilter['values'][$key]['rel'] = ($nofollow)?'nofollow':'';
}
}
}
@@ -1944,7 +1955,7 @@ class BlockLayered extends Module
$cache = array('layered_show_qties' => (int)Configuration::get('PS_LAYERED_SHOW_QTIES'), 'id_category_layered' => (int)$id_parent,
'selected_filters' => $selectedFilters, 'n_filters' => (int)$nFilters, 'nbr_filterBlocks' => sizeof($filterBlocks), 'filters' => $filterBlocks,
'title_values' => $titleValues);
'title_values' => $titleValues, 'current_friendly_url' => htmlentities($paramSelected), 'nofollow' => $nofollow);
return $cache;
}
@@ -1952,9 +1963,14 @@ class BlockLayered extends Module
public function generateFiltersBlock($selectedFilters)
{
global $smarty;
if($filterBlock = $this->getFilterBlock($selectedFilters))
{
$smarty->assign($this->getFilterBlock($selectedFilters));
return $this->display(__FILE__, 'blocklayered.tpl');
}
else
return false;
}
/*
* This function must be improved