![]() |
![]() |
Дата публикации: 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":"%черный%"}`
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? &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>
[[!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]]` ]]--------------------
[[getProducts? &parents=`4` &where=`{"hidemenu":0,"template:<>":5}` &tpl=`menuRowTpl` &addSubItemCount=`1` &activeParentSnippet=`getProducts?parents=[[+id]]&tpl=menuRowTpl2` ]]
<li> <a href=[[~[[+id]]]]" class="[[+activeClass]]">[[+pagetitle]] ([[+subitemcount]])</a> [[+active:is=`1`:then=` <ul> [[+activeParent_snippet]] </ul> `:else=``]] </li>
<li> <a href="[[~[[+id]]]]" class="[[+activeClass]]">[[+pagetitle]]</a> </li>--------------------
Если включить параметр "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
<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>====================