Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Отобразить верхние разделы каталога в top-menu

Автор manadsgnРаздел Настройка системы и модулей

Ответов: 5
Просмотров: 2436
Последний ответ 21 Сентябрь 2012, 21:01:56
от admin
Вставка javascript menu

Автор sergeronРаздел Шаблоны XSLT

Ответов: 4
Просмотров: 2077
Последний ответ 16 Октябрь 2012, 12:24:59
от admin
как убрать id при выводе menu

Автор dvoynikovРаздел Шаблоны XSLT

Ответов: 2
Просмотров: 385
Последний ответ 29 Июль 2015, 12:04:23
от dvoynikov
%content menu()%

Автор t1PSYРаздел Макросы UMI.CMS

Ответов: 8
Просмотров: 3792
Последний ответ 01 Ноябрь 2011, 15:31:44
от t1PSY
According menu Using jQuery

Автор johnРаздел JS и AJAX

Ответов: 1
Просмотров: 2854
Последний ответ 17 Апрель 2012, 23:46:54
от BaceH

0 Пользователей и 1 Гость просматривают эту тему.

*

pandus

  • *
  • 24
  • +2/-0
    • Просмотр профиля
Как узать активный пункт в menu draw?
« : 20 Август 2017, 21:39:43 »
Пытаюсь в menu draw на php узнать активный пункт меню и ничего не получается.
Как я понял из документации узнать активный пункт элемента меню можно по параметру attribute:status, пытаюсь перебрать массив и ничего не получается ???.
В шаблоне menu draw пишу следующее :
<ul>
<?php foreach($variables['nodes:item'] as $item): ?>
    <li class="<?=$item['attribute:status']?>">
        <a href="<?=$item['attribute:link']?>"><?=$item['node:text']?></a>
    </li>
<?php endforeach; ?>
</ul>

Меню выводится но активный пункт меню не выделяется классом active, в чём может быть причина?

*

admin

  • *****
  • 2421
  • +172/-1
    • Просмотр профиля
Re: Как узать активный пункт в menu draw?
« Ответ #1 : 20 Август 2017, 21:49:55 »
Либо по каким-то причинам в $variables у соответствующего пункта (item) не стоит этот статус, либо при выводе он не выводится.

Для начала, проверьте что у вас в этом массиве данных $variables (просто выведите всю переменную в конечный html, который формируется у вас в этом шаблоне).


*

pandus

  • *
  • 24
  • +2/-0
    • Просмотр профиля
Re: Как узать активный пункт в menu draw?
« Ответ #2 : 20 Август 2017, 22:01:55 »
Странно, отключил кэш заработало.
При включении "Кэширование макросов и протоколов для XSLT и PHP шаблонизаторов" активируется всегда первый пункт меню.  :-X

*

admin

  • *****
  • 2421
  • +172/-1
    • Просмотр профиля
Re: Как узать активный пункт в menu draw?
« Ответ #3 : 21 Август 2017, 07:34:29 »
Как раз не странно  ;).
Когда у вас включено "Кэширование макросов и протоколов для XSLT и PHP шаблонизаторов", то система запоминает первый вызов макроса, который скорее всего был на главной странице. Вот вы и видели результат того первого вызова, в котором status не тот, который вы ожидали.