2 минуты назад
Добрый день, может кто поможет на MODX 2.8.8 ставлю ExtraFields все работает все классно, но если делаю тип поля «выпадающей список мультивыбор» из ре...
ExtraFields. Дополнительные поля для ресурса (modResource) и пользователя (modUserProfile). 42
Вчера в 17:36
Заработало! да я по привычке в hook записал, а надо было так:
'filterresources' => [
'snippet' => 'filterresources',
'resul...
Как на SendIt вернуть на страницу результат из сниппета? 4
Вчера в 15:29
Логи сервера смотри. Но скорее всего путь к какому-то обработчику указан неверное в ms2_services
Ошибка 500 при открытии настроек доставки, не даёт сменить класс-обработчик 1
Вчера в 10:29
Спасибо. Вроде получилось, но не могу понять как передать дополнительные поля в CRM и почему-то время не правильное передает, +7 часов.
AmoCRM - снова в строю! 25
09 ноября 2025, 23:05
да, только для импорта данные должны быть указаны в JSON формате
msImportExport 2.0 126
07 ноября 2025, 15:22
Я слабо понял суть вопроса. Подозреваю что этот комментарий дублирует суть вопроса modx.pro/help/25398
Еще раз в этом случае — сниппет Login не раб...
YaSmartCaptcha - защитите ваши формы от спама умной капчей от Яндекс 32
06 ноября 2025, 19:58
Так $this->modx->getChunk() ничего не знает про феном.
$pdoTools = $this->modx->getService('pdoTools');
$pdoTools->getChunk();Так д...
Login и fenom 1
06 ноября 2025, 19:53
Есть системные события, которые позволяют пройти аутентификацию вручную.
Стоит проверить плагины.
Любой пользователь авторизовывается в админке 4
06 ноября 2025, 15:42
Отличная новость, спасибо за ваш труд.
Очень ждём!
Есть один комментарий, смотрю я на скрин Ну и самое интересное. Вот так выглядит обновленная вкла...
MiniShop3 - новости 32
Еще через год-два надоест писать на xPDO, и захочется нормальный Eloquent.
А потом и установку\обновление перенести на Composer + запуск консольных скриптов через Symfony/Console, раз уже используется Phinx.
Давай, Николай! Может, ты заставишь сообщество MODX перейти на современные технологии! У меня с моей mmx-инициативой не взлетело, увы.
Правда, меня не нужно спрашивать, потому что всеми старыми дополнениями управляет сообщество уже года 4 как.
Но они не пишут мне код, я больше с ними советуюсь, как с резиновыми уточками. Например спрашиваю, какое ПО подойдёт для решения задачи, то есть использую как поисковик. Недавно вот понадобилось развернуть прокси для запросов в Youtube — узнал про tinyproxy, отлично работает.
Ну или надо было разробраться как работать с API Телеграм через tdlib, а это вовсе не то же самое, что Bot API. Готовых примеров для PHP я просто не нашёл, и вот здесь нейросети меня здорово выручили своими подсказками.
Что интересно, они генерировали нерабочий код, точнее код, который уже не работал с текущей версией tdlib, потому что использовал устаревшие методы. Но мне этого хватило написать свою, рабочую версию, по их примерам.
Так что да, я согласен, что нейросети разработчиков не заменят, но уже стали отличным инструментом и помощником. В том же PhpStorm неплохо прокачали автодополнение кода, например.
Скопирую сюда его текст для удобства:
Я еще в прошлом году от скуки сделал composer-версию, в которой перелопатил классы и добавил инсталлятор — но интереса никто не проявил.
Думаю, выхода miniShop 3 можно уже и не ждать. Да и просто выйти — это только половина дела, его нужно поддерживать и дорабатывать, а желающих давно нет.
Но на высоконагруженных проектах столкнулся с проблемой, что когда юзер создаёт новый коммент с картинкой, а другие видят это через вебсокеты, то сразу генерируют сотни запросов на конвертацию. Так как нет никакого механизма ограничения конкурентных запросов при холодном кэше, мы получим или кучу 500-х ошибок, или подвисший сервер.
Решаю это добавлением Varnish для запросов на картинки — он пропускает только 1 запрос на конвертацию, а всем остальным в очереди раздаёт уже результат из кэша.
Смысл же в том, чтобы сравнить свои файлы с эталонными на предмет изменений. Файлы ядра меняться не должны.
В идеале вообще автоматизировать и качать всё новое бесплатное из репозитория MODX / modstore, распаковывать и забивать в БД:
— название: MODX или дополнение
— версия дистрибутива
— путь к файлу
— sha1 хэш файла
Подкидываю альтернативную идею, если интересно — проверять версию MODX (или брать из настроек), скачивать соответствующий дистрибутив, и проверять хэши файлов сайта по файлам дистрибутива.
То есть, берём оригинальные файлы index.php в connectors, manager и корне, а так же файлы из core — и проверяем, чтобы все они присутствовали на сайте с оригинальным хэшем.
Если все основные файлы не изменены, то сайт не заражён и должен работать корректно.
Правда, есть еще возможность заражения только файлов дополнений, без ядра. Наверное, можно и их сверять с дистрибутивами из репозитория по той же логике — скачать нужную версию и сравнить хэши…
Кстати, вот вам еще идея — создать онлайн базу для проверки хэшей файлов MODX и дополнений через API. Чтобы простые GET запросы, типа /api/hash/modx/2.8.1/core/model/modx.class.php возвращали sha1 хэш запрошенного файла или 404.
Конечно, это не спасёт от уже залитых шеллов и вредоносов, но они не будут запускаться через сайт. А если запустятся и что-то изменят, то следующая проверка это покажет. И если раз за разом файлы будут меняться — то можно уже более внимательно искать, что там такое у вас залито.
Это чисто proof of concept, для реальной работы не предназначено, просто доказательство возможности такой работы.
Никого ни к чему не призываю, просто для информации.
Но в некоторых mmx-приложениях используется vesp/core для работы API, а у него внутри slim/slim — так что за фреймворками далеко ходить не надо, всё уже под рукой.
После работы с ним к xPDO возвращаться нет никакого желания. Да и смысла нет.
Всё, чему ты научишься в xPDO за пределами MODX никому не надо. Eloquent для разработчика гораздо полезнее.
Есть же заготовка — просто используй.
А я использую в production образы и хост одной и той же системы — Ubuntu (Debian), поэтому всё работает от одного юзера www-data. А на локальной MacOS проблемы с правами и вовсе нет.
Скорее всего, MODX просто не может создать директорию с кэшем из-за прав, да.
Спасибо на добром слове, планирую продолжать!
Обновляйся на версию 1.2.1
Судя по коду ты их просто положил в namespace MODX, так что да, так тоже работает.
Дело в том, что при переходе в addModifier здесь, мы попадём в фасад, а не в класс \Fenom, где этот метод и объявлен:
И это жутко бесит, когда пытаешь проследить логику работы.
Уж лучше вызывать нормально класс и подписывать его комментарием, зато никаких проблем с навигацией через IDE.
По моему, это гораздо проще и удобнее, чем городить фасады.
Но, в любом случае, спасибо за заметку. Кому-то, может, такое наоборот удобнее.
Ничего удалять не надо, просто добавляешь разрешение менять версии уже установленных пакетов ключом -W, что означает --with-all-dependencies.
Это не ошибка, там нет никаких ошибок. Он просто не может разрешить зависимость автоматически и просит тебя указать ему явно разрешение: