Предстоящие изменения в списке тем — как подготовить темы и плагины

Извините, что вторгаюсь в ваши выходные, Дэвид. Да, я только что увидел API, спасибо.

Привет! Я попробовал использовать трансформатор значений для “topic-list-columns” следующим образом:

export default {
    name: "assignment-topic-list-column-modifier",

    initialize(container) {
        const router = container.lookup("service:router");

        withPluginApi("1.39.0", (api) => {
            api.registerValueTransformer(
                "topic-list-columns",
                ({ value: columns }) => {
                    if (ASSIGN_LIST_ROUTES.includes(router.currentRouteName)) {
                        columns.add("posters-recent", {
                            header: AssignHeaderCell,
                            item: AssignCell,
                            after: "posters",
                        });
                    }
                    return columns;
                }
            );
        });
    },
};

Цель — вставить новый элемент столбца и заголовок после столбца “posters”. Элемент добавляется корректно, но заголовок всё ещё находится не на том месте: он размещается после столбца “activity”.

Чего-то не хватает в моём коде? Есть ли документация, объясняющая, как правильно это сделать?

Есть новое руководство:

Однако в данном случае оно может быть не очень полезным.

@NateDhaliwal спасибо за информацию, я проверю.

Я думаю, код должен выглядеть так:

columns.add(
  "posters-recent", 
  { header: AssignHeaderCell, item: AssignCell }
  { after: "posters"}
});

Возможно, вам также потребуется указать before:

{after: "posters", before: "replies"}

@Arkshine огромное спасибо, твой код работает !!! супер :+1:

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

Мы также опубликовали справочное руководство с указателями на все различные способы настройки нового списка тем:

Я добавил ссылку на него из первого сообщения.

Дэвид, не уверен, предпочитаешь ли ты эту тему или другую, но вот что у меня есть:

Мой новый компонент (как я полагаю, совместимый) не работает, когда параметр «Enable Glimmer Topic List» установлен в режим «Auto»…

Это указывает на то, что новый API не активируется в режиме «Auto»… Нужно ли мне что-то сделать, чтобы указать компоненту темы, что Discourse должен использовать новый Glimmer API в режиме «Auto»?

Я заметил предупреждение здесь:

Но всё ещё ничего не ломается, хотя указанная вами дата уже прошла, и я использую последнюю сборку…?

Всё немного задерживается, но мы надеемся завершить удаление старого кода в течение следующих 1–2 недель.

Значит, это полностью сломает темы, которые еще не обновлены? Стоит ли избегать обновления? Или есть что-то, что мы можем сделать просто, если форкнем тему?

Да, это помешает применению их кастомизаций к списку тем.

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

Похоже, вы уже всё продумали в другой теме :chefs_kiss:

Системы «legacy topic-list» и «raw handlebars» теперь удалены из ядра Discourse. Спасибо всем, кто помог обновить плагины и темы в связи с этим изменением! :rocket:

Это просто потрясающе! Поздравляю команду CDCK, которая работала над этим. :partying_face:

Также спасибо вам и вашей команде за то, что вы очень открыты к предложениям по новым функциям и так тщательно продумали дизайн нового API :heart_eyes:

Я опасался, что мы потеряем часть возможностей. Но на самом деле мы получили гораздо больше, при этом работа с ними стала значительно проще! :rocket:

Что касается сырых шаблонов, правильно ли я понимаю, что использование компонентов в шаблоне с функцией автодополнения больше невозможно (например, эмодзи)?

this.textManipulation.autocomplete({
      template: renderEmojiAutocomplete,

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

Видите ли вы какое-либо решение этой проблемы? (Пытаюсь исправить Emoji Fluff TC)

К сожалению, у нас не было корректного сообщения об устаревании для автозаполнения, извините! Но есть путь вперёд — ознакомьтесь: Autocomplete still using Raw Templates - #4 by david