Хочу сделать так, чтобы при выборе категории или подкатегории в блоке категорий, активними становились все из данной родительской категории. Т.е. параметр selected присваивался всем из них, а не одной выбранной, как в стандартном модуле. Для этого добавил в таблицу ps_category строку id_branche, в которой будут присвоены id родительских категорий первого уровня. Т.е. при создании подкатегорий Netbooks и Notebooks в категории Laptops их id_branche будет присвоен id_category от Laptops. Соответственно в файлах modules\blockcategories\category-tree-branch.tpl и themes\prestashop\category-tree-branch.tpl строки
Код:
<li {if isset($last) && $last == 'true'}class="last"{/if}>
<a href="{$node.link}" {if isset($currentCategoryId) && ($node.id == $currentCategoryId)}class="selected"{/if} title="{$node.desc|escape:html:'UTF-8'}">{$node.name|escape:html:'UTF-8'}</a>
заменил на
Код:
<li {if isset($currentCategoryId) && ($node.id_branche == $currentCategoryId)}class="selected"{/if}>
<a href="{$node.link}" title="{$node.desc|escape:html:'UTF-8'}">{$node.name|escape:html:'UTF-8'}</a>
В файле modules\blockcategories\blockcategories.php после строк
Код:
$children = array();
if (isset($resultParents[$id_category]) AND sizeof($resultParents[$id_category]) AND ($maxDepth == 0 OR $currentDepth < $maxDepth))
foreach ($resultParents[$id_category] as $subcat)
$children[] = $this->getTree($resultParents, $resultIds, $maxDepth, $subcat['id_category'], $currentDepth + 1);
if (!isset($resultIds[$id_category]))
return false;
return array('id' => $id_category, 'link' => $link->getCategoryLink($id_category, $resultIds[$id_category]['link_rewrite']),
добавил
Код:
'id_branche' => $resultIds[$id_category]['id_branche'],
строки
Код:
if (Tools::isSubmit('id_product'))
{
if (!isset($cookie->last_visited_category) OR !Product::idIsOnCategoryId($id_product, array('0' => array('id_category' => $cookie->last_visited_category))))
заменил на
Код:
if (Tools::isSubmit('id_product'))
{
if (!isset($cookie->last_visited_category) OR !Product::idIsOnCategoryId($id_product, array('0' => array( 'id_branche' => $cookie->last_visited_category))))
А что сделать со строками
Код:
if (Tools::isSubmit('id_category'))
{
$cookie->last_visited_category = $id_category;
$smarty->assign('currentCategoryId', $cookie->last_visited_category);
}
не знаю. Как здесь вместо $id_category вызвать id_branche из выбраной категории?