ctib Posted October 6, 2013 Share Posted October 6, 2013 Здравствуйте, уважаемые форумчане! У меня небольшая проблема, которую я не могу решить в силу своих ограниченых знаний 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 More sharing options...
Kerm Posted October 7, 2013 Share Posted October 7, 2013 (edited) Вообще класс "sfHoverForce" это какая то отсебятина, потому что не в superfish плагине не в blocktopmenu такого класса не когда не было... Чтобы в меню выделялось в какой категории ты находишься надо к li или к a в нутри li, прописать следующие: {if isset($currentCategoryId) && ($node.id == $currentCategoryId)} current{/if} P.S: Прописывать с пониманием внутри чего нужно прописывать и что должно произойти и как с этим работать дальше. Edited October 7, 2013 by Kerm (see edit history) Link to comment Share on other sites More sharing options...
ctib Posted October 7, 2013 Author Share Posted October 7, 2013 Kerm, а можно подробнее, где именно это надо написать. Вся проблема в том, что я не смог найти строчки в blocktopmenu.php, которая отвечает за вывод ссылок меню на странице товара. В php я не разбираюсь, а по логике строчки с пустым "<li >" нету. Как уже говорил - все "<li >" имеют либо class="sfHoverForce" либо class="sfHover", а страница товара показывает ссылки меню без каких-либо классов. Логики нету... У меня presta 1.5.5, не знаю как в более ранних версиях, но в этой этот класс есть, я сам его не придумывал. Link to comment Share on other sites More sharing options...
Kerm Posted October 7, 2013 Share Posted October 7, 2013 Причем тут вообще php? Классы sfHoverForce и sfHover скрипт вообще проставляет...все нужное находится в файлах tpl модуля и .js Link to comment Share on other sites More sharing options...
ctib Posted October 7, 2013 Author Share Posted October 7, 2013 Чудесно! С этого и надо было начинать ) А можете точнее сказать где прописать {if isset($currentCategoryId) && ($node.id == $currentCategoryId)} current{/if} Или что надо изменить в скрипте или tpl? Link to comment Share on other sites More sharing options...
Recommended Posts