Вывод полей второстепенной категории
Привет всем еще раз!
Такая нарисовалась проблема:
Есть товары, которые лежат сразу в нескольких категориях. Соответственно, одна у них основная, а остальные второстепенные (отмечены галочками на вкладке Категория).
Вывод на странице всех категорий через [[!msProducts?]].
Спасибо огромное Павлу!
РЕШЕНИЕ:
Павел Романов
modx.pro/help/23970#comment-139307
Сделайте копию сниппета msProducts и перед этой строкой:
Для вывода в чанках именно pagetitle делайте так:
Такая нарисовалась проблема:
Есть товары, которые лежат сразу в нескольких категориях. Соответственно, одна у них основная, а остальные второстепенные (отмечены галочками на вкладке Категория).
Вывод на странице всех категорий через [[!msProducts?]].
КАТАЛОГ
[[!msProducts?
&parents=`150`
&limit=`0`
&sortby=`{ "menuindex":"ASC" }`
&tpl=`programs.row`
]]
[[!msProducts?
&parents=`151`
&limit=`0`
&sortby=`{ "menuindex":"ASC" }`
&tpl=`programs.row`
]]
[[!msProducts?
&parents=`180`
&limit=`0`
&sortby=`{ "menuindex":"ASC" }`
&tpl=`programs.row`
]]Надо вывести в tpl pagetitle именно категории, указанной в [[!msProducts?]]. Если такая категория является основной — проблем нет. А вот если она дополнительная — то не выводится.Спасибо огромное Павлу!
РЕШЕНИЕ:
Павел Романов
modx.pro/help/23970#comment-139307
Сделайте копию сниппета msProducts и перед этой строкой:
$output[] = $pdoFetch->getChunk($tpl, $row);
добавьте:
$row['parents'] = $scriptProperties['parents'];Поменяйте вызовы msProducts на новый сниппет и теперь сможете в чанках использовать плейсхолдер [[+parents]], который будет выводить то, что указано в параметре &parents в вызове.Для вывода в чанках именно pagetitle делайте так:
[[#[[+parents]].pagetitle]]//или на Fenom{$parents | resource : 'pagetitle'} Комментарии: 36
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
joxi.ru/823NelZCwlwnym
Вот нужно вывести pagetitle этот дополнительной, а не основной категории
Если да, то может покажете как у вас в чанке выводится? Видимо просто ?
Просто в чанке укажите так:
если включен fenom, если нет, то
а на странице вызывается дополнительная категория
Как вывести именно ту, которая в вызове msProduct участвует?
так выведется название текущей страницы, т.е. текущей открытой категории, а не основной родительской категории товара
Вы не понимаете как это работает.
У каждого товара может быть ТОЛЬКО ОДНА основная категория, она указывается в бд в поле parent.
При этом товар может быть в других категориях, которые могут не являться дочерними категориями его parent.
В чанке parent — это то число, которое указано в бд у товара, а не то, что вы указали в parents при вызове сниппет msProducts
А мне надо вывести именно ту категорию. которая в msProducts, как и писала об этом ранее и в самом вопросе.
Каталог с категориями.
Есть категория id 150 в ней нет ни одного собственного товара.
Но есть товары из других категорий, у которых id 150 отмечена во вкладке Категории.
И при выводе в каталоге с категориями, id 150 выводит товары, в которых она отмечена. И без всяких дополнительных настроек, просто сниппетом msProduct
Вы попробуйте сами.
В одной создайте товар, а другую отметьте в нем галочкой.
И вот выведите pagetitle этой другой категории.
Тогда Вы поймете, о чем я.
Мне не нужен pagetitle основной категории, я уже говорила, что мне нужен Pagetitle той категории, в которой выеден товар сниппетом msProducts, в данном случае id150 — она не его основная.
Если второй вариант, что довольно странно, то можно по той же аналогии, что и сейчас, просто вместо $parent в строке укажите id этой категории
По хорошему стоит показать ваш вызов msProducts
Вот я вывожу в каталоге такую категорию. и вывожу в ней товары, но своих собственных товаров она не имеет., а только отмечена галкой в товарах других категорий. И таких Категорий на странице каталога несколько.
Вызов msProducts стандартный.
Так как мне вывести в товарах в &tpl=`programs.row` ее pagetitle?
50 категорий и 50 tpl? Отличающихся одной строкой?
Может так понятнее будет.
&tpl=`programs.row` у всех одинаковый, потому что универсальный.
Вы можете использовать additionalPlaceholders, про который написано тут.
Но нужно обновить minishop2 как минимум до 4.2. Не знаю, как будет в синтаксисе PHx, но на феном вызов будет такой:
И в чанке programs.row вместо укажите
так выводит родителя этих всех категорий…
Создайте в минишоп две категории.
В одной создайте товар, а другую отметьте в нем галочкой.
И вот выведите pagetitle этой другой категории.
modx.pro/help/23970#comment-139267
Значит, Вы не поняли мой вопрос.
Мне нужно вывести pagetitle той категории, которая указана в msproducts.
Если такая категория является основной — проблем нет. А вот если она дополнительная — то не выводится.
В любом случае, спасибо за попытку помочь.
В чанке msProducts (programs.row) вызывайте его так:
Или на Fenom
В карточке товара &id можно не указывать.
В чанке subcat_tpl доступны любые поля категории: [[+pagetitle]], [[+content]] и т. д.
Если такая категория является основной — проблем нет. А вот если она дополнительная — то не выводится.
Ваш сниппет выводит все дополнительные категории.
Может Вы знаете, как вывести именно ту, которая указана?
То есть тут нужно в чанке programs.row вывести pagetitle категории с ID = 180?
Он одинаков для всех категорий.
modx.pro/help/23970#comment-139274
добавьте:
Поменяйте вызовы msProducts на новый сниппет и теперь сможете в чанках использовать плейсхолдер [[+parents]], который будет выводить то, что указано в параметре &parents в вызове.
Для вывода в чанках именно pagetitle делайте так:
То, что нужно!