Не могу подставить параметр в where

Хочу сделать выборку товаров добавленных за последний месяц.

{var $timeago = '@FILE snippets/timeago.php' | snippet }
{'!pdoPage' | snippet : [
	'element' => 'msProducts',
	'tpl' => '@FILE chunks/tovarPreview4row.tpl',
	'parents' => 2,
	'limit' => 48,
	'where' => '{"publishedon:>=": $timeago }',
	'sortby' => '{"publishedon": "desc"}',
        'includeThumbs' => '140x140',
	'showLog' => 1
]}
Снипет timeago.php:
<?php
return strtotime('-1 month');
Не срабатывает. Просто игнорируется publishedon в where.
Что не так?
Заранее спасибо!
ViktorK
28 ноября 2023, 22:42
modx.pro
406
0

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

Артур Шевченко
28 ноября 2023, 23:28
0
Попробуй так
{var $timeago = '@FILE snippets/timeago.php' | snippet }
{'!pdoPage' | snippet : [
	'element' => 'msProducts',
	'tpl' => '@FILE chunks/tovarPreview4row.tpl',
	'parents' => 2,
	'limit' => 48,
	'where' => ["publishedon:>=" =>   $timeago] ,
	'sortby' => '{"publishedon": "desc"}',
        'includeThumbs' => '140x140',
	'showLog' => 1
]}
    ViktorK
    29 ноября 2023, 00:00
    0
    Да, так работает, спасибо!
    Но where вроде не кешируется если указан массив. Поэтому я хотел в JSON формате.
      Володя
      29 ноября 2023, 10:21
      +1
      он и не кешируется, в первом варианте вы передаете where как строку и переменная $timeago попадает туда в виде
      $timeago
      это некорректный json который отбрасывается.

      во втором варианте все отработает как и положенно так как передали массив.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    3