info@enterin.ru Россия, г. Ярославль

Документация getProducts

Дата публикации: 8 марта 2018

parents - ID родительских ресурсов через запятую. По умолчанию текущий.

resources - Список ID ресурсов (товаров) через запятую. Внимание! Если нужен вывод только указанных ID, отключить вывод по родителю так: &parents=`-1`

depth - Глубина поиска родителей. По умолчанию 1.

tpl - Имя чанка шаблона для вывода ресурса.

tpl_nN - Имя чанка для каждого N (порядковый номер) элемента. Пример чанка для каждого 4-го элемента: &tpl_n4=`tpl4th`.

outputSeparator - Резделитель. По умолчанию - \n (новая строка).

outputSeparator_nN - Имя чанка для разделителя, который нужно вставить после каждого N элемента.

Пример после каждого 2-го элемента: &outputSeparator_n2=`separator2th`.

Пример2: &outputSeparator_n2=`@INLINE <br clear="all"><hr>`

outerTpl - Имя чанка шаблона обертки вывода. Доступен только плейсхолдер [[+inner]].

className - Имя класса (объекта) элементов таблицы БД. По умолчанию "modResource".

packageName - Имя пакета элементов таблицы БД. Например: shop - будет запрошен класс по адресу "/core/components/shop/model/shop/shopcontent.class.php". Рекоммендуется использовать пакет MIGXDB (http://modx.com/extras/package/migx).

migx_configName - Название конфигурации MIGX, есил используются таблицы созданные в MIGXDB. Нужно для того чтобы знать каким TV соответствуют поля для processTVs и др. По умолчанию название соответствует packageName.

where - JSON строка для условия WHERE в SQL запросе. Пример: &where=`{"template":15}` (только поля ресурсов, без TV).

sortby - Поле для сортировки (только поля ресурсов, без TV). По умолчанию "menuindex". Для сортировки вразнобой использовать &sortby=`RAND()`.

sortdir - Направление сортировки. По умолчанию "ASC".

sortbyTV - Сортировка по TV. Указать имя TV.

sortdirTV - Направление сортировки по TV (ASC|DESC). По умолчанию "ASC";

sortbyTVType - Тип значения TV (string|integer). По умолчанию "string";

orderby - JSON строка сортировки. Пример: &orderby=`{"parent":"ASC","pagetitle":"ASC"}`

orderbyResources - Сортировать по порядку, указанному в списке &resources.

tvFilters - JSON строка фильтрации по ТВ. Пример: &tvFilters=`{"country":"Китай","producer":"Sony"}` Пока поддерживается только проверка на точное соответствие "=".

includeTVs - Добавить плейсхолдеры значений TV для ресурсов (1|0). Префикс для TV: "tv.". Пример: [[ +tv.image]]. По умолчанию = 0 (отключен).

includeTVList - Список имён TV, которые нужно добавить через запятую.

processTVs - Применять параметр "Параметры ввода" для TV.

processTVList - Список TV через запятую, для которых применять processTVs.

fromParentList - список полей через запятую, которые нужно добавить товарам от родителей. Например "pagetitle,image" - в чанке сниппета будут доступны плейсхолдеры [[+ parent.pagetitle]] и [[ +parent.image]] (TV). По умолчанию выключено.

addSubItemCount - В чанке сниппета будет доступен плейсхолдер [[ +subitemcount]] - число дочерних ресурсов.

subItemCountWhere - JSON строка для условия WHERE в SQL запросе для подсчета дочерних элементов.

noResults - Текст, который будет выводиться, если по запросу ничего не найдено.

toPlaceholder - Имя плейсхолдера, в который нужно отправить результат работы сниппета. По умолчанию не используется.

totalVar - Имя плейсхолдера с общим количеством ресурсов. По умолчанию "total".

context - Контекст, из которого нужно вывести ресурсы. По умолчанию текущий.

activeParentSnippet - Сниппет для активного контейнера-ресурса - [[+activeParent_snippet]]. См. пример с меню ниже.

activeClass - Имя CSS-класса для активного ресурса. По умолчанию "active".

includeConten - Включать в выборку из БД значение поля "content" (1|0). По умолчанию выключено.

returnIDs - Возвращать только ID рессурсов (1|0). По умолчанию 0 (выключено).

useSmarty - Использовать в чанке шаблонизатор Smarty (1|0). По умолчанию 0 (выключено). Подробнее ниже.

debug - Режим отладки (1|0). В журнал ошибок будут писаться SQL запросы, полученные в сниппете. По умолчанию = 0 (отключен).

Параметры кэширования:

gp_cache - Включить кэширование (1|0). По умолчанию выключено - 0.

cacheId - Идентификатор кэша. По умолчанию "gpCache".

Необязательные параметры кэширования:

cache_key - Ключ кэша (название папки для файлов кэша). По умолчанию берется из настроек системы - cache_resource_key.

cache_handler - Обработчик кэширования. По умолчанию берется из настроек системы - cache_resource_handler (xPDOFileCache).

cache_expires - число секунд для кэширования. По умолчанию 0 (бесконечное).

================================

Пример пример сортировки по дате

&orderby=`{"publishedon":"DESC"}`

Пример фильтрации по цене - больше и меньше:

&tvFilters=`{"price:>=,<=:AND":[200,500]}`

Пример с поиском подстроки:

&tvFilters=`{"param:LIKE":"%черный%"}`

Поиск по множественным значениям:

&tvFilters=`{"param:LIKE:OR":["%черный%","%синий%","%зеленый%"]}`

--------------------

Пример для поиска по стандартным полям:

&where=`{"temlate:=:AND":"2","pagetitle:LIKE:AND":"%черный%"}`

--------------------

Плейсхолдеры в чанке "tpl":

idx - Индекс строки от нуля.

first - (1|0) - Первая строка. Если первая строка, то выведется "1", если нет - "0".

last - (1|0) - Последняя строка.

odd - (1|0) - Четная строка.

activeClass - Класс активного ресурса.

classnames - Все CSS-классы одной строкой.

active - (1|0) - активный ресурс.

activeParent - ID активного родителя.

activeParent_snippet - Вывод сниппета из параметра &activeParentSnippet.

tv.любойTV - TV параметры.

parent.полеОтРодителя - поля от роделя (в т.ч. TV).

--------------------

Пример вызова:

[[!getProducts?
&parents=`5`
&includeTVs=`1`
&includeTVList=`price,image,producer,country`
&limit=`10`
&tpl=`product`
&where=`{"template":15}`
&tvFilters=`{"country":"Китай","producer":"Sony"}`
]]

Пример использования с getPage:

[[!getPage?
&cache=`1`
&elementClass=`modSnippet`
&element=`getProducts`
&parents=`5`
&includeTVs=`1`
&includeTVList=`price,image,producer,country`
&limit=`10`
&tpl=`product`
&where=`{"template":15}`
&tvFilters=`{"country":"Китай","producer":"Sony"}`
&pageFirstTpl=` <li class="control"><a [[+classes]] href="[[+href]]">Первая</a></li> `
&pageLastTpl=` <li class="control"><a [[+classes]] href="[[+href]]">Последняя</a></li> `
]]
<br class="clear" />
<ul class="pages">
[[!+page.nav]]
</ul>

Пример вывода элементов из таблицы "modx_shop_content" (см. http://modx-shopkeeper.ru/documentation/modx-revolution/tovaryi-iz-otdelnoj-tabliczyi.html):

[[!getPage?
    &cache=`1`
    &elementClass=`modSnippet`
    &element=`getProducts`
    &className=`shopContent`
    &packageName=`shop`
    &limit=`10`
    &tpl=`product`
    &where=`{"template":15}`
    &pageFirstTpl=` <li class="control"><a [[+classes]] href="[[+href]]">Первая</a></li> `
    &pageLastTpl=` <li class="control"><a [[+classes]] href="[[+href]]">Последняя</a></li> `
]]
<br class="clear" />
<ul class="pages">
[[!+page.nav]]
</ul>

Пример вывода с кэшированием, кэшируется для всех страниц:

[[getProducts@top_products?
&gp_cache=`1`
&cacheId=`top_products`
]]

Пример вывода с кэшированием, кэшируется для всех страниц + учитывается валюта:

[[!getProducts@top_products?
&gp_cache=`1`
&cacheId=`top_products_[[!+shk_currency]]`
]]
--------------------

Пример вывода многоуровневого меню (замена Wayfinder). Подуровни выводятся только для текущей категории:

[[getProducts?
&parents=`4`
&where=`{"hidemenu":0,"template:<>":5}`
&tpl=`menuRowTpl`
&addSubItemCount=`1`
&activeParentSnippet=`getProducts?parents=[[+id]]&tpl=menuRowTpl2`
]]

menuRowTpl:

<li>
    <a href=[[~[[+id]]]]" class="[[+activeClass]]">[[+pagetitle]] ([[+subitemcount]])</a>
    [[+active:is=`1`:then=`
    <ul>
        [[+activeParent_snippet]]
    </ul>
    `:else=``]]
</li>

menuRowTpl2:

<li>
    <a href="[[~[[+id]]]]" class="[[+activeClass]]">[[+pagetitle]]</a>
</li>
--------------------

Smarty

Если включить параметр "useSmarty", в чанке сниппета можно использовать шаблонизатор Smarty. Рекоммендуется установить пакет modxSmarty (http://modx.com/extras/package/modxsmarty) от fi1osof. В чанке вместо, например,[[ +pagetitle]] нужно писать {$item.pagetitle}. Для TV-параметров синтаксис такой: {$item['tv.price']}

Логические операторы в Smarty: http://www.smarty.net/docs/en/language.function.if.tpl

Пример чанка с использованием Smarty (и пакета modxSmarty):

<div class="product shk-item">
    <div class="product-b">
        <div class="product-descr">
            <a href="{link id="{$item.id}"}">
                {if $item['tv.image'] ne ""}
                    <img class="shk-image" src="{$item['tv.image']}" alt="" height="130" width="130" />
                {else}
                    <img class="shk-image" src="/assets/images/nophoto.jpg" alt="" height="130" width="130" />
                {/if}
            </a>
            <h3>{$item.pagetitle}</h3>
            {$item.introtext}<br />
            <a href="{link id="{$item.id}"}">Подробнее ›</a>
            <div style="clear:both;"></div>
            <small>
                {if $item['tv.inventory'] gt 0}
                    <b style="color:green;">есть в наличии</b>
                {else}
                    <b style="color:red;">нет в наличии</b>
                {/if}
            </small>
        </div>
        <form action="{link id="{field name="id"}"}" method="post">
            <fieldset>
                <input type="hidden" name="shk-id" value="{$item.id}" />
                <input type="hidden" name="shk-name" value="{$item.pagetitle}" />
                <input type="hidden" name="shk-count" value="1" />
                <div class="product-price">
                    <button type="submit" class="shk-but">В корзину</button>
                    <div>Цена: <span class="shk-price">{$item['tv.price']}</span> руб.</div>
                </div>
            </fieldset>
        </form>
    </div>
</div>
====================
-2

Выбрать другую заметку

  1. Якорные ссылки с плавной прокруткой - Пример - 15.09.2016
  2. Перенос сайта на другой хостинг Modx revo - 17.08.2017
  3. Перенос дампа MySQL 5.7 в MySQL 5.5 или ишибка #1214 - The used table type doesn't support FULLTEXT indexes - 16.05.2018
  4. Документация getProducts - 8.03.2018
  5. mFilter2 - быстрый запуск - 16.05.2018
  6. mSearch2 - быстрый запуск - 16.05.2018
  7. Автоматическое определение года - PHX Modx Revo, Вывод названий месяцев на русском - 16.05.2018
  8. Документация fastField Modx Revo - плагин для получения поля другого ресурса. - 16.05.2018
  9. MODX Revolution - Каталог ядра в открытом доступе - 1.06.2018
  10. Привязать картинку к ячейке excel - 5.07.2018
  11. Обновление MODX Revolution - 26.07.2018
  12. Перевод с http на https, сайт на ModX Revo, хостинг beget. - 19.12.2018
  13. pdoMenu - Как исключить определенные пункты меню - 5.02.2019
  14. Как вывести количество дочерних элементов modx revo - один из вариантов - 8.08.2019
  15. MigX Modx Revo - быстрый старт. Примеры MigX. - 17.08.2019
  16. Запрет на индексацию ссылок или текста - 15.10.2019
  17. Не выводить текущую новость через getProducts ModX revo - 22.10.2019
  18. Font boosting и проблемы со шрифтом в мобильных браузерах - 28.10.2019
  19. Как написать в техподдержку вКонтакте с компьютера - 13.02.2020
  20. Удобно для SEO, но только MODX REVO - 5.06.2020
  21. Сортировка ресурсов на странице через getProdutcts, как в дереве ресурсов - 28.04.2021
  22. Якорные ссылки на странице с плавной прокруткой. Html, CSS + javascript - 26.05.2021
  23. Phpthumbof modx revo. Быстрый старт и шпаргалка. Водяной знак. - 30.08.2021
  24. Getimagelist modx revo, сортировка в обратном порядке - MIGX - 23.09.2021
  25. Яндекс карта через API - Быстрый старт - 24.09.2021
  26. Проверка подключения jQuery - 10.03.2022
  27. Стандартные плейсхолдеры в MIGX - 19.12.2022
  28. PHX проверка на четность pdoResources Modx Revo - 25.02.2024
  29. Пример таблицы со скроллингом по оси x для bootstrap - 19.10.2023
  30. Как текст в формате дата из таблицы excel, вывести на сайте "в формате дата" - 29.11.2023
  31. Таблица Android - версии в хронологическом порядке - 14.02.2024
  32. Modx Revo, pdoResource. Как вывести сообщение, что в выборке пусто? - 12.03.2024
  33. Косяк swiper-slider или выделение слайдов при свайпе - 27.03.2024
  34. Получить поля другого ресурса через синтаксис pdoTools (сниппет pdoField) - 28.03.2024