Помогите разделить вывод мероприятий по дате

Добрый день, не получается нормально разделить мероприятия на «ближайшие» и «прошедшие» дата вводится через TV параметр, пытался сделать через снипет ImmediateEvents:
<?php
$tvid = 10; // id ТВ с датой
$date = date("Y-m-j" ." ". "H:m:s"); // Сегодня

$q = $modx->newQuery('modResource');
$q->leftJoin('modTemplateVarResource', 'TV', 'modResource.id = TV.contentid AND TV.tmplvarid = '.$tvid);
$q->select('modResource.id');
$q->where('DATE(TV.value) >= "'.$date.'"');

if ($q->prepare() && $q->stmt->execute()) {
	$ids = $q->stmt->fetchAll(PDO::FETCH_COLUMN);
	return implode(',', $ids);
}
этот код сверяет даты и выводит id мероприятий, в дальнейшем я использую:

[[pdoResources?
		&tpl=`ImmediateEvents`
		&includeTVs=`1`
		&includeContent=`1`
		&includeTVs=`EventImage, EventDate`
		&processTVs=`1`
		&resources=`[[ImmediateEvents]]`
		&limit=`4444`
		]]
Проблема в том, что если нету мероприятий с датой позже сегодняшней, выводятся сразу все мероприятия (прошлые), пробовал делать выборку через tvfilters и where, вообще ничего не вышло. Как вывести правильно? И возможно ли сделать появление сообщения, нечто вроде «Ближайших мероприятий нет»?
Ссылка на сайт для наглядности: честный-выбор.рф/meropriyatiya/
Вячеслав Варов
06 сентября 2016, 19:54
modx.pro
2
1 019
0

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

Вячеслав Варов
07 сентября 2016, 08:07
0
снипет now:
<?php
echo date("Y-m-j" ." ". "H:m:s");
это в шаблоне:
[[pdoResources?
		&parents=`8`
		&tpl=`ImmediateEvent`
		&includeTVs=`1`
		&includeContent=`1`
		&includeTVs=`EventImage, EventDate`
		&processTVs=`1`
		&tvFilters=`EventDate>>[[!now]]`
		&limit=`4444`
		]]
не выводится вообще ничего:(

Log:

0.0002301: pdoTools loaded
0.0000410: xPDO query object created
0.0000560: Added TVs filters
0.0004961: Included list of tvs: EventDate, EventImage
0.0004060: leftJoined modTemplateVarResource as TVeventdate
0.0003622: leftJoined modTemplateVarResource as TVeventimage
0.0007551: Added selection of modResource: SQL_CALC_FOUND_ROWS `id`, `type`, `contentType`, `pagetitle`, `longtitle`, `description`, `alias`, `link_attributes`, `published`, `pub_date`, `unpub_date`, `parent`, `isfolder`, `introtext`, `content`, `richtext`, `template`, `menuindex`, `searchable`, `cacheable`, `createdby`, `createdon`, `editedby`, `editedon`, `deleted`, `deletedon`, `deletedby`, `publishedon`, `publishedby`, `menutitle`, `donthit`, `privateweb`, `privatemgr`, `content_dispo`, `hidemenu`, `class_key`, `context_key`, `content_type`, `uri`, `uri_override`, `hide_children_in_tree`, `show_in_tree`, `properties`
0.0000181: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `tv.EventDate`
0.0000150: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `tv.EventImage`
0.0000730: Replaced TV conditions
0.0006220: Processed additional conditions
0.0011730: Added where condition: 0=`TVeventdate`.`value` > '2016-09-7 08:09:27', modResource.parent:IN(8,9,17,18,19), modResource.published=1, modResource.deleted=0
0.0000448: Replaced TV conditions
0.0001941: Sorted by modResource.publishedon, DESC
0.0000060: Limited to 4444, offset 0
0.0003991: SQL prepared "SELECT SQL_CALC_FOUND_ROWS `modResource`.`id`, `modResource`.`type`, `modResource`.`contentType`, `modResource`.`pagetitle`, `modResource`.`longtitle`, `modResource`.`description`, `modResource`.`alias`, `modResource`.`link_attributes`, `modResource`.`published`, `modResource`.`pub_date`, `modResource`.`unpub_date`, `modResource`.`parent`, `modResource`.`isfolder`, `modResource`.`introtext`, `modResource`.`content`, `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(`TVeventdate`.`value`, '') AS `tv.EventDate`, IFNULL(`TVeventimage`.`value`, '') AS `tv.EventImage` FROM `modx_site_content` AS `modResource` LEFT JOIN `modx_site_tmplvar_contentvalues` `TVeventdate` ON `TVeventdate`.`contentid` = `modResource`.`id` AND `TVeventdate`.`tmplvarid` = 10 LEFT JOIN `modx_site_tmplvar_contentvalues` `TVeventimage` ON `TVeventimage`.`contentid` = `modResource`.`id` AND `TVeventimage`.`tmplvarid` = 8 WHERE  ( `TVeventdate`.`value` > '2016-09-7 08:09:27' AND `modResource`.`parent` IN (8,9,17,18,19) AND `modResource`.`published` = 1 AND `modResource`.`deleted` = 0 )  ORDER BY modResource.publishedon DESC LIMIT 4444 "
0.0010450: SQL executed
0.0000930: Total rows: 0
0.0000150: Rows fetched
0.0000219: Prepared and processed TVs
0.0000010: Returning processed chunks
0.0055571: Total time
7 602 176: Memory usage
    Сергей Шлоков
    07 сентября 2016, 08:28
    1
    0
    [[!pdoResources?
    	&tpl=`ImmediateEvents`
    	&includeTVs=`1`
    	&includeContent=`1`
    	&includeTVs=`EventImage, EventDate`
    	&processTVs=`1`
    	&limit=`4444`
    	&where=`["TVEventDate.value >= NOW()"]`
    	&showLog=`1`
    ]]
    Вызывать обязательно некэшированным.
      Вячеслав Варов
      07 сентября 2016, 08:34
      0
      0.0002420: pdoTools loaded
      0.0002859: xPDO query object created
      0.0012629: Included list of tvs: EventDate, EventImage
      0.0004771: leftJoined modTemplateVarResource as TVeventdate
      0.0004280: leftJoined modTemplateVarResource as TVeventimage
      0.0006812: Added selection of modResource: SQL_CALC_FOUND_ROWS `id`, `type`, `contentType`, `pagetitle`, `longtitle`, `description`, `alias`, `link_attributes`, `published`, `pub_date`, `unpub_date`, `parent`, `isfolder`, `introtext`, `content`, `richtext`, `template`, `menuindex`, `searchable`, `cacheable`, `createdby`, `createdon`, `editedby`, `editedon`, `deleted`, `deletedon`, `deletedby`, `publishedon`, `publishedby`, `menutitle`, `donthit`, `privateweb`, `privatemgr`, `content_dispo`, `hidemenu`, `class_key`, `context_key`, `content_type`, `uri`, `uri_override`, `hide_children_in_tree`, `show_in_tree`, `properties`
      0.0000188: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `tv.EventDate`
      0.0000150: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `tv.EventImage`
      0.0000629: Replaced TV conditions
      0.0007839: Processed additional conditions
      0.0015960: Added where condition: 0=TVEventDate.value >= NOW(), modResource.parent:IN(8,9,17,18,19), modResource.published=1, modResource.deleted=0
      0.0000360: Replaced TV conditions
      0.0002081: Sorted by modResource.publishedon, DESC
      0.0000081: Limited to 4444, offset 0
      0.0010068: SQL prepared "SELECT SQL_CALC_FOUND_ROWS `modResource`.`id`, `modResource`.`type`, `modResource`.`contentType`, `modResource`.`pagetitle`, `modResource`.`longtitle`, `modResource`.`description`, `modResource`.`alias`, `modResource`.`link_attributes`, `modResource`.`published`, `modResource`.`pub_date`, `modResource`.`unpub_date`, `modResource`.`parent`, `modResource`.`isfolder`, `modResource`.`introtext`, `modResource`.`content`, `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(`TVeventdate`.`value`, '') AS `tv.EventDate`, IFNULL(`TVeventimage`.`value`, '') AS `tv.EventImage` FROM `modx_site_content` AS `modResource` LEFT JOIN `modx_site_tmplvar_contentvalues` `TVeventdate` ON `TVeventdate`.`contentid` = `modResource`.`id` AND `TVeventdate`.`tmplvarid` = 10 LEFT JOIN `modx_site_tmplvar_contentvalues` `TVeventimage` ON `TVeventimage`.`contentid` = `modResource`.`id` AND `TVeventimage`.`tmplvarid` = 8 WHERE  ( TVEventDate.value >= NOW() AND `modResource`.`parent` IN (8,9,17,18,19) AND `modResource`.`published` = 1 AND `modResource`.`deleted` = 0 )  ORDER BY modResource.publishedon DESC LIMIT 4444 "
      0.0007062: Could not process query, error #1054: Unknown column 'TVEventDate.value' in 'where clause'
      0.0071490: Total time
      6 553 600: Memory usage
        Сергей Шлоков
        07 сентября 2016, 08:45
        1
        +1
        А так
        ...
        &where=`["TVeventdate.value >= NOW()"]`
        или так
        ...
        &where=`["EventDate >= NOW()"]`
    Серый
    29 января 2018, 00:00
    0
    О, ребята! Какое спасибо вам за этот топик! Мне как раз нужно было сделать элемент, на котором выведется одна дата ближайшего события. Пощу свой вызов, который сработал (ну вдруг тут какой еще более зеленый нуб, чем я найдется)
    [[!pdoResources?
    	&parents=`2`
    	&tpl=`event_tpl`
    	&sortby=`date`
    	&limit=`1`
    	&includeTVs=`date`
    	&where=`["date >= NOW()"]`
    	&sortdir=`ASC`
    ]]
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      6