Skip to content

fix(currency): символ рубля вместо "?" в ms3Config - #498

Open
Ibochkarev wants to merge 1 commit into
betafrom
fix/issue-497-currency-symbol
Open

fix(currency): символ рубля вместо "?" в ms3Config#498
Ibochkarev wants to merge 1 commit into
betafrom
fix/issue-497-currency-symbol

Conversation

@Ibochkarev

Copy link
Copy Markdown
Member

Описание

При дефолтной установке ms3_currency_symbol иногда оказывается ASCII ? (mojibake). Витрина читает настройку как есть, поэтому ms3Config.currencySymbol тоже ?.

Фикс в трёх местах: ASCII-safe \u{20BD} в transport default, нормализация ? в Format (и через него в ms3Config), Phinx-миграция для уже установленных сайтов.

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

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

Связанные Issues

Closes #497

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

cd core/components/minishop3
php -l src/Utils/Format.php src/MiniShop3.php migrations/20260801190000_repair_currency_symbol_mojibake.php tests/Unit/Utils/NormalizeCurrencySymbolTest.php
# exit 0

./vendor/bin/phpunit tests/Unit/Utils/NormalizeCurrencySymbolTest.php
# OK (7 tests, 8 assertions), exit 0

./vendor/bin/phpunit
# OK (111 tests, 188 assertions), exit 0

php -r '$s=include "_build/elements/settings.php"; exit($s["ms3_currency_symbol"]["value"]==="\u{20BD}"?0:1);'
# exit 0
  • Ручное тестирование
  • Автоматические тесты (composer test / PHPUnit)
  • Тестирование на разных версиях PHP/MODX

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

  • MiniShop3: branch fix/issue-497-currency-symbol
  • MODX: n/a (unit)
  • PHP: 8.4.17

Чеклист

  • Код соответствует стилю проекта
  • Добавлены/обновлены комментарии в сложных местах
  • Изменения не ломают существующую функциональность
  • Лексиконы добавлены на двух языках (ru/en) — не требовались
  • PHPStan проходит без новых ошибок (composer stan / CI job PHPStan)
  • ESLint проходит без ошибок (npm run lint:ci для Vue) — n/a
  • Обновлён CHANGELOG.md (для значимых изменений) — на релизе

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

  • После upgrade + Phinx поле в менеджере MODX тоже станет . До миграции витрина уже показывает рубль за счёт runtime-normalize.
  • Намеренный символ валюты ? больше не поддерживается (trade-off под [Bug] ms3Config выводит - "currencySymbol":"?" #497).

@Ibochkarev Ibochkarev added the bug Something isn't working label Aug 1, 2026
@Ibochkarev
Ibochkarev requested a review from biz87 August 1, 2026 13:39
Use ASCII-safe U+20BD in transport defaults, normalize "?" at read time
for ms3Config/Format, and migrate existing broken system settings.
@Ibochkarev
Ibochkarev force-pushed the fix/issue-497-currency-symbol branch from ed9c112 to c785aef Compare August 2, 2026 02:29
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] ms3Config выводит - "currencySymbol":"?"

1 participant