Jump to content

Сделать активной ссылку категории будучи на странице товара


Recommended Posts

Здравствуйте, уважаемые форумчане!

 

У меня небольшая проблема, которую я не могу решить в силу своих ограниченых знаний php и движка prestashop.

 

Суть вопроса: надо сделать так, чтобы ссылка категории, в которой находиться товар, на странице которого я нахожусь выделялась цветом.

 

Мне удалось добиться позитивных результатов с категорией. Когда я нахожусь на странице категории её ссылка подсвечивается благодаря коду в superfish-modified.css:

.sf-menu .sfHoverForce a {
color: #84C352;

Суть в том, что ссылки в меню на странице категории имеют class="sfHoverForce", задается этот класс в файле blocktopmenu.php, скорее всего через строчки:

$selected = ($this->page_name == 'cms' && ((int)Tools::getValue('id_cms') == $page['id_cms'])) ? ' class="sfHoverForce"' : '';
$this->_menu .= '<li '.$selected.'>';
$this->_menu .= '<a href="'.$links[0]['link'].'">'.$cms->meta_title.'</a>';
$this->_menu .= '</li>';

А на странице товара class="sfHoverForce" почему-то упущен :( даже пробел остался после <li >. Такое ощущение, что его там просто забыли или что-то его удаляет :(

 

Я перерыл весь файл blocktopmenu.php, даже не зная как задается правильно страница товара, логично строчка должна начинаться с "<li  ", а там все эти строчки имеют  class="sfHover", а в коде страницы товара вообще никакого класса нету. Заменять все class="sfHover" на class="sfHoverForce" пробовал - не работает. Вообще нету строчек без класса, с пустым <li >.

 

И тут вся моя логика заканчивается и начинается знание движка и php. Помогите, кто реально шарит, где надо прописать этот класс? А то если с рубрикой работает, значит и со страницей должно работать...

 

Думал дописать код типа: если в адресе есть "рубрика", значит пиши class="sfHoverForce" на ссылку с этой рубрикой. Но как это сделать, я пока не знаю :(

Link to comment
Share on other sites

Вообще класс "sfHoverForce" это какая то отсебятина, потому что не в superfish плагине не в blocktopmenu такого класса не когда не было...

 

Чтобы в меню выделялось в какой категории ты находишься надо к li или к a в нутри li, прописать следующие:

{if isset($currentCategoryId) && ($node.id == $currentCategoryId)} current{/if}

P.S: Прописывать с пониманием внутри чего нужно прописывать и что должно произойти и как с этим работать дальше.

Edited by Kerm (see edit history)
Link to comment
Share on other sites

Kerm, а можно подробнее, где именно это надо написать. Вся проблема в том, что я не смог найти строчки в blocktopmenu.php, которая отвечает за вывод ссылок меню на странице товара. В php я не разбираюсь, а по логике строчки с пустым "<li >" нету. Как уже говорил - все "<li >" имеют либо class="sfHoverForce" либо class="sfHover", а страница товара показывает ссылки меню без каких-либо классов. Логики нету...

 

У меня presta 1.5.5, не знаю как в более ранних версиях, но в этой этот класс есть, я сам его не придумывал.

Link to comment
Share on other sites

Причем тут вообще php? 

Классы sfHoverForce и sfHover скрипт вообще проставляет...все нужное находится в файлах tpl модуля и .js

Link to comment
Share on other sites

Чудесно! С этого и надо было начинать ) 

 

А можете точнее сказать где прописать 

{if isset($currentCategoryId) && ($node.id == $currentCategoryId)} current{/if}

Или что надо изменить в скрипте или tpl?

Link to comment
Share on other sites

×
×
  • Create New...