Как перенаправить конкретную тему в категорию?

Я немного застрял на этом вопросе: я хотел бы перенаправить с конкретной темы на маршрут категории, примерно так:

/t/slug/123 => /c/slug/456

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

Спасибо!

Хорошо, я собрал решение, и оно, кажется, работает. Я всё сделал правильно или творю ужасные вещи? :see_no_evil:

<script type="text/discourse-plugin" version="0.8"> 
    // Изменить маршрут темы.
    api.modifyClass('route:topic', {
    
      beforeModel( transition ) {
        var params = this.paramsFor('topic');

        // Английский
        if( params['id'] == 123 ) {
          this.router.transitionTo('/c/tutorials/english/29'); // Непосредственно прерывает текущий переход.
        }
        
        // Французский
        if( params['id'] == 456 ) {
          this.router.transitionTo('/c/tutorials/french/30'); // Непосредственно прерывает текущий переход.
        }
                
      }
    
    });
</script>

Неужели нельзя сделать это с постоянными ссылками?

Я быстро протестировал вариант «внешний или относительный URL» (хотя, возможно, есть и лучший), и вроде всё сработало нормально?

Просто убедитесь, что вы проверили это с пользователем, у которого нет возможности просматривать удалённые темы/сообщения.

Мои темы не удаляются, мне нужно просто закрепить их как инструмент навигации. Я это проверил, и постоянные ссылки не работают для существующих URL, верно?

Ах, нет. Постоянные ссылки будут работать только в том случае, если тема удалена; в противном случае вы не будете перенаправлены и окажетесь на успешном URL-адресе.