23 февраля 2025, 14:39 Возможно вариант неидеальный и неокончательный, но уже рабочий) В шаблоне внес правки в скрипт <script> $(document).ready(function () { let parentId = [[*id]]; updateProducts(1, true); $('.filter-checkbox').on('change', function () { updateProducts(1, true); }); $('#products-container').on('click', '.pagination a', function(e) { e.preventDefault(); let pageUrl = $(this).attr('href'); let urlParams = new URLSearchParams(pageUrl.split('?')[1]); let pageParam = urlParams.get('page') || 1; updateProducts(pageParam, true); }); function updateProducts(page = 1, replaceContent = true) { console.log('Page:', page); let filterData = $('#filter-form').serialize(); $.ajax({ url: '/assets/components/filter.php', type: 'GET', data: filterData + '&parent=' + parentId + '&page=' + page, beforeSend: function () { if (replaceContent) { $('#products-container').html('<p>Загрузка...</p>'); } }, success: function (data) { console.log('Response:', data); if (replaceContent) { $('#products-container').html(data); } else { $('#products-container').append(data); } }, error: function(xhr, status, error) { console.log('Error:', status, error); } }); } }); </script>И в файле обработчике поменял вызов на $page = isset($_GET['page']) ? max((int)$_GET['page'], 1) : 1; $limit = 1; $offset = ($page - 1) * $limit; $total = count($productIds); $pages = ceil($total / $limit); $productIds = array_slice($productIds, $offset, $limit); $output = $modx->runSnippet('Pagination', [ 'class' => 'msProduct', 'render' => '!pdoResources', 'resources' => implode(',', $productIds), 'tpl' => 'tpl.msProducts.row', 'includeTVs' => 'back-img,product-img,ice_properties_uk,weight', 'tplEmpty' => '', 'limit' => $limit, 'loadModels' => 'ms2', 'includeContent' => 1, 'page' => $page, 'maxPageListItems' => 5, 'pagination' => 'one', 'leftJoin' => json_encode([ "msProductData" => [ "class" => "msProductData", "on" => "msProduct.id = msProductData.id" ] ]), 'select' => json_encode([ "msProduct" => "id, pagetitle", "msProductData" => "price", "modx_ms2_products" => "opisanie_produkta,weight" ]) ]); $output .= '<div class="pagination">'; if ($page > 1) { $output .= '<a href="?page=' . ($page - 1) . '">« Предыдущая</a>'; } for ($i = 1; $i <= $pages; $i++) { $output .= '<a href="?page=' . $i . '"' . ($i === $page ? ' class="active"' : '') . '>' . $i . '</a>'; } if ($page < $pages) { $output .= '<a href="?page=' . ($page + 1) . '">Следующая »</a>'; } $output .= '</div>'; echo $output; exit; Вопросы / Проблема пагинации в самописном фильтре для товаров minishop2 4 0
23 февраля 2025, 03:16 Спасибо вам за то, что подсказали правильное направление — все получилось) Вопросы / Проблема пагинации в самописном фильтре для товаров minishop2 4 0
Localizator3 для MODX 3: перевод полей и TV без отдельного context на язык, Vue 3 + PrimeV... Выпустил новые версии: [1.0.11-beta] — 2026-10-07 Добавлено — Настройка `localizator3_request_language_param` (по умолчанию `language`): GET/POST-параметр с явным клю...
PageBuilder — визуальный конструктор страниц для MODX 3 Класс! Пара моментов смутила: 1. Почему бы чанки сразу не вынести в файлы? 2. На фронте грузится свой CSS для стандартных блоков<link rel="stylesheet" href="/a...
mxDadata — интеграция DaData (Suggest, Clean, Party) с MODX 3 и MiniShop3 Вышла новая версия: [1.0.2-pl] — 2026-10-06 Fixed #9 Права mxdadata_edit, mxdadata_logs, mxdadata_cache_clear теперь проверяются в connector.php и в Processors\Mgr\Pr...
msp3PaymentSkeleton — шаблон для создания платёжных дополнений MiniShop3 вот круто. я как то писал платежное дополнение и парился как что. а теперь надеюсь все проше будет :-)
MiniShop3 1.2.0 - 1.3.0 Самое интересное Пообщались с клиентом он сказал что тыкал в позицию т.к. она не добавлялась (видимо лагал инет) и вот она размножилась таким образом.
Modx Revo 2.8.8 + Minishop 2 (4.4.2) + Babel 3.5.2 - превью товаров в админке у дополнител... Сначала сравните ответ connector для исходного товара и его перевода во вкладке Network. Если у перевода поле миниатюры пустое, смена чанка или рендерера сама картинку не добавит: ...
Сайт тормозит сервер, грузит процессор на 100% полезно посмотреть, какие URL запрашивают эти боты и сколько времени занимает их обработка. Частые обращения к поиску и фильтрам могут нагружать PHP сильнее, чем обычные страницы. ...
Подскажите насколько это рабочее решение Спасибо за ответ. У меня время создания заказа равно времени оплаты. Заказ оплачивается сразу через iframe на сайте. При нажатии на кнопку «оформить заказ» всплывает окошко робокас...
Не всегда срабатывает JS-событие Здесь лучше разделить «заказ создан» и «заказ оплачен». Первое событие фиксируется при успешном создании заказа, второе — после проверенного уведомления платёжной системы на сервер...
UiCMPGenerator дополнение для создания пакетов на днях начну делать доки, пока без видео обзора чисто текст и скрины, как будут готовы залью пакет
В шаблоне внес правки в скрипт
И в файле обработчике поменял вызов на