Tickets, Where, TV, дата, месяц, квартал, год

Здравствуйте! Делаю сайт с мероприятиями, использую Tickets и TV поле «Дата» — куда записываю дату начала события в формате «2022-02-22». Клиент попросил сделать выборку по параметру: месяц, квартал, год от сегодняшнего дня. Чтобы например нажал на кнопку «месяц» или открыл страницу с вызовом правильным, и показались все события которые идут от сегодняшнего дня на месяц вперед.

Как решить эту задачу?

Надо наверно брать сегодняшнюю дату, а потом прибавлять к ней определенное количество дней и брать этот диапазон в запросе, используя «where»?

Подскажите пожалуйста, спасибо.

UPD: Разобрался сам. Вот готовое решение:

Создаем сниппет «getToday»:

<?php
$today = date("Y-m-d");
return $today;

Создаем сниппет «EndOfMonth»:

<?php
$EndOfMonth = date("Y-m-d", strtotime("last day of this month"));
return $EndOfMonth;

И в нужном месте вызываем getTickets с параметрами:

[[!getTickets?
...
&includeTVs=`event_date_start`
&tvFilters=`event_date_start>=[[getToday]], event_date_start<=[[EndOfMonth]]`
]]

Так же можно сделать снипеты с кварталом, и годом:

$EndOfQuarter = date("Y-m-d", strtotime("+3 months"));
$EndOfYear = date("Y-m-d", strtotime("+1 year"));

Про параметр tvFilters — можно почитать тут: www.riwkus.pro/notes/web/back-end/modx/and-tvfilters,-case-records,-conditions/

Фразы для поисковика: вывод ресурсов по дате, вывод ресурсов по дате на месяц вперед, сортировка по отрезку времени, запрос в pdotools по дате в тв поле
Scorp Satex
17 февраля 2022, 21:26
modx.pro
653
0

Комментарии: 3

Максим
17 февраля 2022, 22:31
0
Думаю, если вы внимательно ознакомитесь с данным постом и поэксперементируете, то у авс все получится!
    Алексей Смирнов
    17 февраля 2022, 23:18
    0
    Да, примерно такая логика — диапазоны по датам. те самому вычислять эти интервалы и писать свой сниппет-фильтр с нужной логикой и передачей параметров в where сниппету.
      Scorp Satex
      18 февраля 2022, 16:25
      +1
      Разобрался сам, выложил cвой вариант решения.
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        3