Как в Fenom сделать выборку ресурсов без сниппета?
Друзья! Подскажите пожалуйста, что делаю не так.
Хочу сделать выборку последних добавленных ресурсов — товаров.
Есть дерево ресурсов — товаров minishop2
-Главная (1)
-Каталог (3)
---Категория товаров (4)
-------Товар()
…
…
---Категория товаров (5)
-------Товар()
…
…
На главной вызываю так, снипет все же использую
Еще пробовал так, без снипета
И ничего не выбирает в обоих случаях, Fenom включен по полной и везде работает, но вот тут конструкция не получается, что не так я делаю? Как написать правильно?
Ключевое, не хочу использовать чанки.
Хочу сделать выборку последних добавленных ресурсов — товаров.
Есть дерево ресурсов — товаров minishop2
-Главная (1)
-Каталог (3)
---Категория товаров (4)
-------Товар()
…
…
---Категория товаров (5)
-------Товар()
…
…
На главной вызываю так, снипет все же использую
{set $newproducts = $_modx->runSnippet('!msProducts', [
'parents' => 3,
'includeThumbs' => 'small,mobilesmall',
'showHidden' => 0,
'showUnpublished' => 0,
'limit' => 4,
'where' => [
'class_key:=' => 'msProduct',
]
])}
{foreach $newproducts as $item}
{$item['menutitle']}
{/foreach}
Еще пробовал так, без снипета
{var $newproduct = $_modx->getResources(
[
'parents' => 3,
'published' => 1,
'deleted' => 0,
'showHidden' => 0,
'showUnpublished' => 0,
'sortby' => 'menuindex',
'select' => 'id,menutitle'
])
}
{foreach $newproduct as $item}
{$item.menutitle}
{/foreach}
И ничего не выбирает в обоих случаях, Fenom включен по полной и везде работает, но вот тут конструкция не получается, что не так я делаю? Как написать правильно?
Ключевое, не хочу использовать чанки.
Комментарии: 19
Если последние добавленные, то нужно наверно какое то время определить, когда товар считать новым и сравнивать с текущей датой
Да по дате публикации просто. Я не указал этот параметр в вызове, но суть не в нем, просто совсем не распечатывает ничего ни один ни другой вызов.
логи включайте и смотрите какой запрос получился
В логах все есть, все товары и ресурсы, и если массив распечатать все там есть. Но что то не так в синтаксисе foreach
Прикольно ты в условие where засовываешь параметры сниппета и ждешь, что что-то получится ))
Вот в том то и дело, запутался )) поэтому сюда и написал.
{set $items = '!msProducts' | snippet : [
'parents' => 3,
'includeThumbs' => 'small,mobilesmall',
'showHidden' => 0,
'showUnpublished' => 0,
'limit' => 4
......
]}
{foreach $items as $item}
{$item.pagetitle}
{/foreach}
Так же как и я делал, так не работает, foreach почему то не работает, не понимаю почему. Если распечатать
{$items | print_r}В массиве все есть как он и сам. Такое ощущение что для forech нужен другой массив, сниппет не возвращает массив в $items {set $items = '!msProducts' | snippet
После работы сниппета переменная $items является строкой, а не массивом. Поэтому foreach и не работает. Сейчас напишу решение
Не понимаю что не так
Print массив распетаывает как надо
Но foreach не работает :(
{set $newproduct = $_modx->runSnippet('!msProducts', [
'parents' => 3,
'includeThumbs' => 'small,mobilesmall',
'showHidden' => 0,
'showUnpublished' => 0,
'limit' => 14,
'tpl' => ''
])}
{foreach $newproduct as $item}
{$item['pagetitle']}+{$item.pagetitle}
{/foreach}
<pre>
{$newproduct | print_r}
</pre>
Print массив распетаывает как надо
Array
(
[id] => 10
[type] => document
[contentType] => text/html
[pagetitle] => Товар 1
[longtitle] => Товар 1
.....
)
Array
(
[id] => 12
[type] => document
[contentType] => text/html
[pagetitle] => Товар 2
[longtitle] => Товар 1
.....
)
Array
(
[id] => 13
[type] => document
[contentType] => text/html
[pagetitle] => Товар 3
[longtitle] => Товар 1
.....
)
Но foreach не работает :(
foreach работает с массивами. А переменная $newproduct является строкой.
А в чем проблема использования чанков?
А в чем проблема использования чанков?
каждый вызов чанка на странице это минус к скорости как мне сказали. А как сделать массивом строку на fenom?
Можешь вытащить любое значение через:
'tpl' => '@CODE {$pagetitle}'
Получишь список заголовков например
эх, у меня большой кусок HTML что бы так использовать :(
Напиши в вк, чтобы тут не флудить
та нет у меня вк давно :))
Почта в профиле есть, можешь туда написать
В общем понял в чем дело, работает с pdoResources, не работает просто с msProducts почему то, наверное остановлюсь на pdoResources, задолбался уже. Добавлю where classkey msproducts
В итоге foreach не работает с msProducts, но работает с pdoResources. Без чанка пока вывожу так:
{set $products = '!pdoResources' | snippet : [
'return' => 'json',
....
] | json_decode : true}
{foreach $products as $product}
...
{/foreach}
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.