Skip to content

feat(api): лексикон для сообщений CategoryProductsController - #467

Open
Ibochkarev wants to merge 2 commits into
betafrom
fix/issue-446
Open

feat(api): лексикон для сообщений CategoryProductsController#467
Ibochkarev wants to merge 2 commits into
betafrom
fix/issue-446

Conversation

@Ibochkarev

Copy link
Copy Markdown
Member

Описание

Сообщения об ошибках и успехе в CategoryProductsController и CategoryProductActionPermissions переведены на ключи minishop3:default (ru + en). Vue Manager показывает error.message из API в toast — при cultureKey = ru пользователь видит локализованный текст вместо захардкоженного английского.

Добавлены lexiconMessageOrKey() / errorResponse() по образцу OrdersController. Permissions-сервис возвращает lexicon-ключи в поле message; контроллер резолвит их через MODX lexicon (в т.ч. [[+permission]], [[+count]]).

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

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

Связанные Issues

Closes #446

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

cd core/components/minishop3
composer ci:php   # exit 0, 14 smoke tests
php -l src/Controllers/Api/Manager/CategoryProductsController.php   # exit 0
  • Ручное тестирование (bulk delete без category id → toast «Не указан ID категории»)
  • Автоматические тесты
  • Тестирование на разных версиях PHP/MODX

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

  • MiniShop3: branch fix/issue-446
  • MODX: n/a (smoke без MODX runtime)
  • PHP: 8.2+

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

До После
Category ID is required Не указан ID категории (ru)

Чеклист

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

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

  • Ключи успеха publish: ms3_category_product_published / _unpublished (избегаем коллизии с ms3_product_published в product.inc.php).
  • 403 на уровне route middleware (PermissionMiddleware) — отдельный follow-up, там по-прежнему EN.
  • Общий trait lexiconMessageOrKey для Manager API — follow-up (сейчас дублирует паттерн OrdersController).

@Ibochkarev
Ibochkarev requested a review from biz87 July 28, 2026 05:55
@Ibochkarev Ibochkarev added the enhancement New feature or request label Jul 28, 2026
Replace hardcoded English error/success strings with minishop3:default
lexicon keys so manager toasts follow MODX cultureKey (ru/en).
Constructor now calls lexicon->load(); ModxStub lacked the property, which broke CategoryProductsControllerScopeTest.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] Лексикон для ошибок CategoryProductsController (Manager API)

1 participant