Общая лента для типов контента 2.X

 
Посетитель
small user social cms
Медаль
Сообщений: 728
Хочу сделать такой вывод контента на сайте: общая лента, в которой выводятся посты (блог), новости, объявления, статьи. Сами типы контента еще строго не определены, это не так важно. Важно что они имеют отличия, например поля немного разные. То есть в общем виде все можно было бы сделать одним типом контента и разбить по категориям (посты, новости, объявления), но как тогда реализовать разный вывод полей для разных категорий?
Если же делать канонично, для каждого вида поста - свой тип, то как это все вывести одной лентой?
Хотелось бы разных решений, а то сейчас начну делать, а потом окажется, что есть более логичный и простой способ.

Для примера вот как сделано на Яндекс.Районах:
https://yandex.ru/local/districts
По умолчанию - общая лента и всё подряд показывается. Можно переключиться на Объявления, например. В объявлениях есть свои фишки - например как и в Инстанте можно загрузить несколько фоток. Есть кнопка связи с автором. А в постах например кнопка связи не нужна, а фото я хочу ограничить до 1 штуки на пост.
Посетитель
small user social cms
МедальПочетный донор проектаАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2570
Я думал над подобным. До сих пор вынашиваю реализацию сайта в виде одной ленты с фильтром.
Я бы делал это отдельным компонентом, который по cron дергает записи из типов контента и собирает в одной таблице.

Пытаться это все сделать одним запросом к базе мне кажется нереальным и тяжелым для хостинга в перспективе.
Виджеты, поля и компоненты для instantcms 2 http://www.zau4man.ru/
Реклама
cms
Посетитель
small user social cms
Сообщений: 99
Zau4man,
Zau4man:
который по cron дергает записи из типов контента и собирает в одной таблице
Может для этого hook использовать.
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3587
Можно использовать готовый виджет https://addons.instantcms.ru/addons/wd-allcontent.html
Можно написать свой компонент, в котором сделать выборку из всех таблиц типов контента и в списке вывести только одинаковые поля для всех этих типов контента.
Можно дождаться момента, когда поля станут "категоре-зависимыми" и сделать всё в одном типе контента. Но ждать возможно придется долго.
Посетитель
small user social cms
МедальПочетный донор проектаАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2570
@geminisf:
Может для этого hook использовать
Можно. Даже наверно нужно и не один:
- мониторить добавление
- редактирование
- удаление
- снятие с публикации

и т.п.
Виджеты, поля и компоненты для instantcms 2 http://www.zau4man.ru/
Посетитель
small user social cms
Медаль
Сообщений: 229
Zau4man:

Я думал над подобным. До сих пор вынашиваю реализацию сайта в виде одной ленты с фильтром.
Я бы делал это отдельным компонентом, который по cron дергает записи из типов контента и собирает в одной таблице.

Пытаться это все сделать одним запросом к базе мне кажется нереальным и тяжелым для хостинга в перспективе.

Отличная задумка, я бы купил
Александр Витальевич
Посетитель
small user social cms
Медаль
Сообщений: 728
Loadырь:
Можно использовать готовый виджет https://addons.instantcms.ru/addons/wd-allcontent.html
Похоже, как раз то что нужно, спасибо.
Посетитель
small user social cms
Медаль
Сообщений: 728
Loadырь:
Можно написать свой компонент, в котором сделать выборку из всех таблиц типов контента и в списке вывести только одинаковые поля для всех этих типов контента.
Думаю, сложновато это, тяжеловато получится.

Loadырь:
Можно дождаться момента, когда поля станут "категоре-зависимыми" и сделать всё в одном типе контента. Но ждать возможно придется долго.
smile столько терпения не хватит.
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3587
Виктор:
В компоненте "Поиск" реализовано такое
Там нет общей ленты. В список попадают записи только из выбранного типа контента.
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.