Вывод рандомного виджета через определённое количество постов

InstantCMS 2.X
#1 25 марта 2021 в 23:42
Всем привет.
Друзья, есть тип контента, есть страница с выводом постов из данного типа контента с автоподгрузкой постов и хочется сделать так, чтоб через каждые N постов выводился виджетик с нужной информацией, точнее разные виджетики с разным набором инфы. Например 10 виджетов, которые выводятся в рандомном режиме через каждые эн постов.
Кто-либо делал и может подсказать куда копать? В том числе на платной основе.
Спасибо.
#2 26 марта 2021 в 08:18
Есть хуки content_before_list — для всех типов контента или content_ваштипконтента_before_list — конкретно для вашего.
В них можно получить данные по виджетам, циклом перебрать весь список записей для страницы и через определенное количество записей вставить "подобие" записи с нужным вам содержимым. Под подобием я имею в виду, что есть некоторые жестко прописанные поля для вывода записи в шаблоне и их надо заполнить, либо внести некоторые правки в сами файлы шаблона templates/shablon/content/ваштипконтента_list.tpl.php.
Что касается самих виджетов, то тут есть некоторые нюансы.
У вас эти виджеты в одной позиции или разбросаны по шаблону?
#4 26 марта 2021 в 14:53


Есть хуки content_before_list — для всех типов контента или content_ваштипконтента_before_list — конкретно для вашего.
В них можно получить данные по виджетам, циклом перебрать весь список записей для страницы и через определенное количество записей вставить "подобие" записи с нужным вам содержимым. Под подобием я имею в виду, что есть некоторые жестко прописанные поля для вывода записи в шаблоне и их надо заполнить, либо внести некоторые правки в сами файлы шаблона templates/shablon/content/ваштипконтента_list.tpl.php.
Что касается самих виджетов, то тут есть некоторые нюансы.
У вас эти виджеты в одной позиции или разбросаны по шаблону?

Loadырь
Свежий ресурс, виджеты только в теории и будут в любой нужной позиции реализации ради данной хотелки. Но виджеты не просто текстовые, мне нужны системные, вывод разных записей, списков и и т.д.
Давайте я вам дам денег и вы реализуете мою хотелку :)

Как вариант instantcms.ru/addons/adsman.html

@noname
Спасибо, но тут чуток сложнее, нужны виджеты на странице записей.
#5 26 марта 2021 в 16:54
"подобие" записи с нужным содержимым, поля в списке записей — интересно, можно было бы использовать для списка пользователей и тд.
#6 27 марта 2021 в 15:03
Скажем так, вывести любой виджет можно. Накидал по быстрому тут prefitchi.ru/news
Но есть нюансы с работой некоторых. Большинство виджетов грузятся из своих контроллеров, поэтому некоторые опции этих виджетов могут быть недоступны. Местам надо прямо костылями обвешаться. Зато ни один системный файл не пострадал )))
#7 27 марта 2021 в 22:16


Скажем так, вывести любой виджет можно. Накидал по быстрому тут prefitchi.ru/news
Но есть нюансы с работой некоторых. Большинство виджетов грузятся из своих контроллеров, поэтому некоторые опции этих виджетов могут быть недоступны. Местам надо прямо костылями обвешаться. Зато ни один системный файл не пострадал )))

Loadырь
Вывод хтмл виджетиков и записей из разных типов контента возможен? например как тут вакансии, реклама и прочее "обсуждаемое".
#8 27 марта 2021 в 22:40

Вывод хтмл виджетиков и записей из разных типов контента возможен?

Василич
Вывод хтмл виджетиков и прочих возможен для всех типов контента. Проблема возникает со списками типов контента. Для универсальности надо использовать один общий хук для всех типов контента, но в этом случае есть вероятность зациклить вывод виджетов в списке контента уже в самом виджете. Если "забить" на универсальность и "застолбить" один тип контента, то всё работает хорошо, но "забить" это не есть хорошо. Поэтому надо ещё погуглить решения.
#9 30 марта 2021 в 12:05
В общем "погуглил" немного и получается вполне красивая картина.
Позиция в шаблоне любая, но одна. В нее можно натыкать разных виджетов. Виджеты учитываются по страницам виджетов. То есть виджет можно вывести для всех страниц, либо для конкретных или пользовательских.
Настройки компонента примитивные yadi.sk/d/qpRd5oX6hVzKeg
Виджеты для всех страниц выводятся здесь prefitchi.ru/articles и здесь prefitchi.ru/news
А тут помимо виджетов для всех страниц есть виджет с формой для списка этого типа контента prefitchi.ru/hotels
#10 30 марта 2021 в 12:07
Нужна ли такая фича с комментариями?
#11 31 марта 2021 в 01:24


В общем "погуглил" немного и получается вполне красивая картина.
Позиция в шаблоне любая, но одна. В нее можно натыкать разных виджетов. Виджеты учитываются по страницам виджетов. То есть виджет можно вывести для всех страниц, либо для конкретных или пользовательских.
Настройки компонента примитивные yadi.sk/d/qpRd5oX6hVzKeg
Виджеты для всех страниц выводятся здесь prefitchi.ru/articles и здесь prefitchi.ru/news
А тут помимо виджетов для всех страниц есть виджет с формой для списка этого типа контента prefitchi.ru/hotels

Loadырь
Огонь!

Нужна ли такая фича с комментариями?

Loadырь
лично мне, нет
#13 2 апреля 2021 в 23:30


лично мне, нет

Василич
И правильно, а то без правки файлов шаблона на виджет могут "Ответить" prefitchi.ru/articles/10-mifologicheskii-recipient.html#comments.
Зато в форуме всё выглядит как и должно prefitchi.ru/forum/billing-forum.html

Loadырь

с точки зрения вставки рекламных блоков да, вполне интересная штука, если без функции ответа на нее)
#14 3 апреля 2021 в 09:16

если без функции ответа на нее)

Def
Увы. Функция ответа, как и условия для нее жестко прописаны в файле шаблона github.com/instantsoft/icms2/blob/master/templates/modern/controllers/comments/comment.tpl.php#L126
Из стороннего компонента на нее никак не повлиять.
Поэтому для ее устранения надо править сам файл шаблона. Например перед этой строкой прописать условие, в котором проверять наличие виджета в записи комментария и прописать либо $entry['is_deleted']=true; или $is_controls=false;.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.