Мы создали плагин, переопределяющий плагинный выход post-event-builder: для каждого события, создаваемого на нашем инстансе, необходимо заполнить пользовательские поля, а наша форма дополняет предложенные значения данными из внешнего источника.
Мы используем только версии Discourse с поддержкой ESR, поэтому всё работало без проблем в 2026.1.x. Сейчас я занимаюсь обновлением до 2026.7.x и знакомлюсь с новой формой и её расширенной версией.
Поскольку нашим пользователям необходимо заполнять все пользовательские поля, мы хотели бы использовать «расширенную» форму вместо компактной, без возможности переключения между формами.
Сначала я думал о том, чтобы добавить один параметр сайта для использования расширенной формы по умолчанию (и отключить возможность переключения на компактную, так как всё и так находится в расширенной форме), либо о двух параметрах (использовать расширенную форму по умолчанию и запретить переключение форм). Плагинный выход для замены компактной формы тоже мог бы подойти, если бы он включал переключатель на расширенную форму, чтобы мы могли от него избавиться.
Новое поведение действительно блокирует нас в процессе обновления, и мы не можем оставаться на старой, не поддерживаемой версии 2026.1.x.
Если я создам PR с новым плагинным выходом, есть ли шанс, что он будет принят и обратным портом добавлен в следующую версию 2026.7.x? Или нам нужно найти другой способ исправить эту блокирующую проблему?
Я добавил новый выход плагина (plugin outlet) для переопределения формы «compact» по умолчанию, но я не очень доволен этим изменением.
Кнопку для доступа к форме «advanced» нельзя переопределить с помощью выхода плагина, а «редактируемое предпросмотр» в редакторе по-прежнему использует «режим compact», что может не сочетаться с переопределенной формой (как минимум, в нашем случае).
Я начинаю думать, что более элегантным решением было бы добавить опцию в админке плагина для выбора поведения формы. Я вижу как минимум 2 варианта:
default_editor: выбрать «compact» (по умолчанию) или «advanced»
Если это так, то в компоненте PostEventBuilder я бы создал value transformer для initialScreen, геттер, который читает this.args.model.initialScreen, а затем переопределяет его с помощью value transformer. Таким образом, ты всегда будешь устанавливать значение initialScreen как advanced через value transformer.
Буду рад проверить PR в core от тебя по value transformer, полагаю, у тебя уже есть пользовательская тема, к которой можно это прицепить.
Я не могу прикрепить скриншоты, поэтому постараюсь описать текущее поведение и то, чего я хочу достичь
При использовании Markdown-редактора:
если предпросмотр включен, форма события отображается в окне предпросмотра (без обертки post-event-builder) с кнопкой в правом верхнем углу предпросмотра для переключения в расширенный режим;
если предпросмотр отключен, форма события открывается во всплывающем окне (модальном окне), обернутая в post-event-builder (тот вариант использования, который вы упомянули), с кнопкой в нижней части модального окна для переключения в расширенный режим.
При использовании редактора с форматированием текста форма события встроена в форму сообщения; похоже, что это тот же блок, который используется в предпросмотре.
Мне нужно, чтобы использовался только один редактор — наш.
Поскольку плагин входит в состав ядра, я понимаю, что любые изменения повлияют на всех, кто использует этот плагин, поэтому изменения должны быть минимальными.
Я пока не достаточно хорошо владею EmberJS, чтобы понимать, как всё взаимосвязано, поэтому любые изменения занимают много времени, и я часто получаю рабочий результат, но вижу, что возможно, есть другой, более чистый способ реализовать это.
Возможно, последний подход с добавлением новых параметров в админ-панель избыточен, и я просто не смог найти тот самый™ компонент, в который нужно добавить outlet для плагина, чтобы всё изменилось…
Вы правы, это не было проблемой с правами. У меня есть расширение, блокирующее рефереры, и оно плохо работает с AWS
Редактор Markdown + предпросмотр: форма события встроена в предпросмотр (значок шестеренки открывает модальное окно с «расширенным» редактором событий)
Редактор Markdown, без предпросмотра: форма события находится в модальном окне, кнопка переключения редакторов расположена в нижней части модального окна
Редактор с форматированием текста (Rich text): форма события встроена в редактор (значок шестеренки открывает модальное окно с «расширенным» редактором событий)