Вот по-прежнему борюсь с брендами, что бы они автоматически добавлялись в фильтры. Как я понял, нужно для этого писать сниппет. Ничего, буду старатся(:
Код моего сниппета:
<?php
$brands = $modx->getDocumentChildrenTVarOutput($parentid= 23, $tvidnames= array ('brand'), $published= 1, $docsort= "menuindex", $docsortdir= "ASC", $tvfields= "*", $tvsort= "brand", $tvsortdir= "ASC");
print_r($brands);
?>
На странице выводится следующее содержание
Array
(
[24] => Array ( [brand] => brand1 )
[26] => Array ( [brand] => brand2 )
)
То есть получается я сканирую все документы в контейнере, в котором есть 2 дочерних документа(не контейнера) на TV параметр = brand, и мне выводится список:
ID страница - и параметр TV brand
В принципе, примерно то что нужно. НО!
1) Если у двух товаров один и тот же brand, то результат будет
...
[24] => Array ( [brand] => brand1 )
[26] => Array ( [brand] => brand1 )
...
Это так же есть хорошо, это может поможет реализовать следующий момент, когда я вывожу список брендов, то в скобках я бы хотел выводить общее количество товаров, с этим брендом
То есть:
Надо чтобы когда вывожу этот список, бренды не дублировались в выводе, а в скобках писалось их количество
Бренды:
- brand1 (2)
- brand2 (0)
или если запрос выведет
...
[24] => Array ( [brand] => brand1 )
[26] => Array ( [brand] => brand2 )
...
Бренды:
- brand1 (1)
- brand2 (1)
Примечание: Было бы хорошо, чтобы не выводилась строка, в которой количество брендов = 0
2) Структура каталога следующая
-Категория 1 (13)
--Под-категория 1 (14)
---Товар 1 (15)
---Товар 2 (16)
--Под-категория 2 (17)
---Товар 1 (18)
---Товар 2 (19)
Если в коде моего сниппета вызывать
<?php
$brands = $modx->getDocumentChildrenTVarOutput($parentid = 14, $tvidnames= array ('brand'), $published= 1, $docsort= "menuindex", $docsortdir= "ASC", $tvfields= "*", $tvsort= "brand", $tvsortdir= "ASC");
print_r($brands);
?>
То результатом будет 2 товара (15,16)
Если $parentid=`17`
То соответственно (18,19)
НО! Если я пишу $parentid=`13`, то есть хочу выбрать все документы, из данного контейнера, в которых есть подкаталоги, а уже в которых содержатся товары с брендами, то ничего не получается. Результат
Array ( [14] => Array ( [brand] => ) )
14 - это ID документа, дочернего к 13му, который сразу следует за документом. Ну в принципе из структуры это понятно.
Подскажите, пожалуйста
1) Как мне расширить сниппет, каким образом можно отсортировать массив нужным мне образом(описал выше)
2) Как получить значение TV параметра всех ресурсов, содержащихся в контейнере(например ID=13)
Спасибо(: