Удаление поддержки «переопределений шаблонов» и шаблонов, специфичных для мобильных устройств

Ранее вы могли переопределять .hbs-шаблон для маршрута или компонента Discourse, добавив файл с таким же именем в директорию templates/ вашей темы или плагина. Это было очень мощным инструментом, но также создавало серьёзные проблемы с поддержкой.

Поэтому в последние несколько лет мы рекомендовали избегать переопределения шаблонов и официально устарели их в ноябре 2024 года. В настоящее время лучшим решением является использование Wrapper Plugin Outlets для отображения контента вместо базового содержимого.

В этом месяце (март 2025 года) мы добавим предупреждающий баннер в панели администратора для переопределений шаблонов и планируем полностью убрать поддержку до конца второго квартала.

График

(ориентировочные даты — могут быть изменены)

  • :white_check_mark: Ноябрь 2024 — введение устаревания

  • :white_check_mark: Март 2025 — включение предупреждающего баннера для администратора

  • :white_check_mark: Июнь 2025 — удаление функциональности (цель: неделя с 2 июня)

Обновление тем / плагинов

Разработчикам тем и плагинов следует обратиться к руководству Plugin Outlet, чтобы узнать больше о wrapper plugin outlets. Не стесняйтесь открывать PR или темы в канале Development, если хотите запросить новую точку расширения для вашего случая использования.

Есть ли способ легко узнать, какая тема или плагин вызывает это уведомление в админке? Я просмотрел все свои темы и плагины, но не нашёл в корне их Git-репозиториев ни одного каталога templates/.

Она находится в /assets/javascripts/discourse или в /javascripts/discourse, а не в корне.

В предупреждающем баннере должно отображаться название темы/плагина. Оно также будет выведено в консоли разработчика браузера.

Если этого не происходит, возможно, у нас проблема с устареванием. Не могли бы вы предоставить ссылку на затронутый сайт?

Спасибо. Это не отображалось в баннере предупреждения, но было видно в консоли разработчика, хотя и не очень четко.

Оказалось, что это этот компонент.

Спасибо, @JonahAragon1. Идентификация темы должна быть гораздо понятнее, поэтому я это исправлю :eyes:

Это изменение исправит предупреждающий баннер, чтобы он более четко идентифицировал темы:

Вы нашли решение, чтобы вернуть DDG в качестве предложения поиска? Я пока отключил этот компонент.

Нет, я просто решил полностью отключить форму. Мне кажется, что в моем сообществе ею никто не пользуется, и я не вижу в ней особой пользы. Я видел, что автор компонента предложил обновление, требующее изменения в ядре, поэтому, скорее всего, всё скоро заработает снова.

Значит ли это, что экспериментальная карточка пользователя будет внедрена в ядро до того, как она полностью устареет? Сейчас я получаю это предупреждение для этого компонента GitHub - discourse/experimental-usercard · GitHub

Мы архивировали репозиторий experimental-usercard и не планируем дальнейшее обновление компонента темы. Поэтому, к сожалению, вам потребуется отключить его до блокировки переопределений шаблонов в июне 2025 года.

Мы надеемся, что когда-нибудь сможем внедрить часть экспериментальных функций в основную версию, но конкретных сроков пока нет. Компонент user-card представляет собой сильно кастомизированную часть интерфейса, поэтому внесение в него крупных изменений потребует тщательного планирования и изменений во всей экосистеме.

Мы движемся в соответствии с планом по достижению этой цели, поэтому намерены прекратить поддержку переопределений шаблонов в неделю, начинающуюся 2 июня.

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

(для сведения @RGJ, так как я знаю, что вы размещаете множество форумов на стабильной версии)

Поддержка переопределения шаблонов и шаблонов, специфичных для мобильных устройств, теперь удалена.

У меня тоже теперь появляется эта неконкретная ошибка (просто указывает на тему ‘Default’). Подсказка посмотреть в консоли помогла. Я думаю, что проблема в нашем кастомном CSS, но я недавно взял на себя управление этим форумом, поэтому мне придётся немного покопаться. Когда ожидается, что это сломается, чтобы я мог спланировать время для поиска?

В последней версии ядра Discourse переопределения шаблонов были удалены, поэтому, вероятно, вы используете более старую версию. При следующем обновлении до последней версии переопределение перестанет работать.

В вашем теме по умолчанию, скорее всего, есть что-то вроде <script type="text/x/handlebars">, которое следует удалить.

Хм, интересно. Этот баннер мы начали видеть только после того, как наша команда DevOps обновила версию до 3.4.6. Пользовательное переопределение всё ещё отображается (и вы правы насчёт его расположения и внешнего вида). Возможно, ChatGPT неправильно интерпретирует, что делает это переопределение, я всё ещё разбираюсь во всём этом

Всё исправлено, предупреждение исчезло, стиль сохранён. Ура!