Условие вызова pdoMenu
Добрый день
Подскажите а как правильно создать условие?
Подскажите а как правильно создать условие?
{'!pdoMenu' | snippet : [
{if 'limit' > 5 && 'hereClass'}
'parents' => '7',
'level' => '1',
'offset' => '1',
'limit' => '5',
'hereClass' => 'active',
'tplOuter' => '@INLINE <ul class="topMenu_items_prod">{$wrapper}</ul>',
'tpl' => '@INLINE <li><a {$classes} href="{$link}">{$menutitle}</a></li>'
{else}
'parents' => '7',
'level' => '1',
'limit' => '5',
'hereClass' => 'active',
'tplOuter' => '@INLINE <ul class="topMenu_items_prod">{$wrapper}</ul>',
'tpl' => '@INLINE <li><a {$classes} href="{$link}">{$menutitle}</a></li>'
{/if}
]}
Комментарии: 13
Помогите с синтаксисом
{'!pdoMenu' | snippet : [
'parents' => '7',
'level' => '1',
'limit' => '5',
'offset' => '{if 'limit' > 5} offset = '1' {/if}', как тут правильно составить?
'hereClass' => 'active',
'tplOuter' => '@INLINE <ul class="topMenu_items_prod">{$wrapper}</ul>',
'tpl' => '@INLINE <li><a {$classes} href="{$link}">{$menutitle}</a></li>'
]}
Не совсем понятно, что вы хотите этим условием добиться
Не могу придумать адекватное условие к выборке, и еще правильно его записать.
Есть меню, всего 5 элементов, больше нельзя во фронте, а всего в родителе может быть сколько угодно.
Есть переключение по страницам туда и сюда (pdoNeighbors)
Начальное условие:
limit => 5
1 2 3 4 5 (6, 7, 8,… эти пункты отключены к показу, тк лимит = 5)
— если активный 6, тогда нужно 2 3 4 5 6,
— если 7 тогда нужно 3 4 5 6 7
и так далее.
Есть какие нибудь предложения?))
Есть меню, всего 5 элементов, больше нельзя во фронте, а всего в родителе может быть сколько угодно.
Есть переключение по страницам туда и сюда (pdoNeighbors)
Начальное условие:
limit => 5
1 2 3 4 5 (6, 7, 8,… эти пункты отключены к показу, тк лимит = 5)
— если активный 6, тогда нужно 2 3 4 5 6,
— если 7 тогда нужно 3 4 5 6 7
и так далее.
Есть какие нибудь предложения?))
{var $limit = 5}
{var $offset = $limit > 5 ? '1' : '0'} Если лимит больше 5, тогда вернуть 1, иначе 0
{'!pdoMenu' | snippet : [
'parents' => '7',
'level' => '1',
'limit' => $limit,
'offset' => $offset,
'hereClass' => 'active',
'tplOuter' => '@INLINE <ul class="topMenu_items_prod">{$wrapper}</ul>',
'tpl' => '@INLINE <li><a {$classes} href="{$link}">{$menutitle}</a></li>'
]}
Максим спасибо большое что ответили, но данная конструкция не работает.
Я так думаю что по $limit фильтрация работать не будет, она получается всегда = 5.
Если я меняю {var $limit = 6} тогда срабатывает условие!
Я так думаю что по $limit фильтрация работать не будет, она получается всегда = 5.
Если я меняю {var $limit = 6} тогда срабатывает условие!
Я думаю проще сделать на JS.
Выводить все, считать количество списков и просто показывать нужные относительно активного, а не нужные display:none.
Выводить все, считать количество списков и просто показывать нужные относительно активного, а не нужные display:none.
Так вы значение лимита меняйте! Его же можно из GET ловить. Это достаточно гибкое решение и думаю что можно приспособить. Но не понимаю картины в целом — я ничего больше посоветовать не могу.((((
Ну в целом картина простая
Есть категория например «товары» и в ней товар 1,2,3,4,5,6,7… и т.д.
На странице вывода товара есть горизонтальное меню.
Всего в это меню помещается 5 элементов, больше не влезает из за особенностей верстки.
Вот не могу найти решение:
Если например активный пункт 1,2,3,4,5, то все гуд, при условии Limit=5, они отображаются и какой то из них подсвечивается активный, а если например выбран «товары/товар6» то он в меню не отображается, по прежнему пункты 1,2,3,4,5.
Вот нужно что бы:
Если активный пункт 6, то выводить меню из 2,3,4,5,6
Если активный пункт 7, то выводить меню из 3,4,5,6,7
Если активный пункт 8 то выводить меню из 4,5,6,7,8
И так далее.
Понимаете?
Есть категория например «товары» и в ней товар 1,2,3,4,5,6,7… и т.д.
На странице вывода товара есть горизонтальное меню.
Всего в это меню помещается 5 элементов, больше не влезает из за особенностей верстки.
Вот не могу найти решение:
Если например активный пункт 1,2,3,4,5, то все гуд, при условии Limit=5, они отображаются и какой то из них подсвечивается активный, а если например выбран «товары/товар6» то он в меню не отображается, по прежнему пункты 1,2,3,4,5.
Вот нужно что бы:
Если активный пункт 6, то выводить меню из 2,3,4,5,6
Если активный пункт 7, то выводить меню из 3,4,5,6,7
Если активный пункт 8 то выводить меню из 4,5,6,7,8
И так далее.
Понимаете?
Другое объяснение:
т.е значение offset = общее кол-во ($coutn) — $limit, но какое значение в pdoMenu несет в себе общее количество, countChildren? это не правильное мышление
Если активный какой то из 1,2,3,4,5, то
{'!pdoMenu' | snippet : [
'parents' => '7',
'limit' => '5'
]}
Если активный какой то из 6 то
{'!pdoMenu' | snippet : [
'parents' => '7',
'limit' => '5',
'offset' => '1'
]}
Если активный какой то из 7 то
{'!pdoMenu' | snippet : [
'parents' => '7',
'limit' => '5',
'offset' => '2'
]}
Если активный какой то из 8 то
{'!pdoMenu' | snippet : [
'parents' => '7',
'limit' => '5',
'offset' => '3'
]}
И так далее…
А каким образом посетитель перейдет на товар 6, если в меню видны изначально только 1,2,3,4,5?
Есть переключение по страницам туда и сюда (pdoNeighbors). На главной странице будут представлены все товары, может с главной туда попасть.
Мне пришла в голову такая реализация.
Поскольку мы на странице товара, то идентификатор активного товара нам известен -его можно получить и на феноме и в самописном сниппете.
Нужно перед вызовом pdoMenu разместить вызов своего сниппета, который получит идентификатор текущего товара, получит идентификаторы двух товаров до него и двух после (я думаю логику можно будет подсмотреть в реализации pdoNeighbors) и вернет список из пяти айдишников — два айдишника до, айдишник текущего товара, два айдишника после.
Это строку скормить pdoMenu в параметр resources. И будет красиво, ваш товар активный будет всегда по центру и по два товара побокам.
Поскольку мы на странице товара, то идентификатор активного товара нам известен -его можно получить и на феноме и в самописном сниппете.
Нужно перед вызовом pdoMenu разместить вызов своего сниппета, который получит идентификатор текущего товара, получит идентификаторы двух товаров до него и двух после (я думаю логику можно будет подсмотреть в реализации pdoNeighbors) и вернет список из пяти айдишников — два айдишника до, айдишник текущего товара, два айдишника после.
Это строку скормить pdoMenu в параметр resources. И будет красиво, ваш товар активный будет всегда по центру и по два товара побокам.
Круто! Да можно подумать в данном направлении)
Спасибо, буду мучить)
Спасибо, буду мучить)
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.