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
[videoGallery] Видео галерея YouTube, Vimeo Невозможно установить пакет с подписью: videogallery-1.4.0-beta Ошибка установки Error в /core/packages/videogallery-1.4.0-beta/modCategory/7fc931a7772edc9752c16e9c41eb5e52.reso...
mxBoard: канбан-доска для команд, людей и ИИ-агентов в MODX 3 Привет, добавил пользователя в группу mxBoard(4), создал токен. Добавляю все в postman пишет: rest: { «success»: false, «message»: «Недействительный токен.», «data...
Релиз miniShop2 ver. 4.4.1 & 4.4.2 Подскажите пожалуйста, может я что-то не знаю или упустил. Но есть ли решение по глюку с radio? Указываешь свое radio c одинаковым name и в результате при переключении получаешь вс...
Плагин EnvBadge: визуальный индикатор окружения в админке MODX3 Расскажите пожалуйста как вы настраиваете сайт на MODX 3 чтобы был dev, prod, stage. Можете описать workflow? Допустим у меня 80% — это магазины, там клиенты, продажи, все онлай...
MaxNotify Обновление компонента 1.3.0-pl (22.07.2026) — добавлено автоматическое получение полей через msOrder->toArray(); — массивы и объекты безопасно пропускаются; — стандартные...
MyFavorites MyFavorites — 3.0.0-beta Первая версия для MODX Revolution 3.x — компонент полностью переписан с нуля (PHP >= 8.4, namespaced-ядро MODX 3, PSR-4, сервис-ориентированная архит...
В шаблоне внес правки в скрипт
И в файле обработчике поменял вызов на