Инструменты пользователя

Инструменты сайта


getproducts

Сниппет getProducts

Параметры сниппета

  • 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".
  • includeContent - Включать в выборку из БД значение поля "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 (бесконечное).

Фильтрация

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

&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:

[[!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":

[[!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.txt · Последние изменения: 2016/05/15 17:06 — roman