35 минут назад
Вы намекаете, чтобы я написал подобный компонент для второй ветки MODX? ))
К сожалению я не смогу этого сделать, времени нет на такое, да и модерацию...
Gallery3x - 3.0.19 теперь поддерживает видеогалереи 2
Вчера в 16:12
Подтверждаю, выводит к сожалению не все строки
Закономерность отловить не получается.
Но у меня показывает типа «Строк 10, Показано 1-6 из 7»
И в к...
settingsWidget - настройки в панели управления 22
Вчера в 05:54
Я сделал вот такой скрипт, который можно повесить на cron или запускать вручную при необходимости. Суть в том, что он проходит по всему сайту, генерир...
Подскажите, как с помощью StercSeoSiteMap создать карту со ссылками на друге карты ? 1
01 ноября 2025, 10:54
Каждое предработное утро я начинаю с чтение новостей. И первым всегда идёт MODX.pro.
От такого дайджеста на меня костюм-тройка чуть сам не налез, б...
Дайджест форума за октябрь 2025 глазами DeepSeek 4
01 ноября 2025, 10:49
Собственно переговоры прошли успешно, в понедельник передаст мне компонент, к концу месяца будет работать.
[CDEKIntegrate] Отправка заказов напрямую в CDEK 18
30 октября 2025, 19:01
Два дня проковырялся, пытаясь сделать по этому конфигу.
Один сайт сразу завелся, остальные вместо перехода на страницу редиректят на главную — чудо н...
Настройка конфигурации NGINX + PHP-FPM 7.4 на Ubuntu 22.04 + Fastpanel для MODX 2.8.7 13
30 октября 2025, 17:34
да да, могу пообедать?
Modx 2.8.8 + minishop 2 какая версия php поддерживается? 13
28 октября 2025, 22:14
Сам себе отвечу: так как FormIt умеет только прикреплять файл к письму, для чего он файл грузит во временную директорию, надо отдельным хуком переноси...
GoogleSheets. Компонент для работы с Google таблицами. 27
Еще через год-два надоест писать на 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.
Это не ошибка, там нет никаких ошибок. Он просто не может разрешить зависимость автоматически и просит тебя указать ему явно разрешение: