2.4.0 - активный пункт меню не активен:)

 
Посетитель
small user social cms
МедальПочетный донор проектаКубок зрительских симпатийАвторитет форумаПочетный донор проекта
Сообщений: 3102
на сайте
Здравствуйте!
Суть - при переходе к записи, не обрабатывается пункт со ссылкой на родительскую категорию (обрабатываетя только пункт со ссылкой на родительский тип контента).
Если встречался кто с проблемой, подскажите, пожалуйста, решение. // все встречались (в коробке недоработка)
Кто решил проблему, подскажите, пожалуйста, решение.
Вроде б поднималась подобная тема. Если так, будьте добры, ткните носом (не могу найти).
Спасибо!
Редактировалось: 4 раз (Последний: 10 февраля 2016 в 00:58)
Украинский для инстант
Посетитель
no avatar
Сообщений: 62
Олег Васильевич я:

Здравствуйте!
Суть - при переходе к записи, не обрабатывается пункт со ссылкой на родительскую категорию (обрабатываетя только пункт со ссылкой на родительский тип контента).
Судя по всему проблема в том, что в класс активного пункта меню вываливается array. У себя решил таким образом:
В районе 20 строчки asswts\ui\menu.tpl.php заменл
Код PHP:
  1. if ($is_active) { $css_classes[] = 'active';}
на
Код PHP:
  1. if ($is_active) { $css_classes[] = 'active'; $css_classes = implode(" ", $css_classes);}
Редактировалось: 1 раз (Последний: 12 февраля 2016 в 13:20)
Реклама
cms
Посетитель
small user social cms
МедальПочетный донор проектаКубок зрительских симпатийАвторитет форумаПочетный донор проекта
Сообщений: 3102
на сайте
Iceman, спасибо, но так ошибка вываливается:
Fatal error: [] operator not supported for strings in ...\assets\ui\menu.tpl.php on line 23
Украинский для инстант
Посетитель
no avatar
Сообщений: 62
Да, тоже уже увидел, что вредный совет дал. Помог перенос слияния массива на строку вывода классов (примерно 37):
Код PHP:
  1. <li <?php if ($css_classes) { ?>class="<?php echo $css_classes; ?>"<?php } ?>>
на
Код PHP:
  1. <li <?php if ($css_classes) { ?>class="<?php echo implode(" ", $css_classes); ?>"<?php } ?>>
Но правда протестировал только вскользь.
Редактировалось: 1 раз (Последний: 12 февраля 2016 в 19:50)
Посетитель
small user social cms
МедальПочетный донор проектаКубок зрительских симпатийАвторитет форумаПочетный донор проекта
Сообщений: 3102
на сайте
Iceman:

на
Код PHP:
  1. <li <?php if ($css_classes) { ?>class="<?php echo implode(" ", $css_classes); ?>"<?php } ?>>
В 2.4.0 37 строка так и выглядит:)
Украинский для инстант
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 692
Ковыряя menu.tpl.php вы данный вопрос никак не решите поскольку для определения активного пункта система ориентируется на текущий url (см содержимое public function menu). Однако если очень хочется, то можно попробовать взять за основу не урл, а те же хлебные крошки, то есть
Код PHP:
  1. if ($detect_active_id){
  2. .................
  3. }
Заменить на
Код PHP:
  1. if ($detect_active_id){
  2. foreach($this->breadcrumbs as $link){
  3. if($item['url'] == $link['href']){ $active_ids[] = $id; }
  4. }
-----------------------------------------------

Специально для Олега Васильевича
Спойлер
Редактировалось: 2 раз (Последний: 13 февраля 2016 в 11:28)
Skype: pasha--g
Посетитель
small user social cms
МедальПочетный донор проектаКубок зрительских симпатийАвторитет форумаПочетный донор проекта
Сообщений: 3102
на сайте
Pasha:
то же самое можно сделать не выходя за рамки шаблона
Раз можно не выходить, то и не будем.
Думаю, не стоит сообщать тем кто следит за темой, что с "маленьким javascriptом" всё работает как надо, раз его предложил Pasha?
Pasha, спасибо!
Украинский для инстант
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.