Павел Романов

Павел Романов

Был в сети 30 июля 2026, 15:23
Заказы принимаю
<link href="assets/css/owl.carousel.css" rel="stylesheet" />
<script src="assets/js/owl.carousel.min.js"></script>
<script>
$(document).ready(function() {
    $('.owl-carousel').owlCarousel({
        //тут нужные опции
    });
});
</script>

<div class="liders">
    <h3>Лидеры продаж</h3>
    <hr style="height:2px;">
    <div class="owl-carousel">
        [[!pdoPage?
        &element=`msProducts`
        &tpl=`tpl.msProducts.row2`
        &limit=`10`
        &parents=`8`
        &resources=`277,543,332,333`
        &sortby=``
        ]] 
    </div>
</div>

Естественно, должен подключаться jQuery + пути к скрипту и стилям укажите свои.
В корзине в строке есть плейсхолдер [[+id]] — это ID ресурса-товара. Соответственно, можете вытащить TV (если стоит pdoTools):
[[#[[+id]].tvname]]

В письмах только не забудьте добавить [[++site_url]] перед ним.

Если используете msListOrders для истории заказов, то там не [[+id]], а [[+product_id]].
Плагин по-любому нужен, иначе как Вы сообщите MODX из какого контекста выдавать сайт?
Хотя бы такой (вешается на событие OnHandleRequest):

<?php
if ($modx->context->get('key') == 'mgr') {
return;
}

switch ($modx->getOption('http_host'))
{
case 'домен1.ru':
$modx->switchContext('ключ_контекста_1');
break;
case 'домен2.ru':
$modx->switchContext('ключ_контекста_2');
break;
}
Есть еще нюанс.
Если используете проверку на пустоту поля:
&validate=`work-email:blank.....`
то это поле в форме должно быть не type="hidden", а type="text" или type="email". Скрывайте же его средствами CSS.
Просто боты нынче умные — они понимают, что поле «hidden» — скрытое и оставляют его пустым -> проверка проходится на раз-два )