Как отсортировать ресурсы по publishedon и get?
Есть такой код where
{"publishedon:>=": "[[!timestampToUnixTime? &dt=`[[!#GET.news-year]]` &next=`0`]]", "AND:publishedon:<=": "[[!timestampToUnixTime? &dt=`[[!#GET.news-year]]` &next=`1`]]"}
Снипет timestampToUnixTime такой<?php
if(!$dt){
$dt = date('Y-m-d');
} else {
$dt = "$dt-1-1";
$dt = date($dt);
}
if($next == '1'){
$dt = new DateTime($dt);
$dt->add(new DateInterval('P1Y'));
$dt = $dt->format('Y');
}
return strtotime($dt);
Комментарии: 5
Снипет рабочий выдаёт год из гета и след год в Unix, но всё равно pdo не сортирует, если убрать эту сортировку то все ресурсы выводятся, как исправить?
Надо showLog сделать, но я бы кавычки убрал, вот так
{"publishedon:>=": [[!timestampToUnixTime? &dt=`[[!#GET.news-year]]` &next=`0`]], "AND:publishedon:<=": [[!timestampToUnixTime? &dt=`[[!#GET.news-year]]` &next=`1`]]}
Лог такой
0.0002599: pdoTools loaded
0.0000460: xPDO query object created
0.0010431: Included list of tvs: img
0.0003240: leftJoined modTemplateVarResource as TVimg
0.0006390: Added selection of modResource: SQL_CALC_FOUND_ROWS `id`, `type`, `contentType`, `pagetitle`, `longtitle`, `description`, `alias`, `alias_visible`, `link_attributes`, `published`, `pub_date`, `unpub_date`, `parent`, `isfolder`, `introtext`, `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.0000269: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `tv.img`
0.0000231: Replaced TV conditions
0.0017660: Processed additional conditions
0.0027940: Added where condition: 0=, modResource.parent:IN(8,9,20), modResource.template:IN(7), modResource.published=1, modResource.deleted=0
0.0000138: Replaced TV conditions
0.0002139: Sorted by modResource.parent, ASC
0.0002470: Sorted by modResource.menuindex, ASC
0.0000048: Limited to 8, offset 0
0.0006542: 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(`TVimg`.`value`, '') AS `tv.img` FROM `modx_site_content` AS `modResource` LEFT JOIN `modx_site_tmplvar_contentvalues` `TVimg` ON `TVimg`.`contentid` = `modResource`.`id` AND `TVimg`.`tmplvarid` = 23 WHERE ( `modResource`.`parent` IN (8,9,20) AND `modResource`.`template` IN (7) AND `modResource`.`published` = 1 AND `modResource`.`deleted` = 0 ) ORDER BY modResource.parent ASC, modResource.menuindex ASC LIMIT 8 "
0.0011570: SQL executed
0.0003688: Total rows: 2
0.0000539: Rows fetched
0.0066609: Prepared and processed TVs
0.0017228: Loaded "modChunk" with name "newsTpl"
0.0034592: Compiled Fenom chunk with name "modchunk/30"
0.0171959: Returning processed chunks
0.0317860: Total time
8 912 896: Memory usage
0.0107419: pdoTools loaded
0.0004611: Created inline "modChunk" with name "f7da63f2d337d08ca9dcacc531069c1e"
0.0072119: Loaded "modSnippet" with name "pdoResources"
0.0416641: Created inline "modChunk" with name "e6747421ac951eec87076a3f44c6a184"
0.0601921: Total time
8 912 896: Memory usage
Странно почему то и обычная сортировка по тв не работает код простейший
'where' => '{"news-type:=": "[[!#GET.sort-type]]"}',
Тэвэха news-type теговая и значения приходят туда правильные
Снипет сделал таким
Как сделал через плагин и pdopage и без перезагрузке вот ссылка на пасте бин там код pastebin.com/AuA5Rrt6
<?php
if(!$dt){
$dt = date('Y', strtotime(date('Y-m-d')));
$dt = "$dt-1-1";
} else {
$dt = "$dt-1-1";
}
if($next == '1'){
$dt = date("Y-m-d",strtotime ( '+1 year' , strtotime ( $dt ) )) ;
}
return strtotime($dt);
Вызов такой как писал выше Артур{"publishedon:>=": [[!timestampToUnixTime? &dt=`[[!#GET.news-year]]` &next=`0`]], "AND:publishedon:<=": [[!timestampToUnixTime? &dt=`[[!#GET.news-year]]` &next=`1`]]}
В целом засунул это в плагин и по хэшу сортирую без перезагрузке страницы через pdopage.Как сделал через плагин и pdopage и без перезагрузке вот ссылка на пасте бин там код pastebin.com/AuA5Rrt6
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.