Люди любят цифры. Почему бы в названии категории не добавить кол-во записей в этой категории.
Может есть универсальное решение?
Когда-то было под ну очень раннюю двойку.
Универсального решения не знаю, но можно сделать как то так (Наверно можно )Может есть универсальное решение?
В templates\modern\controllers\content\category_view.tpl.php после строки 102
<?php foreach($subcats as $c){ ?>
<?php $c_count = cmsCore::getModel('content')->filterEqual('is_deleted', null)->filterEqual('is_approved', '1')->filterEqual('is_private', '0')->filterEqual('is_pub', '1')->filterEqual('category_id', $c['id'])->getCount('con_'.$ctype['name'].'');?>
<?php echo $c_count; ?>
Универсального решения не знаю, но можно сделать как то так (Наверно можно )Может есть универсальное решение?
В templates\modern\controllers\content\category_view.tpl.php после строки 102вставить вот это
<?php foreach($subcats as $c){ ?>
Ну и показать цифры
<?php $c_count = cmsCore::getModel('content')->filterEqual('is_deleted', null)->filterEqual('is_approved', '1')->filterEqual('is_private', '0')->filterEqual('is_pub', '1')->filterEqual('category_id', $c['id'])->getCount('con_'.$ctype['name'].'');?>Если написал глупость, знающие поправьте...
<?php echo $c_count; ?>
все работает, но только при одном условии, что у вас нет подкатегорий. Может кто подскажет, как считать общее кол-во вместе с подкатегориями?
все работает
использовали код из темы?)
использовали код из темы?)
другого нет, к сожалению некоторые элементарные вещи отсутствуют в цмс, иногда вызывает недоумение, мелочевкой никто заниматься не хочет, в числе и вы, какое решение? Никакого
пс: с чего бы ему тормозить, если этот эти рубрики загружаются на первой странице категрий и больше негде(в моем случае), вместо ерничества лучше отвечать по теме, а не кто что сделал не так
с чего бы ему тормозить
Данный пример плохой, потому что внутри цикла создается объект модели и выполняется запрос. Например если у вас 40 категории, создается 40 объектов модели и запрос к БД. В какой то момент ваш сайт начнет тормозить.
По поводу счётчика: Надо реализовать с помощью хука и с соединением join. Я как то пытался, но чуть мозг не сломал, потому что слишком много связок у записи с таблицами. Для своего компонента Вопросы реализовал, так как там одна таблица _cats, а у типов контента есть еще _cats_bind.
Думаю с этой задачей справиться кто то с ником Fuze или Loadырь 😉
некоторые элементарные вещи отсутствуют в цмс
они не элементарные. Есть права доступа к записям. Для вас может быть 4 записи в категории, а админ увидит все 15, в том числе не опубликованные.
Нет универсального количества записей. Только с какими-то допущениями. И такого решения не может быть «в коробке».
Себе для магазина делал подсчет по крон demo2.bergorod.ru/shop
Считаются только опубликованные товары. Считаются раз в сутки. Чаще магазину и не надо.
Себе для магазина делал подсчет по крон demo2.bergorod.ru/shop
А что за шаблон? такой разве есть в дополнениях?
Capitan,
с чего бы ему тормозить
Данный пример плохой, потому что внутри цикла создается объект модели и выполняется запрос. Например если у вас 40 категории, создается 40 объектов модели и запрос к БД. В какой то момент ваш сайт начнет тормозить.
По поводу счётчика: Надо реализовать с помощью хука и с соединением join. Я как то пытался, но чуть мозг не сломал, потому что слишком много связок у записи с таблицами. Для своего компонента Вопросы реализовал, так как там одна таблица _cats, а у типов контента есть еще _cats_bind.
Думаю с этой задачей справиться кто то с ником Fuze или Loadырь 😉
у вас в Магазине есть виджет Рубрикатор, там считает кол-во записей, каким образом реализовано? И еще есть виджет Рубрикатор, там так же считает
kalikimaka, там так же внутри цикла выполняется запрос, но объект модели не создается каждый раз, всё ровно считаю это неправильное решение
всё ровно считаю это неправильное решение
Решение было сделано на коленке за 5 минут. Для иллюстрации метода добычи количества материалов в категориях.
Скорее всего, можно сделать хук content_before_category в котором сформировать переменную в массиве $category, в которую поместить массив с количеством контента в каждой категории.
некоторые элементарные вещи отсутствуют в цмс
они не элементарные. Есть права доступа к записям. Для вас может быть 4 записи в категории, а админ увидит все 15, в том числе не опубликованные.
Нет универсального количества записей. Только с какими-то допущениями. И такого решения не может быть «в коробке».
Себе для магазина делал подсчет по крон demo2.bergorod.ru/shop
Считаются только опубликованные товары. Считаются раз в сутки. Чаще магазину и не надо.
я так думаю, точная цифра не актуальна:) а актуально, то чтобы именно считались все записи в категориях и подкатегориях, а не только в основных категориях. И да, по крону вполне достаточно, раз в сутки.
Ради спортивного интереса поставил галочку у одного типа контента
Результат получился вполне жизнеспособный prefitchi.ru/hotels. Считает с учетом подкатегорий, но только публичные записи (те, которые гости могут посмотреть). При 1.1К категорий и 173К записей запрос отработал всего за 0,8 секунды, и это без кэшей, хранилища в БД и т.п. и с виджетом карты с объектами из данного типа контента.
А сколько бы заняла загрузка количества в цикле для каждой категории, мне даже не хочется узнавать.
А сколько бы заняла загрузка количества в цикле для каждой категории, мне даже не хочется узнавать.
Может поле в базе сделать «content_quantity» ?