instantsoft / icms2

Self-hosted Site Management System
https://instantcms.ru
GNU General Public License v2.0
296 stars 120 forks source link

Скрывать пустые категории в списках контента #1346

Open alex13281 opened 3 years ago

alex13281 commented 3 years ago

Используемая версия InstantCMS: 2

Здравствуйте. Сейчас в списках показываются все категории-подкатегории, несмотря на то, есть ли в них записи или нет.

https://demo.instantcms.ru/articles https://demo.instantcms.ru/articles/astronomija

Снимок

Пользователь видит категорию, переходит в неё и получает сообщение о том, что статей нет. В таком случае, было бы логично вообще не показывать эту категорию. Задачи могут быть разные. Наверное, лучше бы опционально иметь возможность показывать или нет категории без записей.

Снимок2

fuzegit commented 3 years ago

Удалить пустые категории видимо :)

evgip commented 3 years ago

В таком случае, было бы логично вообще не показывать эту категорию.

ИМХО, более логично вообще не создавать категории, в которых нет контента. Категория создается, когда содержание её достаточно и оно очень четко представляет тему категории. В этом ключе даже настройка (скрыть категорию без записей), ИМХО, избыточна. А демо, это демо сайт просто.

fuzegit commented 3 years ago

ИМХО, более логично вообще не создавать категории, в которых нет контента. Категория создается, когда содержание её достаточно и оно очень четко представляет тему категории. В этом ключе даже настройка (скрыть категорию без записей), ИМХО, избыточна. А демо, это демо сайт просто.

Конечно. Более того, можно в настройках нужной категории поставить чекбокс "Скрытая категория".

alex13281 commented 3 years ago

Можно конечно удалять или не создавать категории вовсе. Но может есть записи в черновиках, которые в этой категории? Или пользовательский контент. Пользователям нужно дать возможность видеть все категории (которые мы создали заранее), в то время как в этих категориях пока что не будет записей.

zau4man commented 3 years ago

Но может есть записи в черновиках, которые в этой категории? Тогда, чтобы реализовать вашу идею, при получении списка категорий, нужно у каждой проверить, есть ли в ней записи, так еще и с учетом черновиков. А еще есть записи, которые показываются только друзьям. Большая нагрузка будет...

Если отбросить черновики и записи для друзей, то для своего проекта задачу можно решить небольшим компонентом, который будет следить за категориями, и если добавлена запись, то снимать чекбокс "пустоты" категории. И по этому чекбоксу скрывать категории при выводе в шаблон.

web-studio-pro commented 3 years ago

Да, актуально если создаёшь к примеру доску объявлений, и в некоторых категориях объявления то есть то нет, пользователи же не будут категории вкл/выкл.

YuryK9 commented 2 years ago

да, очень актуально, в настройку категорий типов контента добавить опцию "скрывать категорию, если в ней нет записей". При этом, при добавлении записи давать пользователю в нее добавить запись.

YuryK9 commented 2 years ago

Но может есть записи в черновиках, которые в этой категории? Тогда, чтобы реализовать вашу идею, при получении списка категорий, нужно у каждой проверить, есть ли в ней записи, так еще и с учетом черновиков. А еще есть записи, которые показываются только друзьям. Большая нагрузка будет...

Если отбросить черновики и записи для друзей, то для своего проекта задачу можно решить небольшим компонентом, который будет следить за категориями, и если добавлена запись, то снимать чекбокс "пустоты" категории. И по этому чекбоксу скрывать категории при выводе в шаблон.

Верно. Но можно на системном уровне через опцию, как я описал выше.

zau4man commented 2 years ago

Верно. Но можно на системном уровне через опцию, как я описал выше

На "системном" уровне не будет такой опции по причине озвученной выше:

Но может есть записи в черновиках, которые в этой категории? Или пользовательский контент. Пользователям нужно дать возможность видеть все категории (которые мы создали заранее), в то время как в этих категориях пока что не будет записей.

И такая проверка будет очень трудоемкой. Поэтому только сторонние решения, с некоторыми допущениями, типа считать категорию непустой, даже если в ней есть скрытый черновик. И т.п.

zau4man commented 2 years ago

Возможно кому-то подойдет такое решение https://instantcms.ru/blogs/skryvaem-pustye-kategorii.html