Написать простенький PHP скрипт для cron'a

7 1
Есть несколько разделов с тикетами на сайте, в которых опубликовано много текстов. У некоторых из них есть признак «Для обсуждения» (тв-поле).
Эти тикеты — произведения писателей. Хочется поднять их активность и привлечь к обсуждению произведений других авторов. Для этого хочу выводить одно из произведений в нескольких местах на сайте с призывом оставлять комментарии. Те писатели, которые получают больший рейтинг за свой комментарий будут участвовать в следующем выборе произведения для голосования. Хочется избежать повторов обсуждения одного и того же произведения, а так же дать стимул для обсуждения. Поэтому возникло такое ТЗ.

ТЗ:

В определенное время (24:00) выбранных дней недели (указывается в системных настройках) среди тикетов в указанных разделах (указывается в системных настройках) выбирать тикет у которого есть признак «Для обсуждения» (тв-поле „чекбокс“), а так же есть дата в поле «Дата обсуждения» (тв-поле тип „Дата“) и нет признака «Обсуждение завершено» (тв-поле „чекбокс“). Для выбранного тикета проставлять признак «Обсуждение завершено».

Теперь, при выборе следующего тикета, нам нужно избежать ситуации, когда самый активный автор участвует несколько раз подряд. Поэтому мы смотрим на предыдущие три авторских разбора (тикеты с признаками „Для обсуждения», проставленной датой в поле «Дата обсуждения» и проставленным значением в поле «Обсуждение завершено»). Если в комментариях или при случайном выборе есть кто-либо из авторов этих 3-х тикетов — мы их убираем из выборки.

Далее — смотрим в комментарии к этому тикету. Если комментарии есть: выбирать автора комментария с наибольшим рейтингом за комментарий и среди тикетов этого автора выбрать следующий тикет для обсуждения (есть признак «Для обсуждения», нет «Даты обсуждения»). В него проставлять «Дату обсуждения» текущим днем. Если у автора все произведения с пометкой «Для обсуждения» имеют «Дату обсуждения» и признак «Обсуждение завершено», то переходим к следующему автору комментария. Если все комментарии имеют одинаковый рейтинг или у них нет рейтинга, то выбирать между авторами в случайном порядке.

Если комментариев нет: у текущего тикета удалять дату из поля «Дата обсуждения», поле «Обсуждение завершено» оставить пустым (так как у этого тикета не было комментариев и разбора как такового, то не хочется выкидывать этот тикет из дальнейших выборок) и выбирать новый тикет из всех указанных разделов тикетов в случайном порядке где есть признак «Для обсуждения» и нет «Даты обсуждения».
Wassi Wassinen
19 декабря 2019, 01:18
modx.pro
598
0

Комментарии в этом разделе отключены, так что вы должны указать свои контакты прямо в объявлении, или активировать отправку сообщений из профиля.

Обратите внимание, что modx.pro не несёт никакой ответственности за выполнение работы или оплату заказа. Это просто доска объявлений, дальше вы общаетесь за пределами нашей площадки.