Добрый вечер.
Помогите решить вопрос:
На сайте следующая структура: главная — категория — подкатегория — страница
Хочу создать страницу, которая будет является «категорией», содержащей несколько «подкатегорий», которые входят в другие категории. И если эта подкатегория находится во второй категории, то должна иметь другой заголовок.
Пример:
Есть
— главная — категория-1 — подкатегория-1-1 (с именем «подкатегория-1-1) — страница
— главная — категория-1 — подкатегория-1-2 — страница
— главная — категория-2 — подкатегория-2-1 — страница
— главная — категория-2 — подкатегория-2-2 — страница
— главная — категория-3 — подкатегория-3-1 — страница
Необходимо создать категорию-4, которая должна содержать подкатегорию-1-1 (но, с именем подкатегория-00011), подкатегорию-2-2 (но, с именем подкатегория-00022), подкатегорию-3-1 (но, с именем подкатегория-00031).
Догадки:
Есть предположение, что надо создать TV-1, необязательное к заполнению, в котором будем задавать новое имя. Потом TV-2, на основании которого getResources вывести нужные подкатегории.
Помогите с TV-2 и getResources (или возможно, чем-то другим) для решения задачи.
Для: Modx Revo
Спасибо.
Как добавить страницу-подкатегорию в несколько страниц-категорий
Версия MODX: Revolution
Комментарии (18)
Для добавления комментариев вы должны авторизоваться или зарегистрироваться.
Михаил 18.01.2016 02:54 #
Павел Романов 18.01.2016 10:10 #
1. Поставьте pdoTools и используйте вместо getResources pdoResources из него (он и работает быстрее и возможностей больше).
2. Сделайте TV category с типом ввода «Чекбокс» или «Список ( множественный выбор)».
3. В возможных значениях сделайте так:
4. В вызове pdoResources проверяйте так:
Андрей 10.02.2016 01:09 #
Андрей 10.02.2016 01:18 #
И да, 3д тень от указателя на Вашем сайте это какой-то скрипт?
Павел Романов 10.02.2016 08:32 #
Андрей 15.02.2016 22:50 #
Пробовал так:
Не срабатывает. Печатает параметр, а не ссылку выводит. Спасибо
Павел Романов 15.02.2016 23:11 #
Если так, то в TV оставьте первый вариант (с #[[+id]]#):
Сделайте простенький сниппет-модификатор «categories»:
И на странице товара выводите:
Андрей 16.02.2016 22:53 #
Павел Романов 16.02.2016 23:58 #
У Вас есть TV category, у которого в параметрах ввода так:
Эта конструкция выводит массив ресурсов с шаблонами 2 и 3 из родителя с ID 7 в виде чекбоксов.
Если на странице новости отметить несколько категорий и прописать [[*category]], то выведется что-то вроде:
Числа в данном случае — это ID отмеченных категорий. Правильно?
Вам нужно вывести не последовательность ID, а ссылки на эти категории. Для этого нужно преобразовать эту строку в такой вид:
и указать данную строку в качестве параметра &resources какому-нибудь сниппету типа pdoResources. А уже как оформить этот вывод — дело техники.
Для этого преобразования служит сниппет categories:
Этому сниппету нужно просто передать строку #12##24##54# и он её переделает в 12,24,54.
Исходную строку передаем в переменной input и можем использовать сниппет как в стандартном виде:
так и в виде модификатора для TV (что удобнее):
Дальше просто указываем эту конструкцию в качестве параметра &resources у того же pdoResources, чтобы он вывел только ресурсы с указанными ID. Так будет на странице новости:
А так можно использовать в чанке-шаблоне вывода новостей:
Чанк category-item такой:
Естественно, в вызове новостей нужно прописать параметр:
И проверить, не стоит ли это:
Если так, то, естественно, вызывать нужно без префикса tv.:
Андрей 17.02.2016 01:42 #
Дальше не догоняю.
Если в чанке новости написать
,
выводит название и соответственно урл дочек отмеченных категорий вместо родителей.
Если [[+tv.category:categories]], то id родителей
Такая конструкция выводит название и урл новости
а не категории
Павел Романов 17.02.2016 02:15 #
Это важно, поскольку, если Вы ставите
то в качестве [[+uri]] и [[+pagetitle]] у Вас подставятся поля не категорий, а самих новостей.
То есть, нужно сделать чанк category-item:
И в чанке новости выводить так:
Андрей 17.02.2016 21:20 #
Теперь сделал так, с чанком tpl.category. Вывод всех ресурсов родителя с id 7 показывает.
Новость на главной во флексе
Результат здесь
Павел Романов 17.02.2016 21:59 #
Андрей 17.02.2016 22:45 #
Павел Романов 17.02.2016 22:59 #
Есть небольшая проблемка со ссылками тут:
Это из за того, что в чанке Вы указали не:
а, скорее всего:
Поправьте и они тоже будут работать.
mSearch же совершенно для другого предназначен. Это система поиска и фильтрации. Если фильтровать хотите в общем списке новостей, то да — он это умеет.
Если же выводить список категорий у новости, то нет.
Андрей 17.02.2016 23:26 #
Там, где Вы видели категории, это было раньше с parent вместо #id#. Но ссылку можно было указать только на одну из категорий так <a href="[[+parent]]" class...>[[+category]]. Теперь сделал всё по предложенному Вами решению. Можете посмотреть, везде одно и тоже: вывод ресурсов в родителе 7 и вёрстка поплыла от количества. При чём у каждой статьи не более двух категорий отмечено.
В чанке указал +uri
Андрей 19.02.2016 22:07 #
Сейчас вместо pdoResources ввёл [[+category]] и на выводе не убраны решетки, выводится #35#.
Сразу оговорюсь, что до того как обновил MODX до версии 2.4.3, решётки убирались, значит конструкция работала/
Сам не пойму, ведь по сути первая строка сниппета заменяет две решетки запятой, а вторая удаляет оставшиеся решетки
Андрей 17.02.2016 22:12 #