Не тяжелый вопрос
Сеньоры, вывожу список категорий, в каждый из которых вложены другие ресурсы, некоторые сгруппированы в суб категорию(тарифные планы) + одна запись отзывы в которой с помощью тикет люди оставляют отзывы.
Получается каталог категорий, человек зашел посмотрел тарифные планы, зашел в отзывы и т.д
Вопрос, как вывести количество записей в суб категории(тирифы), и количество комментариев(отзывов). в карточке категории. До этого я находил снипет который выводил количество товаров из любой нужной категории, id которой просто подставлял в ТВ, но снипет работает только с минишоп и товарами.
Фото примера, что должно получиться в итоге.
Получается каталог категорий, человек зашел посмотрел тарифные планы, зашел в отзывы и т.д
Вопрос, как вывести количество записей в суб категории(тирифы), и количество комментариев(отзывов). в карточке категории. До этого я находил снипет который выводил количество товаров из любой нужной категории, id которой просто подставлял в ТВ, но снипет работает только с минишоп и товарами.
Фото примера, что должно получиться в итоге.
Комментарии: 9
Если вы выводите структуру при помощи pdoMenu, то в вашем распоряжении есть параметры шаблонов, которые позволяют кастомизировать меню на нужном уровне — например &tplCategoryFolder.
Количество комментариев в нужном разделе:
Количество записей:
— пишем сниппет, например CatalogItemsCount:
— вызываем в нужном месте
Количество комментариев в нужном разделе:
[[!TicketCommentsCount:default=`0`? &id=`[[+id]]`]]
Количество записей:
— пишем сниппет, например CatalogItemsCount:
<?php
if (empty($parent)) {
return;
}
$pids = array_merge(array($parent), $modx->getChildIds($parent));
$ids = array();
$q = $modx->newQuery('modResource');
$q->where(array('parent:IN' => $pids,'published' => 1,'deleted' => 0));
//здесь можно переписать на простое получение count-запроса, но оставил так на случай, если потребуется использовать где-то список id потомков
$q->select('`modResource`.`id`');
if ($q->prepare() && $q->stmt->execute()) {
$ids = $q->stmt->fetchAll(PDO::FETCH_COLUMN);
return count($ids);
}
else {
return '0';
}
— вызываем в нужном месте
[[!CatalogItemsCount? &parent=`[[+id]]`]]
Маским спасибо за Ваш ответ. Вы весьма активно помогаете с ответами, за это Вам отдельное спасибо. Количество комментариев сделаю по Вашему примеру. Просьба подсказать как вывести количество записей из суб категории(на картинке 36 тарифов), структуру каталога я привел для примера как расположены блоки у меня в админке, тоисть я не буду на сайте выводить через pdoMenu. Мне просто нужно вывести сколько записей находится в категории тарифа. Спасибо
Если количество записей непосредственно в суб-категории (а не все потомки для суб-категории в принципе), то в вышеописанном сниппете нужно убрать строчку получения всех потомков для потомков:
и заменить условие:
— таким образом вы получите непосредственно всех потомков 1-го уровня для нужной категории. Сниппет вызывать также.
Если же вы спрашивали по поводу того, какой в каком шаблоне нужно вызвать данный сниппет, то ~так:
$pids = array_merge(array($parent), $modx->getChildIds($parent));
и заменить условие:
'parent:IN' => $pids
на:'parent' => $parent
— таким образом вы получите непосредственно всех потомков 1-го уровня для нужной категории. Сниппет вызывать также.
Если же вы спрашивали по поводу того, какой в каком шаблоне нужно вызвать данный сниппет, то ~так:
&displayStart=`1`
&tplStart // это шаблон для раздела (1 уровень)
&tplParentRow // это шаблон подразделов тут вставляем нужные сниппеты.
//также можно использовать &tplCategoryFolder, если у потомков нет своих потомков
&tpl //шаблон внутренних пунктов
спасибо
P.S. Если не секрет, по какому принципу вы генерируете названия для своих вопросов?)
В народе это называют седьмое чувство, я называю жопа чует не тяжелый вопрос )
Название вопроса должно включать в себя краткое описание сути. «Помогите», «Простой вопрос» и прочие совершенно не передают сути. В некоторых сообществах/форумах за такое даже наказывают.
Михаил, не будьте букой :)
Я букой не являюсь, но уважайте сообщество, в которое обращаетесь за помощью :)
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.