Skip to content

fix(msCart): не глушить вывод при msorder по умолчанию#254

Merged
biz87 merged 1 commit into
betafrom
fix/mscart-msorder-249
May 17, 2026
Merged

fix(msCart): не глушить вывод при msorder по умолчанию#254
biz87 merged 1 commit into
betafrom
fix/mscart-msorder-249

Conversation

@biz87
Copy link
Copy Markdown
Member

@biz87 biz87 commented May 14, 2026

Перенос (с ребейзом) PR #251 от @Ibochkarev — оригинальная ветка в форке автора отставала от `beta` и конфликтовала по `CHANGELOG.md` после мержа PR #245 и PR #253. Сам фикс автора оставлен без изменений, имя нового параметра уточнено при ребейзе (`suppressWhenMsOrder` → `hideOnThanks`) для более ясной семантики.

Что в этом PR

3 файла, +24/−5 поверх актуального `beta`. Один коммит, авторство @Ibochkarev сохранено.

`core/components/minishop3/elements/snippets/ms3_cart.php`

`if (!empty($_GET['msorder'])) return '';` теперь срабатывает только при явном `hideOnThanks=1`. По умолчанию (`false`) корзина грузится как обычно — на странице «спасибо» с `?msorder=...` мини-корзина в общем layout снова показывает реальное состояние корзины (как правило, пустое после успешного оформления).

\$hideRaw = \$modx->getOption('hideOnThanks', \$scriptProperties, false);
\$hideOnThanks = is_bool(\$hideRaw)
    ? \$hideRaw
    : filter_var(\$hideRaw, FILTER_VALIDATE_BOOLEAN);
if (\$hideOnThanks && !empty(\$_GET['msorder'])) {
    return '';
}

Заодно — три места `$scriptProperties['return'] === 'tpl'` заменены на `$return === 'tpl'` (где `$return` уже извлечён через `getOption('return', $scriptProperties, 'tpl')` на строке 51). Так не возникает undefined-key при отсутствии `return` в properties.

`_build/elements/snippets.php`

Регистрация нового параметра сниппета:

'hideOnThanks' => [
    'type' => 'combo-boolean',
    'value' => false,
],

`CHANGELOG.md`

Подпункт `Сниппет msCart` добавлен в существующий блок `## Май 2026 → ### Разработка → #### 🐛 Исправлено` рядом с уже мерженным пунктом про `returnedValues` (#245). Единый стиль раздела сохранён.

Что разрешено при ребейзе

  • Конфликт навигации в `CHANGELOG.md` (строка про «Март 2026») — взят вариант PR с восстановлением ссылки на март.
  • Конфликт блока `## Май 2026` — содержательно объединён: оставлен подраздел `### Разработка → #### 🐛 Исправлено` от PR fix(events): apply returned values after invokeEvent #245, в него добавлен подпункт `Сниппет msCart...`. Исходная заголовочная структура автора (`### [2026-05-09] ...`) переформатирована под единый стиль раздела.
  • Имя параметра `suppressWhenMsOrder` (предложенное автором) переименовано в `hideOnThanks` — короче, привычнее по паттерну `onX`, и явно отражает целевой сценарий (страница «спасибо»). Триггер остаётся прежним — параметр `?msorder=` в URL.

Тип релиза

PATCH. Breaking change честно помечен — для тех, кто полагался на implicit-поведение «msCart молчит при ?msorder=». Миграция документирована (`hideOnThanks=1` для прежнего поведения).

Тестирование

  • PHPStan на трогаемом файле — 0 ошибок.
  • Файл синхронизирован на dev-сайт.
  • Ручная проверка на странице `?msorder=...` — без правок в шаблоне msCart должен теперь показывать корзину; с `hideOnThanks=1` — возвращаться пустая строка как раньше.

Связанные

- Параметр suppressWhenMsOrder (combo-boolean), нормализация через filter_var
- Единая проверка режима return через getOption
- CHANGELOG: миграция для зависимых от старого поведения вызовов
@biz87 biz87 force-pushed the fix/mscart-msorder-249 branch from 55b5ffd to 7e19da8 Compare May 14, 2026 20:22
@Ibochkarev Ibochkarev changed the title fix(msCart): не глушить вывод при msorder по умолчанию (#249) fix(msCart): не глушить вывод при msorder по умолчанию May 17, 2026
@biz87 biz87 merged commit b698351 into beta May 17, 2026
@biz87 biz87 deleted the fix/mscart-msorder-249 branch May 17, 2026 09:22
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] msCart: пустой вывод при msorder в URL ломает мини-корзину в layout

2 participants