
mxQuickView
Быстрый просмотр карточки товара и любых ресурсов по AJAX для MODX 3
- MODX 3
- PHP 8.1
- miniShop3


data-mxqv-id (ресурс должен существовать и быть доступен).data-mxqv-action задаёт, что отрисовать: chunk, snippet или template.data-mxqv-mode задаёт, куда вывести: modal или selector.POST и только action=render.| Задача | data-mxqv-action | data-mxqv-mode |
|---|---|---|
| Показ карточки товара | chunk | modal |
| Показ корзины/миникорзины | snippet | modal |
| Вставка quick view в отдельный блок | chunk или snippet | selector |
| Отрисовка шаблона ресурса | template | modal или selector |
chunk Базовый и наиболее безопасный сценарий: отдельный чанк карточки (например, mxqv_product).
mxquickview_allowed_chunk.$modx->getChunk($name, $props).$props доступны поля ресурса, msProductData, variants_* (has_variants=true|false, variants_html, variants_json).mxqv_product и mxqv_resource — в разделе Плейсхолдеры чанков поставки.Внимание
Строки «Арт. », «В корзину», «Подробнее» в чанках поставки зашиты по-русски и лексиконом не переводятся. В своих чанках замените их на плейсхолдеры. Классы qv-resource__* из mxqv_resource в mxqv.css не описаны: стили для них нужно писать самостоятельно.
<button data-mxqv-click data-mxqv-mode="modal"
data-mxqv-action="chunk"
data-mxqv-element="mxqv_product"
data-mxqv-id="[[+id]]"
data-mxqv-title="[[+pagetitle]]">
mxQuickView
</button><button data-mxqv-click data-mxqv-mode="modal"
data-mxqv-action="chunk"
data-mxqv-element="mxqv_product"
data-mxqv-id="{$id}"
data-mxqv-title="{$pagetitle}">
mxQuickView
</button>snippet Для элементов, которые уже собирает сниппет (например, msCart).
mxquickview_allowed_snippet.$modx->runSnippet($name, $props).msCart: ключ id снимается, задаётся resource_id.data-mxqv-element может начинаться с ! (префикс снимает класс рендера).mode, output, modal_library учитываются только при отрисовке msCart (контейнер корзины), не для template.<button data-mxqv-click data-mxqv-mode="modal"
data-mxqv-action="snippet"
data-mxqv-element="msCart"
data-mxqv-id="[[+id]]"
data-mxqv-title="[[+pagetitle]]">
Корзина
</button><button data-mxqv-click data-mxqv-mode="modal"
data-mxqv-action="snippet"
data-mxqv-element="msCart"
data-mxqv-id="{$id}"
data-mxqv-title="{$pagetitle}">
Корзина
</button>template Реже: когда нужно отрисовать шаблон ресурса целиком.
mxquickview_allowed_template.mxquickview_allowed_template означает, что отрисовка template запрещена.element принимает ID шаблона или templatename.template ресурса, вызывается $resource->process() с шаблоном из data-mxqv-element (не обязательно шаблон ресурса в панели управления).<button data-mxqv-click data-mxqv-mode="modal"
data-mxqv-action="template"
data-mxqv-element="12"
data-mxqv-id="[[+id]]"
data-mxqv-title="[[+pagetitle]]">
Шаблон
</button><button data-mxqv-click data-mxqv-mode="modal"
data-mxqv-action="template"
data-mxqv-element="12"
data-mxqv-id="{$id}"
data-mxqv-title="{$pagetitle}">
Шаблон
</button>modal modalLibrary (native, bootstrap, fancybox) в mxQuickView.initialize.data-mxqv-title).fancybox.native и bootstrap, у fancybox их в разметке нет.selector data-mxqv-output.