4 часа назад
Пока ни один в теме не сказал, что у него сайт заразился на каком-то другом хостинге в эти дни.
У меня на поддержке больше 5 сайтов с разными версиям...
Вирусы майнеры 30
4 часа назад
Да, конечно. Разве что кроме архива core.transport.zip.
Смысл же в том, чтобы сравнить свои файлы с эталонными на предмет изменений. Файлы ядра мен...
Проверка на новые файлы с уведомлением в телегу 8
5 часов назад
Да, ещё добавлю момент важный, с которым я столкнулся в самом начале, после установки модуля. В системных настройках MiniShop3 есть параметр ms3_front...
[MiniShop3] - Новости, Планы 30
Вчера в 08:49
Бинго!
Так-то я знаю, что в leftJoin указываются соответствия строк таблиц, но что после объявления псевдонима дальше используется только он — это я ...
addPackage() и leftJoin 4
20 мая 2025, 22:04
я сегодня уже после того как столкнулся с ошибкой обновил до актуальных ModX c 3.0.6 и Formit тоже версия была 2024 года
YaSmartCaptcha - защитите ваши формы от спама умной капчей от Яндекс 25
19 мая 2025, 20:45
Как ни удивительно — но все ж добавил поле), смотрите свежий релиз
FileMan - прикрепление файлов к ресурсам для MODX 3 65
19 мая 2025, 16:30
Ну так это будет для любого пакета работать. На видео же для MiniShop3 тоже показано
MetaStorm 2
16 мая 2025, 14:59
Здравствуйте. А с т-банк этот компонент пойдет?
[mspTinkoff] - метод оплаты Tinkoff MiniShop2 33
16 мая 2025, 10:34
Жаль, что редко стал заходить на форум и не успел поставить лайк и поблагодарить. Отличные уроки!
pbStudio: Чистый контроллер или FetchIt — два способа обработки форм 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.
Это не ошибка, там нет никаких ошибок. Он просто не может разрешить зависимость автоматически и просит тебя указать ему явно разрешение:
Просто потому, что можно или 1ю, или 2ю. Никаких особых требований нет, поэтому Composer выбрал версию 2.
Затем ты требуешь установить mmx/fenom — и тебе говорят, что для этого надо изменить зафиксированную версию psr/container.
Как это сделать тебе говорят чуть ниже:
Просто разреши даунгрейднуть версию ключом:
Всё устанавливается, только что проверил на modhost.pro
Получается 3 простых выборки, без join.
Сначала выбирается ресурс, потом значения его ТВ из нужной категории, а затем добираются основные свойства этих ТВ.
Eloquent собирает все данные вложенными массивами в итоговый результат:
Дальше можно перебирать результат на Fenom со всеми проверками на пустоту и прочее.
и всё должно работать.