Aleksandr Huz · 09 сентября 2018, 17:02 {'!pdoPage' | snippet : [ 'parents' => $_modx->resource.id, 'limit' => '4', 'includeTVs' => 'image', 'tpl' => '@INLINE <li class="news__item"> <div class="news__img"> <a href="{$uri}"> <img src="{$_pls["tv.image"]}" alt="{$pagetitle}"> </a> </div> <div class="news__content"> <p class="news__date">{$publishedon | dateAgo}</p> <a href="{$uri}" class="news__title"> {$pagetitle} </a> <p class="news__desc"> {$introtext} </p> <a href="{$uri}" class="news__about">Читать далее</a> </div> </li>' ] ?: 'Список пуст'} Вопросы / Помогите с конструкцией на Fenom 4 +1 1
Андрей · 14 апреля 2018, 13:05 Можно написать свой хук — https://docs.modx.com/extras/revo/formit/formit.hooks#FormIt.Hooks-CustomHooks, в котором будет обрабатываться то что вам нужно. Вопросы / Обработка полей перед отправкой AjaxForm+FormIt 1 +1 1
Илья Уткин · 06 февраля 2018, 11:18 Да, просто сниппетом выводить формы. Возможно, за основу можно взять сниппет отсюда: https://ilyaut.ru/tips-and-tricks/process-form-fields-added-dynamically/ Вопросы / Создание неограниченного количества значений кастомных полей пользователем на фронте 9 +1 1
Bender · 04 февраля 2018, 21:42 Благодаря Василию, вопрос был разрешен. 'class' => 'modResource', 'loadModels' => 'ms2gallery', 'leftJoin' => [ 'Image' => [ 'class' => 'msResourceFile', 'on' => 'modResource.id = Image.resource_id AND Image.parent = 0', ], 'Thumb' => [ 'class' => 'msResourceFile', 'on' => 'Image.id = Thumb.parent AND Thumb.path LIKE "%medium%"', ] ], 'select' => [ 'modResource' => '*', 'Image' => 'Image.url as image', 'Thumb' => 'Thumb.url as thumb', ], Вопросы / Вывод меню с картинками из ms2gallery 1 +2 3
Андрей · 04 февраля 2018, 17:11 Как вариант — Выбор получателя в форме обратной связи Modx revo. Вопросы / ajaxform выбор получателя 2 0 1
Михаил · 01 февраля 2018, 15:18 {var $result = '!pdoPage' | snippet : [ 'ajaxMode' => 'default', 'sortby' => 'id', 'sortdir' => 'ASC', 'includeTVs' => 'size,area,image1,pro,price1', 'tpl' => 'projectcard', 'limit' => 15, 'tvPrefix' => '', 'where' => '["`TVprice1`.`value` BETWEEN 501 and 999"]', 'tplPageWrapper' => '@INLINE <nav aria-label="Page navigation"><ul class="pagination justify-content-center">{$prev}{$pages}{$next}</ul></nav>', 'tplPage' => '@INLINE <li class="page-item"><a class="page-link" href="{$href}">{$pageNo}</a></li>', 'tplPageActive' => '@INLINE <li class="page-item active"><a class="page-link" href="{$href}">{$pageNo}</a></li>', 'tplPagePrev' => '@INLINE <li rel="prev"><a class="page-link" href="{$href}">« Назад</a></li>', 'tplPageNext' => '@INLINE <li rel="next"><a class="page-link" href="{$href}">Дальше »</a></li>', 'tplPagePrevEmpty' => '@INLINE ', 'tplPageNextEmpty' => '@INLINE ', 'ajaxElemWrapper' => '#child_list', 'ajaxElemRows' => '#child_list .rows', 'ajaxElemPagination' => '#child_list .pagination', 'ajaxElemLink' => '#child_list .pagination a', ]} {if $result} {$result} {else} Тут пустой результат {/if} Вопросы / Как в pdoResources вывести текст при отсутствии выборки 2 +2 2
mngatoff · 06 августа 2017, 01:52 а я влез в тикетовый процессор web/upload/file, и в методе process() дописал после проверки на дубли: // Check for files limit if ($filesLimit = $this->modx->getOption('tickets.max_files_upload')) { $checkLimit = $this->modx->newQuery($this->classKey, array('class' => $this->class)); if (!empty($this->ticket->id)) { $checkLimit->andCondition(array('parent:IN' => array(0, $this->ticket->id))); } else { $checkLimit->andCondition(array('parent' => 0)); } $checkLimit->andCondition(array('createdby' => $this->modx->user->id)); if ($this->modx->getCount($this->classKey, $checkLimit) >= $filesLimit) { @unlink($data['tmp_name']); return $this->failure('Вы не можете загрузить больше '.$filesLimit.' файлов'); } }и джаваскрипт можно не трогать, и надежнее. Хочется попросить Василия что-то подобное таки включить в релиз, полезная штука. Вопросы / TicketForm - количество загружаемых файлов 31 +1 3
Максим Кузнецов · 05 августа 2016, 00:48 Вариант 1 (менее надежный — пользователь может отредактировать значение через консоль браузера): //также нужно указать параметр template в списке допустимых и обязательных полей (в настройках сниппета TicketForm) <input type="hidden" name="template" value="айди_шаблона" /> Вариант 2 (через плагин): <?php if ($modx->event->name == 'OnDocFormSave' && $mode == 'new') { if (любым условием при помощи входящих POST-данных фильтруешь нужную форму ) { $resource->set('template', 'айди_шаблона'); $resource->save(); } } Вопросы / Два шаблона тикетов 9 0 1
Василий Наумкин · 24 марта 2016, 07:44 Лично я закрываю служебные директории через веб-сервер на случай обнаружения новой уязвимости в MODX. Например, как это было, когда движок некорректно обрабатывал запросы в несуществующий контекст в коннекторах. Там еще одна PHP авторизация не помогла бы, так как хакер получал доступ к API через обычные GET запросы к определённому файлу. Именно поэтому я закрываю для доступа снаружи и админку, и коннекторы, и ядро. Причём, не через потенциально уязвимый движок, а средствами гораздо менее потенциально уязвимого Nginx. location ~* ^/(core|manager|connectors)/ { auth_basic "Restricted Access"; auth_basic_user_file /home/site/.htpasswd; try_files $uri $uri/ @rewrite; location ~ \.php$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass backend-site; } } А зачем нужна вот эта инструкция — большой вопрос. Пошаговые инструкции / Двухуровневая авторизация в менеджере 20 +2 8
mxBoard: канбан-доска для команд, людей и ИИ-агентов в MODX 3 Если ты пришлёшь мне весь запрос с заголовками и телом, смогу помочь
Плагин EnvBadge: визуальный индикатор окружения в админке MODX3 Лучше автоматический ci/cd настроить и не править прод напрямую. Это самый безопасный вариант. Другое дело, что далеко не каждый владелец сайта и далеко не каждый сайт готовы в авт...
[videoGallery] Видео галерея YouTube, Vimeo Невозможно установить пакет с подписью: videogallery-1.4.0-beta Ошибка установки Error в /core/packages/videogallery-1.4.0-beta/modCategory/7fc931a7772edc9752c16e9c41eb5e52.reso...
Релиз miniShop2 ver. 4.4.1 & 4.4.2 Подскажите пожалуйста, может я что-то не знаю или упустил. Но есть ли решение по глюку с radio? Указываешь свое radio c одинаковым name и в результате при переключении получаешь вс...
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, сервис-ориентированная архит...
и джаваскрипт можно не трогать, и надежнее.
Хочется попросить Василия что-то подобное таки включить в релиз, полезная штука.
Вариант 2 (через плагин):
Например, как это было, когда движок некорректно обрабатывал запросы в несуществующий контекст в коннекторах. Там еще одна PHP авторизация не помогла бы, так как хакер получал доступ к API через обычные GET запросы к определённому файлу.
Именно поэтому я закрываю для доступа снаружи и админку, и коннекторы, и ядро. Причём, не через потенциально уязвимый движок, а средствами гораздо менее потенциально уязвимого Nginx.
А зачем нужна вот эта инструкция — большой вопрос.