[Решено] Как в pdoPage скрыть прошедшие события?

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

Дано:
1. Документы\Мероприятия, у которых есть TV-поле educ_datestart — дата начала события.
2. «Тип вывода» TV-поля — Дата. «Формат даты» — %s
(в документации modx я этого варианта не нашел, но он работает и выводит дату в Unix-формате.)
3. Есть сниппет current_date на вывод текущей даты:
if(!isset($ts)) { $ts=time(); } return $ts;
Он выводится также в Unix-формате.


Задача:
При выводе через PdoPage требуется отсеять все прошедшие мероприятия, т.е. где
educ_datestart < current_date
Последняя попытка была сделать это через where:
&where=`{"educ_datestart:>=":"[[!current_date]]"}`
Само собой поле подключено:
&includeTVs=`educ_datestart`
&processTVs=`educ_datestart`
&prepareTVs=`educ_datestart`

И сама проблема:
Сортировка не работает, т.е. при указанной выше записи система выводит все события, даже те, что уже прошли.
Если я меняю знак неравенства на <=, то не выводит ничего.

Логи показывают:
0.0000870: Replaced TV conditions
0.0005779: Processed additional conditions
0.0009310: Added where condition: `TVeduc_datestart`.`value`:>==1566408006, modResource.parent:IN(61,75,76,77,78,79,80,81,82,83,84,85,87,89,91), modResource.published=1, modResource.deleted=0
0.0000060: Replaced TV conditions

SQL prepared "SELECT SQL_CALC_FOUND_ROWS `modResource`.`id`, `modResource`.`type`, `modResource`.`contentType`, `modResource`.`pagetitle`, `modResource`.`longtitle`, `modResource`.`description`, `modResource`.`alias`, `modResource`.`alias_visible`, `modResource`.`link_attributes`, `modResource`.`published`, `modResource`.`pub_date`, `modResource`.`unpub_date`, `modResource`.`parent`, `modResource`.`isfolder`, `modResource`.`introtext`, `modResource`.`richtext`, `modResource`.`template`, `modResource`.`menuindex`, `modResource`.`searchable`, `modResource`.`cacheable`, `modResource`.`createdby`, `modResource`.`createdon`, `modResource`.`editedby`, `modResource`.`editedon`, `modResource`.`deleted`, `modResource`.`deletedon`, `modResource`.`deletedby`, `modResource`.`publishedon`, `modResource`.`publishedby`, `modResource`.`menutitle`, `modResource`.`donthit`, `modResource`.`privateweb`, `modResource`.`privatemgr`, `modResource`.`content_dispo`, `modResource`.`hidemenu`, `modResource`.`class_key`, `modResource`.`context_key`, `modResource`.`content_type`, `modResource`.`uri`, `modResource`.`uri_override`, `modResource`.`hide_children_in_tree`, `modResource`.`show_in_tree`, `modResource`.`properties`, IFNULL(`TVeduc_datestart`.`value`, '') AS `tv.educ_datestart`, IFNULL(`TVeduc_who`.`value`, '\"\"\n
Ведущий
\n

') AS `tv.educ_who`, IFNULL(`TVeduc_datemeet`.`value`, '') AS `tv.educ_datemeet`, IFNULL(`TVeduc_aktime`.`value`, '') AS `tv.educ_aktime`, IFNULL(`TVeduc_cost`.`value`, '') AS `tv.educ_cost`, IFNULL(`TVeduc_calendar`.`value`, '') AS `tv.educ_calendar`, IFNULL(`TVeduc_notice`.`value`, '') AS `tv.educ_notice`, IFNULL(`TVeduc_status`.`value`, '') AS `tv.educ_status` FROM `cted_site_content` AS `modResource` LEFT JOIN `cted_site_tmplvar_contentvalues` `TVeduc_datestart` ON `TVeduc_datestart`.`contentid` = `modResource`.`id` AND `TVeduc_datestart`.`tmplvarid` = 14 LEFT JOIN `cted_site_tmplvar_contentvalues` `TVeduc_who` ON `TVeduc_who`.`contentid` = `modResource`.`id` AND `TVeduc_who`.`tmplvarid` = 15 LEFT JOIN `cted_site_tmplvar_contentvalues` `TVeduc_datemeet` ON `TVeduc_datemeet`.`contentid` = `modResource`.`id` AND `TVeduc_datemeet`.`tmplvarid` = 17 LEFT JOIN `cted_site_tmplvar_contentvalues` `TVeduc_aktime` ON `TVeduc_aktime`.`contentid` = `modResource`.`id` AND `TVeduc_aktime`.`tmplvarid` = 18 LEFT JOIN `cted_site_tmplvar_contentvalues` `TVeduc_cost` ON `TVeduc_cost`.`contentid` = `modResource`.`id` AND `TVeduc_cost`.`tmplvarid` = 19 LEFT JOIN `cted_site_tmplvar_contentvalues` `TVeduc_calendar` ON `TVeduc_calendar`.`contentid` = `modResource`.`id` AND `TVeduc_calendar`.`tmplvarid` = 20 LEFT JOIN `cted_site_tmplvar_contentvalues` `TVeduc_notice` ON `TVeduc_notice`.`contentid` = `modResource`.`id` AND `TVeduc_notice`.`tmplvarid` = 21 LEFT JOIN `cted_site_tmplvar_contentvalues` `TVeduc_status` ON `TVeduc_status`.`contentid` = `modResource`.`id` AND `TVeduc_status`.`tmplvarid` = 22 WHERE  ( `TVeduc_datestart`.`value` >= '1566415616' AND `modResource`.`parent` IN (64,86,88,90,92,93,94,95,97) AND `modResource`.`published` = 1 AND `modResource`.`deleted` = 0 )  ORDER BY CAST(`TVeduc_datestart`.`value` AS DATETIME) ASC LIMIT 12 "
0.0056250: SQL executed
0.0001819: Total rows: 8

Что я упускаю? Почему неравенство не срабатывает?

Если я вывожу значение TV-поля и сниппета на экран, для каждого элемента, то они отображаются верно, в UNIX-формате и с правильным значением.

Проблема решена:
Проблема решена, благодаря вот этому посту — forums.modx.com/thread/92071/pdoresources-and-tvfilters#dis-post-513666
Получается, что мой TV на этапе вывода все-таки не был в unix формате, хотя уже на выходе был в нем
Валерий
21 августа 2019, 20:29
modx.pro
662
0

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

Александр Мельник
21 августа 2019, 21:16
0
добавить
tvPrefix=>''
не забыли?
Кстати расскажите, а что это в MODX за документы/ мероприятия такие?
    Валерий
    21 августа 2019, 21:41
    0
    tvPrefix, как я понимаю, тут не при чем. Он в параметре where не используется.

    А про "документы\мероприятия" — это я так про ресурсы написал. Сайт с анонсами мероприятий.
    Валерий
    21 августа 2019, 22:48
    0
    Проблема решена, благодаря вот этому посту — forums.modx.com/thread/92071/pdoresources-and-tvfilters#dis-post-513666
    Получается, что мой TV на этапе вывода все-таки не был в unix формате, хотя уже на выходе был в нем.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      3