Skip to content

fix(manager): опции — дерево категорий при вложенном каталоге#239

Open
Ibochkarev wants to merge 1 commit into
betafrom
fix/237-options-category-tree-root
Open

fix(manager): опции — дерево категорий при вложенном каталоге#239
Ibochkarev wants to merge 1 commit into
betafrom
fix/237-options-category-tree-root

Conversation

@Ibochkarev
Copy link
Copy Markdown
Member

Описание

Исправлено пустое дерево категорий в UI привязки опций при GET /api/mgr/options/tree?parent=0, если ни одна msCategory не является прямым потомком корня сайта (типичный каталог под промежуточным контейнером).

Добавлена системная настройка ms3_option_category_tree_parent: при запросе с parent = 0 бэкенд подставляет заданный ID ресурса-родителя в условие выборки. Ленивая подгрузка дочерних узлов по реальным id не меняется.

В ms3.config (страница настроек MiniShop3 и обновление категории) передаётся optionCategoryTreeParent; Vue-компоненты OptionsGrid и CategoryOptionsTab передают его в OptionCategoryTree как rootParent (согласованность UI и API; старый бандл всё равно работает за счёт подстановки на API).

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

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

Связанные Issues

Fixes #237

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

  • Ручное тестирование (рекомендуется: структура с категориями только под контейнером + регрессия с msCategory под parent = 0)
  • Автоматические тесты (PHPStan, ESLint)
  • Тестирование на разных версиях PHP/MODX

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

  • MiniShop3: текущая ветка
  • MODX: 3.x (менеджер API)
  • PHP: 8.x

ESLint: npm run lint в каталоге vueManager.

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

До После

Чеклист

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

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

Альтернатива — только фронт с подстановкой родителя: хуже, т.к. прямые вызовы API (например из CategoryOptionsTab) остались бы с parent: 0. Текущий вариант держит контракт «0 = настраиваемый корень дерева опций» на бэкенде.

После обновления пакета на существующей установке настройку можно создать вручную в системных настройках MODX, если она не подтянулась из транспорта.

Add ms3_option_category_tree_parent setting and resolve parent=0 in OptionsController::getTree. Expose optionCategoryTreeParent in ms3.config; Vue passes rootParent. CHANGELOG + ru/en lexicons.
@Ibochkarev Ibochkarev requested a review from biz87 May 8, 2026 04:02
@Ibochkarev Ibochkarev changed the title fix(manager): опции — дерево категорий при вложенном каталоге (#237) fix(manager): опции — дерево категорий при вложенном каталоге May 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] Пустое дерево категорий в UI привязки опций при parent=0 (getTree)

1 participant