Comment rediriger un sujet spécifique vers une catégorie ?

Je suis un peu bloqué sur celui-ci : j’aimerais rediriger d’un sujet spécifique vers une route de catégorie, quelque chose comme ceci :

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

Je réalise que les permaliens dans l’administration ne sont pas destinés aux URL Discourse existantes, et que cela pourrait être fait avec du code personnalisé. Quelqu’un a-t-il un exemple pour m’orienter dans la bonne direction ?

Merci !

Ok, j’ai bricolé une solution et elle semble fonctionner. Ai-je bien fait, ou fais-je des choses terribles ? :see_no_evil:

<script type="text/discourse-plugin" version="0.8"> 
    // Modifier la route du sujet. 
    api.modifyClass('route:topic', {
    
      beforeModel( transition ) {
        var params = this.paramsFor('topic');

        // Anglais
        if( params['id'] == 123 ) {
          this.router.transitionTo('/c/tutorials/english/29'); // Avorte implicitement la transition en cours.
        }
        
        // Français
        if( params['id'] == 456 ) {
          this.router.transitionTo('/c/tutorials/french/30'); // Avorte implicitement la transition en cours.
        }
                
      }
    
    });
</script>

Pouvez-vous ne pas faire cela avec les permaliens ?

J’ai fait un test rapide en utilisant l’option « URL externe ou relative » (bien qu’il puisse y en avoir une meilleure), et cela a semblé fonctionner correctement ?

Assurez-vous simplement de tester avec un utilisateur qui n’a pas la capacité de voir les sujets/messages supprimés.

Mes sujets ne sont pas supprimés, j’ai juste besoin qu’ils soient épinglés comme outil de navigation. J’ai testé cela et les Permalinks ne fonctionnent pas pour les URL existantes, n’est-ce pas ?

Ah, non. Les permaliens ne fonctionneraient que si le sujet est supprimé, sinon vous ne serez pas redirigé et atterrirez sur l’URL de succès.