У меня та же проблема, и она затрагивает больше плагинов, например Locations и Private Topics. Сообщение «У вас есть несохранённые изменения» с опцией сохранения просто не появляется. Даже при изменении чего-либо другого настройки не сохраняются.
Возможно, это стоит перенести в Development, так как официальные плагины, похоже, не страдают от этого, но с другой стороны, проблема возникла после обновления Discourse. Это также затрагивает два официальных плагина (calendar и restricted replies).
Хм, да, это именно проблема FormKit, когда включена настройка enable_simplified_category_creation. Плагинам потребуется мигрировать на использование FormKit и новой структуры данных.
Рабочий пример этого реализован в одном из наших основных плагинов, миграция которого описана здесь:
Вы можете увидеть, как структура формы ветвится с помощью {{#if this.siteSettings.enable_simplified_category_creation}} и как форма построена с использованием FormKit и данных из @outletArgs.form. Старая структура формы остаётся после {{else}} для поддержки устаревших версий.
Обычно я довольно спокоен, когда нужно обновлять плагины из-за изменений в ядре, и доволен тем, как разработчики получают инструкции, но, на мой взгляд, команда Discourse действительно подвела в этом случае.
Не было никакого объявления (по крайней мере, я не могу его найти, и @moin ещё не указал на это мне )
Не было предпринято никакой попытки смягчить ситуацию с помощью универсального кода в ядре
Даже нет предупреждения в консоли разработчика браузера
Просто всё перестало работать.
Быстрый обзор, вероятно, даже не полный, показывает, что это сломало ХОТЯ БЫ следующие плагины:
Верно! Мы должны были предупредить об этом изменении по мере его продвижения через наш раздел «Предстоящие изменения» — для нас это новый процесс, и мы всё исправим. На данный момент параметр enabled_simplified_category_creation можно отключить в разделе /admin/config/upcoming-changes, чтобы восстановить весь существующий функционал плагина.
Вы должны были получить уведомления об этом изменении как в момент его появления на вашем сайте, так и при его автоматическом включении, что, скорее всего, произошло только на этой неделе, когда изменение было переведено в статус Stable.
Как сказал Крис, смягчение — это грядущее изменение в ядре, которое даст вам время на миграцию:
Что ещё могло бы помочь вам в этом случае? Мы могли бы добавить дополнительные детали в связанную тему о грядущем изменении, объяснив, что разработчикам нужно сделать для подготовки.
Что касается предупреждений для разработчиков, я могу проконсультироваться с командой dev-xp, чтобы понять, можем ли мы в следующий раз сделать что-то лучше.
Но на тот момент изменение с плавающей кнопкой сохранения ещё не было внедрено (это было в конце февраля, насколько я помню). В этой теме или где-либо ещё не было дополнительного обновления, отражающего эти изменения.
временное автоматическое переключение на старую логику (как это было сделано для списка тем: при наличии устаревшего кода плагина система автоматически возвращалась к старому поведению)
временный код отката, сохраняющий устаревшую функциональность (обнаружение полей ввода вне форм и включение их в настройки, которые нужно сохранить). Это также могло бы избавить вас от необходимости добавлять все эти ветви {{#if this.siteSettings.enable_simplified_category_creation}}.
предупреждения в консоли разработчика браузера при обнаружении устаревшего кода
статическое сканирование известных плагинов, как я сделал выше (у меня ушло 10 минут, и я даже нашёл некоторые официальные плагины, которые были упущены )