3 часа назад
Вы намекаете, чтобы я написал подобный компонент для второй ветки 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
Более того, при создании нового заказа юзер может выбирать адрес доставки из уже оформленных (чтобы не заполнять каждый раз вручную). Не уверен, что это есть из коробки, но на каких-то проектах я выбор адреса из списка точно делал.
С моей стороны, наоборот, удалять адрес при удалении заказа — это спорное решение.
Либо через mod_proxy, либо через mod_rewrite.
А если сайтов 2 или более — то нужен Nginx или Apache2, которые будут разруливать запросы.
Очевидно, что на публичных хостингах тебе просто придётся работать с одним из них.
Тут вот люди даже Hello World пока не могут вывести, а потом начнутся вопросы про реактивность, асинхронность и Vuex.
Для того, чтобы это стало простым и клёвым, нужно взойти на определённую высоту. После этого — да, оно всё просто. А вот MODX и WP наоборот кажутся очень сложными и неудобными, вот такой парадокс.
Насчёт ассемблера… Ну как покажешь веб-сайт на ассемблере, тогда и продолжим сравнения.
На MODX и WP можно пилить сайты вообще без знаний, просто кликая мышкой. А Nuxt и прочее Node.js это уже для серьёзных специалистов.
Придётся учиться, но оно того стоит.
Сам Nginx умеет отдавать только статичные файлы, а обработку php он передаёт другому процессу. Как правило, это php-fpm, который непрерывно крутится в памяти сервера. И для запуска нового сайта на хостинге этот процесс нужно перезапускать.
Разница лишь в том, что сервер php запускает ваш хостер. А сервер node.js нужно запускать самому. Но это говорит лишь о неразвитости хостинга для node. Я могу себе представить с будущем хостинги для node, где всё будет настроено так же удобно, как сегодня для php.
Ровно так же Nginx может отдавать обработку запроса в ruby, python, go, опять же в node.js и еще много куда. Сам Nginx этого ничего не умеет, потому что он reverse-proxy server.
Для справки, Apache2 работу с php тоже сам по себе не поддерживает, он это делает через встроенный модуль mod_php, который может быть и отключен.
Работа с БД не зависит от вида сервера — он просто будет выполнять ваш код.
Смысл в том, что после разбора внутреннего тега [[+id]] получается новый тег, например [[~9]], а он уже превращается в ссылку на документ с id = 9.
То есть, нужно парсить этот тег минимум 2 раза — это и есть рекурсия. Так весь MODX и работает, это его чуть ли не основная фишка.
Ну а замена простых плейхолдеров… Самый главный архитектор системы об этом давно знает и ничего менять не хочет.
Хочешь исправить — ставь pdoTools и пользуйся, для того расширения и нужны.
Ты даже кода чанков не привёл, тупо итоговые цифры и заявление, что разницы нет.
Если ты эти тесты проводил на одном сайте, и парсер pdoTools был включен — то поздравляю, ты уже пользовался оптимизациями, потому что pdoParser разбирает простые плейсхолдеры сам, без modTag.
Я прямо сейчас создал 2 сайта на modhost.pro. На один установил pdoTools, а на другой нет.
Тестовый сниппет:
Простейший чанк:
Обрати внимание, что чанк без Fenom, чисто синтаксис MODX.
Смотрим на 10000 проходов, чтобы разницу было хорошо видно:
— MODX без pdoTools — 1.3216 сек (самый быстрый результат, что удалось увидеть)
— MODX c установленным pdoTools — 0.0557 (самый тормозной результат, было и 0.0156).
Внимание, pdoTools просто установлен, и работает по умолчанию. Никаких специальных оптимизаций.Теперь понятно, что парсер MODX без pdoTools просто тормозное говно и твои тесты ни о чём?
Updated 26.04.2022
Попробовал повторить тест еще раз и не смог — оказалось, что я допустил ошибку. Если сниппет использует $modx->getChunk(), то разницы в скорости не будет, потому что pdoParser тогда не работает.
Сниппет должен использовать $modx->getService('pdoTools')->getChunk('test', $data);, тогда всё быстро.
Всё проверил еще раз и накатал новую заметку с результатами.
Как справится парсер MODX с выводом такой ветки комментариев, если он каждый тэг и условие будет превращать в modTag и запускать его parse?
PHP шаблонизатор всё еще только про удобство, а не скорость?
Выводится без кэша, потому что комментарии отличаются для каждого юзера. Админу выводятся удалённые, автору подсвечиваются его ответы и т.д.
Попробуйте это повторить на парсере MODX. Не думаю, что вывод комментариев на сайте это прям такая уж редкая задача.
Правда, народ на запрещённом сайте тоже недоумевает
Это сняло бы массу проблем с расположением файлов, переездом рабочих сайтов и разработкой дополнений. Тем более, что домен для него давно куплен и ждёт своего часа — minishop3.com
Но тут сразу второй вопорос — каждое дополнение будет устанавливать собственную такую таблицу? Или они все должны использовать какую-то общую? Если общую — как дополнениям об этом договориться, требовать какую-то зависимость, типа нового дополнения AjaxSettingsDB?
И если у вызова сниппета будет какой-то уникальный параметр, типа id юзера, то количество записей в такой БД будет ровно тем же, что и у таблицы сессий. Еще встаёт вопрос еще об очистке этой таблицы — сколько дней хранить в ней настройки?
Но, повторюсь, этот вариант мне нравится и в былые времена я мог бы переписать свои дополнения на хранение настроек в одной общей таблице. Кто сейчас это будет делать — вопрос.
В репозитории та же версия, что и на modstore.
Архивация репозитория означает, что лично я им заниматься не буду, только и всего.