Здравствуйте. Уже несколько дней ломаю голову над вышеупомянутым вопросом.
Есть каталог (ID=10) с многоуровневой вложенностью. Есть категория с информационными статьями (ID=83). Хочу сделать так, чтобы можно было бы сделать возможность выводить ту или иную статью в товаре определенной категории каталога.
Буду очень благодарен за любую помощь.
Как вывести ресурсы в других ресурсах?
Версия MODX: Revolution
Комментарии (10)
Для добавления комментариев вы должны авторизоваться или зарегистрироваться.
Игорь Сухинин 01.02.2018 20:45 #
Если логику, то это относительно просто. Вы можете задействовать механизм TV в таком смысле, что для каждого ресурса каталога Вы можете создать специальное поле TV с типом «Выпадающий список» или «Множественный выбор» (в зависимости от того, хотите ли Вы выводить только 1 или несколько статей сразу). Далее этот TV будет заполняться значениями в виде списка ресурсов из каталога ID=83. Таким образом, при сохранении ресурса каталога Вы получите привязку в виде ID статьи (статей), которые должны выводиться на данной странице во фронтенде. Ну и, соответственно, нужно как-то уже выводить сами статьи (точнее ссылки на них, я полагаю) на данном ресурсе каталога, используя привязку в виде ID значения нового TV.
kos0760 01.02.2018 21:17 #
Вот содержимое
И в выпадающем списке у меня появляются все дочерние категории каталога с ID=10
Именно так я бы хотел управлять появлением статей в товарах.
В моем каталоге есть категории «Паркет» и «Ламинат», в которых есть еще куча вложенных категорий. Есть категория «Информация» со статьями «Породы дерева» и «Уход за ламинатом». Вот я хотел бы показывать статью «Породы дерева» во всех товарах категории «Паркет», а «Уход за ламинатом» в товарах «Ламината».
Я пока мучился с решением этого вопроса понял, что нужно сравнивать два массива на одинаковые значения. Первый массив будет состоять из ID всех родительских категорий товара, а второй из ID, получаемых из TV show-resources информационных ресурсов. Все это нужно как-то собрать в шаблоне товара. И те, что совпали, нужно поместить в pdoResources в параметр &where=`{ «show-resources:IN»:[ совпавшие ID ] }`
Вот, к примеру, выбрал я в доп. поле статьи «Породы дерева» категорию «Паркет». Паркет у меня с ID=11. В карточке товара нужно как-то получить все ID родителей. К примеру это 15, 11, 12, 14. Получается, что общее значение 11.
Далее формируем вывод статей в товаре сниппетом
[[pdoResources?
&parents=`83`
&sortby=`pagetitle`
&sortdir=`asc`
&tvPrefix=``
&tpl=`show-resourcesTpl`
&includeTVs=`img`
&where=`{ «show-resources:IN»:[11] }`
]]
Надеюсь Вы поняли, что я имею ввиду и буду благодарен если наведете хоть на какую-нибудь мысль.
Игорь Сухинин 01.02.2018 22:07 #
Но есть одна проблема — я почти не использую готовые сниппеты типа pdoResources, поэтому уже с конкретной выборкой, к сожалению, я не помогу. Полагаю, стоит дождаться кого-то, кто с этим лучше знаком. Такие вещи я обычно решаю путем создания кастомного кода — работает как минимум не медленнее (а обычно даже быстрее, т.к. я работаю только с теми объектами, которые меня интересуют, а все остальное не загружается вообще), ну и не приходится ломать голову с кучей всевозможных ухищрений в плане фильтрации данных.
kos0760 01.02.2018 22:22 #
Игорь Сухинин 01.02.2018 22:32 #
kos0760 01.02.2018 22:38 #
kos0760 01.02.2018 22:37 #
Alex DOM 02.10.2018 14:25 #
kos0760 02.10.2018 16:04 #
Alex DOM 02.10.2018 16:34 #