08 июля 2022, 12:37 На скринах не видно основной адрес страницы… Возможно эти параметры так же установлены в адресной строке… И тогда все логично!) Вопросы / pdoPage зачем-то добавляет параметры из кук к ссылкам навигации 4 0
08 июля 2022, 12:32 Если у вас и получится делать подобные выборки, то только через костыли… Я бы переопределил xtype поля color и писал бы выбранные цвета в отдельную табличку… Тогда проблем с фильтрацией возникать не должно!) Кстати в miniShop2 есть уже отдельная табличка для опций (ну по крайней мере была, когда я последний раз с ним работал) и если ее использовать, то не придется расширять nimiShop2 подключением новой таблицы. Пишу первый вариант решения проблемы, который я бы попробовал реализовать. Сам не реализовывал. Вопросы / Like и другие приключения unicode 12 +1
05 июля 2022, 20:19 Я бы выбрал JWT. А вообще рекомендую посмотреть реализациюэтого пакета Ну и не забудьте прочитать описание предварительно, что бы понять что это и для чего. Вопросы / Авторизация для RESTapi 7 0
05 июля 2022, 20:05 Что значит защитить? Нужно немного подробностей… Вопросы / Авторизация для RESTapi 7 0
01 июля 2022, 21:34 Установленные плейсхолдеры можно посмотреть так: print_r($modx->placeholders); Вопросы / Не могу получить значение placeholder. Тонкости работы парсера? 8 0
01 июля 2022, 21:22 Попробуйте {$_pls['+appsettings']} или {$_modx->getPlaseholder('+appsettings')} Вопросы / Не могу получить значение placeholder. Тонкости работы парсера? 8 0
01 июля 2022, 21:19 Посмотрите как он записан в базе данных… По крайней мере там можно его сравнить с рабочими… Вопросы / Ошибка при создании нового шаблона An error occurred...Шаблон не указан 2 0
29 июня 2022, 20:08 У меня всегда стоят Да вот эти настройки: pdotools_fenom_default pdotools_fenom_modx pdotools_fenom_parser pdotools_fenom_php Вопросы / Как включить феном ? 5 +1
29 июня 2022, 20:05 Стоит взять за привычку после получения ошибки смотреть в лог ошибок… Думаю там найдется ответ! Вопросы / Как включить феном ? 5 +1
28 июня 2022, 23:57 И главное! Артур, вы молодец, что находите время помогать другим! У меня нет цели принизить ваши знания и достоинства. Вопросы / Привязка статей к товару minishop2 13 +1
28 июня 2022, 23:54 Ну вы же сами начали описывать логику… Ну продолжите ее… Предположим, у нас к статье прикреплено 50 товаров (Ну такая вот статья, где много всего описывается)… И тогда получается, что плагин делает выборку из 50 товаров и для каждого товара получает значение TV… После этого превращает значение в массив, дописывает id статьи, уникализирует массив и сохраняет новое значение для TV… Я бы такое писал только в том случае, если бы хотел кому-то «поднасрать»… Вопросы / Привязка статей к товару minishop2 13 0
28 июня 2022, 23:32 И снова мимо… Посмотрите как реализованы дополнительные категории в miniShop2… А первоначально предложенное решение не то что «не отличное»… Оно просто не рабочее… Так как если в условие придет 1, то в выборку попадут id статей, в которых присутствует 1, то есть: 1, 10, 11, 12 и т.д. Вопросы / Привязка статей к товару minishop2 13 0
28 июня 2022, 22:14 Ну а теперь давайте посмотрим на ситуацию, когда в условие придет цифра 1… Как думаете какая выборка придет? Использовать такую реализацию для связи многие ко многим достаточно ресурсозатратно. Но если уж не хотите или нет возможности переделать, то для корректного результата можно написать сниппет с использованием pdoFetch… Условия выборки оставляем такими же и получить массив результатов… Но потом средствами PHP отфильтровать выборку из БД сравнивая id ресурса с искомым id. Вопросы / Привязка статей к товару minishop2 13 0
28 июня 2022, 01:01 А почему нельзя было воспользоваться услугами JSON? Evo формирует, Revo забирает, обрабатывает (если нужно) и кладет в базу… У меня такой метод переноса контента прошел безболезненно… Вопросы / Переезд с 1.2.1 в 3.0.1 3 0
24 февраля 2022, 01:59 Вы хорошо описали! За это спасибо! Но, наверное, лучше эту тему подробнее описать в разделе уроки. И раздел будет наполняться и найти тему будет проще! Вопросы / непавильный адрес картинки из-за чпу 13 0
19 февраля 2022, 11:04 В куках только ройстат айди! Остальная инфа для сделок хранится в базе. Вот документация по формированию XML. Но я бы сначала пообщался с 1С-ником, на предмет работы с JSON. С ним легче работать и он меньше весит! Вопросы / Formit + РОИСТат ИД + 1c Медицина загрузка прокси - лидов из сайта в 1с. 11 0
18 февраля 2022, 20:26 Делал подобное 2 года назад опираясь на эту инфу. Была подобная задача учитывая ваш прошлый вопрос. Правда еще скопировал и немного переписал сам сниппет mFilter. В итоге ипользовал его вот так: {extends 'file:templates/base/base.tpl'} {block 'template'} {var $where = ['(`Data`.`available_sizes` > 0 OR `Data`.`available_rows` > 0 OR `Data`.`soon_available` > 0)']} {$_modx->setPlaceholder('sideBar', 'chunks/sidebar/vendors.tpl')} {var $breadSub = [469,470,76,77]} {var $parents = '2,' ~ $_modx->resource.id} {include 'file:chunks/base/breadcrumbs.tpl' parents=$parents submenu=$breadSub} {var $mFilter = '!juniorFilter' | snippet : [ 'element' => 'msProducts@cat', 'limit' => '30', 'maxLimit' => '5000', 'toArray' => '1', 'tpl' => '@FILE chunks/catalog/productList.tpl', 'tplOuter' => '@FILE chunks/catalog/filterOuter.tpl', 'parents' => '2', 'includeThumbs' => 'list', 'where' => $where, 'ajax' => '1', 'ajaxMode' => 'default', 'ajaxHistory' => '1', 'pageLimit' => '7', 'aliases' => ' ms|season==season, ms|sex==sex, ms|available_rows==available_rows, ms|available_sizes==available_sizes, remains|size==size, resource|parent==parent ', 'filters' => ' ms|season, ms|sex, ms|available_rows:sizerange, ms|available_sizes:sizerange, remains|size, resource|parent ', 'tplFilter.outer.season' => '@FILE chunks/filters/spoiler.outer.tpl', 'tplFilter.row.season' => '@FILE chunks/filters/spoiler.row.tpl', 'tplFilter.outer.sex' => '@FILE chunks/filters/spoiler.outer.tpl', 'tplFilter.row.sex' => '@FILE chunks/filters/spoiler.row.tpl', 'tplFilter.outer.available_rows' => '@FILE chunks/filters/sizerange.outer.tpl', 'tplFilter.row.available_rows' => '@FILE chunks/filters/sizerange.row.tpl', 'tplFilter.outer.available_sizes' => '@FILE chunks/filters/sizerange.outer.tpl', 'tplFilter.row.available_sizes' => '@FILE chunks/filters/sizerange.row.tpl', 'tplFilter.outer.size' => '@FILE chunks/filters/spoiler.outer.tpl', 'tplFilter.row.size' => '@FILE chunks/filters/spoiler.row.tpl', 'tplFilter.outer.parent' => '@FILE chunks/filters/spoiler.outer.tpl', 'tplFilter.row.parent' => '@FILE chunks/filters/spoiler.row.tpl', 'tplPageWrapper' => '@INLINE <nav class="pagination"><div class="container"><ul>{$first}{$prev}{$pages}{$next}{$last}</ul></div></nav>', 'tplPage' => '@INLINE <li><a href="{$href}">{$pageNo}</a></li>', 'tplPageActive' => '@INLINE <li class="active"><a href="{$href}">{$pageNo}</a></li>', 'tplPageFirst' => '@INLINE <li class="first"><a href="{$href}"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.79244 8.7921C9.01095 8.57348 9.12044 8.28676 9.12044 8.00001C9.12044 7.71336 9.0112 7.42665 8.79265 7.20792L1.91295 0.328386C1.47531 -0.109462 0.765763 -0.109462 0.328306 0.328386C-0.109152 0.765808 -0.109152 1.47514 0.328306 1.91278L6.41564 8.00001L0.328093 14.0872C-0.109364 14.5249 -0.109364 15.2343 0.328093 15.6717C0.765551 16.1094 1.4751 16.1094 1.91273 15.6717L8.79244 8.7921ZM14.7924 8.7921C15.011 8.57348 15.1204 8.28676 15.1204 8.00001C15.1204 7.71336 15.0112 7.42665 14.7927 7.20792L7.91295 0.328386C7.47531 -0.109462 6.76576 -0.109462 6.32831 0.328386C5.89085 0.765808 5.89085 1.47514 6.32831 1.91278L12.4156 8.00001L6.32809 14.0872C5.89064 14.5249 5.89064 15.2343 6.32809 15.6717C6.76555 16.1094 7.4751 16.1094 7.91273 15.6717L14.7924 8.7921Z"/></svg></a></li>', 'tplPageFirstEmpty' => '@INLINE <li class="first disabled"><a href="{$href}"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.79244 8.7921C9.01095 8.57348 9.12044 8.28676 9.12044 8.00001C9.12044 7.71336 9.0112 7.42665 8.79265 7.20792L1.91295 0.328386C1.47531 -0.109462 0.765763 -0.109462 0.328306 0.328386C-0.109152 0.765808 -0.109152 1.47514 0.328306 1.91278L6.41564 8.00001L0.328093 14.0872C-0.109364 14.5249 -0.109364 15.2343 0.328093 15.6717C0.765551 16.1094 1.4751 16.1094 1.91273 15.6717L8.79244 8.7921ZM14.7924 8.7921C15.011 8.57348 15.1204 8.28676 15.1204 8.00001C15.1204 7.71336 15.0112 7.42665 14.7927 7.20792L7.91295 0.328386C7.47531 -0.109462 6.76576 -0.109462 6.32831 0.328386C5.89085 0.765808 5.89085 1.47514 6.32831 1.91278L12.4156 8.00001L6.32809 14.0872C5.89064 14.5249 5.89064 15.2343 6.32809 15.6717C6.76555 16.1094 7.4751 16.1094 7.91273 15.6717L14.7924 8.7921Z"/></svg></a></li>', 'tplPageLast' => '@INLINE <li class="last"><a href="{$href}"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.79244 8.7921C9.01095 8.57348 9.12044 8.28676 9.12044 8.00001C9.12044 7.71336 9.0112 7.42665 8.79265 7.20792L1.91295 0.328386C1.47531 -0.109462 0.765763 -0.109462 0.328306 0.328386C-0.109152 0.765808 -0.109152 1.47514 0.328306 1.91278L6.41564 8.00001L0.328093 14.0872C-0.109364 14.5249 -0.109364 15.2343 0.328093 15.6717C0.765551 16.1094 1.4751 16.1094 1.91273 15.6717L8.79244 8.7921ZM14.7924 8.7921C15.011 8.57348 15.1204 8.28676 15.1204 8.00001C15.1204 7.71336 15.0112 7.42665 14.7927 7.20792L7.91295 0.328386C7.47531 -0.109462 6.76576 -0.109462 6.32831 0.328386C5.89085 0.765808 5.89085 1.47514 6.32831 1.91278L12.4156 8.00001L6.32809 14.0872C5.89064 14.5249 5.89064 15.2343 6.32809 15.6717C6.76555 16.1094 7.4751 16.1094 7.91273 15.6717L14.7924 8.7921Z"></svg></a></li>', 'tplPageLastEmpty' => '@INLINE <li class="last disabled"><a href="{$href}"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.79244 8.7921C9.01095 8.57348 9.12044 8.28676 9.12044 8.00001C9.12044 7.71336 9.0112 7.42665 8.79265 7.20792L1.91295 0.328386C1.47531 -0.109462 0.765763 -0.109462 0.328306 0.328386C-0.109152 0.765808 -0.109152 1.47514 0.328306 1.91278L6.41564 8.00001L0.328093 14.0872C-0.109364 14.5249 -0.109364 15.2343 0.328093 15.6717C0.765551 16.1094 1.4751 16.1094 1.91273 15.6717L8.79244 8.7921ZM14.7924 8.7921C15.011 8.57348 15.1204 8.28676 15.1204 8.00001C15.1204 7.71336 15.0112 7.42665 14.7927 7.20792L7.91295 0.328386C7.47531 -0.109462 6.76576 -0.109462 6.32831 0.328386C5.89085 0.765808 5.89085 1.47514 6.32831 1.91278L12.4156 8.00001L6.32809 14.0872C5.89064 14.5249 5.89064 15.2343 6.32809 15.6717C6.76555 16.1094 7.4751 16.1094 7.91273 15.6717L14.7924 8.7921Z"></svg></a></li>', 'tplPageNext' => '@INLINE <li class="next"><a href="{$href}"><svg width="10" height="16" viewBox="0 0 10 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9.56021 8.00004C9.56021 8.2868 9.45072 8.57351 9.2322 8.79213L2.3525 15.6718C1.91487 16.1094 1.20532 16.1094 0.767859 15.6718C0.330402 15.2343 0.330402 14.5249 0.767859 14.0872L6.8554 8.00004L0.768072 1.91282C0.330614 1.47518 0.330614 0.765843 0.768072 0.328421C1.20553 -0.109426 1.91508 -0.109426 2.35271 0.328421L9.23242 7.20795C9.45097 7.42668 9.56021 7.7134 9.56021 8.00004Z"/></svg></a></li>', 'tplPageNextEmpty' => '@INLINE <li class="next disabled"><a href="{$href}"><svg width="10" height="16" viewBox="0 0 10 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9.56021 8.00004C9.56021 8.2868 9.45072 8.57351 9.2322 8.79213L2.3525 15.6718C1.91487 16.1094 1.20532 16.1094 0.767859 15.6718C0.330402 15.2343 0.330402 14.5249 0.767859 14.0872L6.8554 8.00004L0.768072 1.91282C0.330614 1.47518 0.330614 0.765843 0.768072 0.328421C1.20553 -0.109426 1.91508 -0.109426 2.35271 0.328421L9.23242 7.20795C9.45097 7.42668 9.56021 7.7134 9.56021 8.00004Z"/></svg></a></li>', 'tplPagePrev' => '@INLINE <li class="prev"><a href="{$href}"><svg width="10" height="16" viewBox="0 0 10 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9.56021 8.00004C9.56021 8.2868 9.45072 8.57351 9.2322 8.79213L2.3525 15.6718C1.91487 16.1094 1.20532 16.1094 0.767859 15.6718C0.330402 15.2343 0.330402 14.5249 0.767859 14.0872L6.8554 8.00004L0.768072 1.91282C0.330614 1.47518 0.330614 0.765843 0.768072 0.328421C1.20553 -0.109426 1.91508 -0.109426 2.35271 0.328421L9.23242 7.20795C9.45097 7.42668 9.56021 7.7134 9.56021 8.00004Z"/></svg></a></li>', 'tplPagePrevEmpty' => '@INLINE <li class="prev disabled"><a href="{$href}"><svg width="10" height="16" viewBox="0 0 10 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9.56021 8.00004C9.56021 8.2868 9.45072 8.57351 9.2322 8.79213L2.3525 15.6718C1.91487 16.1094 1.20532 16.1094 0.767859 15.6718C0.330402 15.2343 0.330402 14.5249 0.767859 14.0872L6.8554 8.00004L0.768072 1.91282C0.330614 1.47518 0.330614 0.765843 0.768072 0.328421C1.20553 -0.109426 1.91508 -0.109426 2.35271 0.328421L9.23242 7.20795C9.45097 7.42668 9.56021 7.7134 9.56021 8.00004Z"/></svg></a></li>', 'tplPageSkip' => '@INLINE <li class="dots">...</li>' ]} <div class="msearch2" id="mse2_mfilter"> <div class="container"> <div class="header-wrapper"> <h1 class="pink-color h2 beautifull-h">{$_modx->resource.pagetitle ?: $modx->resource.longtitle}</h1> <p class="pink-color header-wrapper_right-label">Найдено товаров: <span id="mse2_total" class="goods-count">{$mFilter.total}</span></p> </div> <button class="button filter-button">Фильтры</button> </div> <div class="container catalogue-content-wrapper"> <div class="menu-filter-wrapper"> {var $sideBar = $_modx->getPlaceholder('sideBar')} {if $sideBar ?} <nav class="sidebar-catalogue-menu"> <ul> {include ('file:' ~ $sideBar)} </ul> </nav> {/if} <form action="{$_modx->resource.uri}" method="post" id="mse2_filters"> <div class="filter-wrapper"> <div class="filter-block round-white-block"> {$mFilter.filters.available_rows} {$mFilter.filters.available_sizes} </div> <div class="filter-block round-white-block"> {if $mFilter.filters.parent ?} {$mFilter.filters.parent} {/if} {$mFilter.filters.season} {$mFilter.filters.sex} {$mFilter.filters.size} {if $mFilter.filters | length > 0 ?} <button type="reset" class="reset-form like-link">Очистить фильтры</button> {/if} </div> </div> </form> <div class="close-btn"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M0.92888 13.6568C0.538355 14.0474 0.538355 14.6805 0.92888 15.0711C1.3194 15.4616 1.95257 15.4616 2.34309 15.0711L7.99995 9.4142L13.6568 15.0711C14.0473 15.4616 14.6805 15.4616 15.071 15.0711C15.4616 14.6805 15.4616 14.0474 15.071 13.6568L9.41417 7.99999L15.071 2.34314C15.4615 1.95261 15.4615 1.31945 15.071 0.928925C14.6805 0.538401 14.0473 0.538401 13.6568 0.928925L7.99995 6.58577L2.34311 0.928927C1.95258 0.538402 1.31942 0.538402 0.928895 0.928927C0.538371 1.31945 0.538371 1.95262 0.928896 2.34314L6.58574 7.99999L0.92888 13.6568Z"/></svg></div> </div> <div class="content"> <div class="round-white-block filters-row"> <div class="filters" id="mse2_selected_wrapper"> <ul id="mse2_selected"></ul> </div> {*<button type="reset" class="clear like-link">Очистить фильтры</button>*} </div> <div id="mse2_results" class="product-cards-wrapper"> {$mFilter.results} </div> </div> </div> <div class="mse2_pagination"> {$_modx->getPlaceholder('page.nav')} </div> {if $_modx->getPlaceholder('pageCount') > 1} <div class="center"> <a href="#" data-limit="5000" class="button type2 pag_btn">Смотреть все</a> </div> {/if} </div> {include 'file:chunks/base/footer_text.tpl'} {/block} {block 'scriptAfter'} <script> $(document).ready(function () { $(document) .on('click', '.pag_btn', function (e) { e.preventDefault(); var hash = mSearch2.Hash.get(); var limit = $(this).data('limit'); hash.limit = $(this).data('limit'); mSearch2.Hash.set(hash); mse2Config.limit = limit; mSearch2.load(hash); }) .on('mse2_load', function(e, data) { var $btn_all = $('.pag_btn'); if (data.data.pages == data.data.page) { $btn_all.hide(); } else { $btn_all.show(); } }); }); </script> {/block} Вопросы / Как реализовать такой фильтр? 1 0
17 февраля 2022, 23:13 Если проверка в админке выдает корректный результат, то нужно разбираться с чанком и/или шаблоном, где выводится цена. Вопросы / Дополнение msDiscount не работает скидка 4 0
17 февраля 2022, 23:04 РоиСтат хранит свои айдишники в куках… Стоит обратить внимание, но то, что их как минимум 2 — первичный и текущий… При генерации файла для 1С берите нужный из кук и пишите в файл. Вопросы / Formit + РОИСТат ИД + 1c Медицина загрузка прокси - лидов из сайта в 1с. 11 0
17 февраля 2022, 22:54 Посмотрите код ответа на главной после редиректа. Возможно он будет 404, если у вас не настроена отдельая страница для кода 404… В таком случае стоит убедится, что ресурс с id = 15 опубликован и не ограничен правами доступа. Вопросы / Некорректно работает msearch 1 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, сервис-ориентированная архит...
Кстати в miniShop2 есть уже отдельная табличка для опций (ну по крайней мере была, когда я последний раз с ним работал) и если ее использовать, то не придется расширять nimiShop2 подключением новой таблицы.
Пишу первый вариант решения проблемы, который я бы попробовал реализовать. Сам не реализовывал.
Ну и не забудьте прочитать описание предварительно, что бы понять что это и для чего.
А первоначально предложенное решение не то что «не отличное»… Оно просто не рабочее… Так как если в условие придет 1, то в выборку попадут id статей, в которых присутствует 1, то есть: 1, 10, 11, 12 и т.д.
Использовать такую реализацию для связи многие ко многим достаточно ресурсозатратно. Но если уж не хотите или нет возможности переделать, то для корректного результата можно написать сниппет с использованием pdoFetch… Условия выборки оставляем такими же и получить массив результатов… Но потом средствами PHP отфильтровать выборку из БД сравнивая id ресурса с искомым id.
Вот документация по формированию XML. Но я бы сначала пообщался с 1С-ником, на предмет работы с JSON. С ним легче работать и он меньше весит!