Skip to content

fix(email): экранирование & в ссылке на заказ в письме менеджеру - #465

Merged
biz87 merged 2 commits into
betafrom
fix/issue-451-email-href-amp
Jul 29, 2026
Merged

fix(email): экранирование & в ссылке на заказ в письме менеджеру#465
biz87 merged 2 commits into
betafrom
fix/issue-451-email-href-amp

Conversation

@Ibochkarev

Copy link
Copy Markdown
Member

Описание

В чанке ms3_email_new_manager query string в href содержал литеральные & (&namespace=…&order=…). При отправке письма MODX прогоняет HTML через InlineStyleDOMDocument::loadHTML(), libxml выдаёт htmlParseEntityRef: expecting ';' и засоряет error.log.

Исправление: && в атрибуте href. Добавлен smoke-тест, сканирующий все ms3_email*.tpl на неэкранированные & в quoted href.

Тип изменений

  • Исправление бага (non-breaking change)
  • Новая функциональность (non-breaking change)
  • Breaking change (изменение, ломающее обратную совместимость)
  • Рефакторинг (без изменения функциональности)
  • Документация
  • Другое (опишите):

Связанные Issues

Closes #451

Как это было протестировано?

Локальный CI-гейт (без MODX/MySQL):

cd core/components/minishop3
composer ci:php   # exit 0, 14 smoke tests (в т.ч. EmailChunkHrefAmpersandTest)
php -l tests/EmailChunkHrefAmpersandTest.php   # exit 0
  • Ручное тестирование (оформление заказа + проверка error.log без warnings — рекомендуется на стенде)
  • Автоматические тесты (composer ci:php)
  • Тестирование на разных версиях PHP/MODX

Конфигурация тестирования:

  • MiniShop3: branch fix/issue-451-email-href-amp
  • MODX: n/a (smoke без MODX)
  • PHP: 8.x (локально)

Скриншоты (если применимо)

До После
warnings в error.log при каждой отправке валидный HTML в href, warnings не ожидаются

Чеклист

  • Код соответствует стилю проекта
  • Добавлены/обновлены комментарии в сложных местах
  • Изменения не ломают существующую функциональность
  • Лексиконы добавлены на двух языках (ru/en) — не требуется
  • PHPStan проходит без новых ошибок (локально; в CI пока нет)
  • ESLint проходит без ошибок — Vue не затронут
  • Обновлён CHANGELOG.md — по политике релиза

Дополнительные заметки

@Ibochkarev
Ibochkarev requested a review from biz87 July 28, 2026 05:45
@Ibochkarev Ibochkarev added the bug Something isn't working label Jul 28, 2026
@Ibochkarev
Ibochkarev force-pushed the fix/issue-451-email-href-amp branch from 44651e0 to 3aff468 Compare July 29, 2026 02:05
Unescaped & in ms3_email_new_manager.tpl triggered htmlParseEntityRef
warnings when modPHPMailer inlines CSS via DOMDocument::loadHTML.
@Ibochkarev
Ibochkarev force-pushed the fix/issue-451-email-href-amp branch from 3aff468 to 75de701 Compare July 29, 2026 11:31
@biz87
biz87 merged commit 99e90d8 into beta Jul 29, 2026
3 checks passed
@biz87
biz87 deleted the fix/issue-451-email-href-amp branch July 29, 2026 18:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] PHP warnings htmlParseEntityRef в письме ново­го заказа менеджеру (неэкранированные & в URL)

2 participants