¿Cómo redirigir un tema específico a una categoría?

Estoy un poco atascado con esto: me gustaría redirigir de un tema específico a una ruta de categoría, algo como esto:

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

Me doy cuenta de que los permalinks en el administrador no están pensados para las URL de Discourse existentes, y que esto podría hacerse con algo de código personalizado. ¿Alguien tiene un ejemplo para orientarme?

¡Gracias!

1 me gusta

Ok, he reunido una solución y parece que funciona. ¿Lo hice correctamente o estoy haciendo cosas terribles? :see_no_evil:

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

        // Inglés
        if( params['id'] == 123 ) {
          this.router.transitionTo('/c/tutorials/english/29'); // Aborta implícitamente la transición en curso.
        }
        
        // Francés
        if( params['id'] == 456 ) {
          this.router.transitionTo('/c/tutorials/french/30'); // Aborta implícitamente la transición en curso.
        }
                
      }
    
    });
</script>
1 me gusta

¿No puedes hacer esto con los permalinks?

Hice una prueba rápida usando la opción ‘url externa o relativa’ (aunque puede haber una mejor), y pareció funcionar bien.

Solo asegúrate de probar con un usuario que no tenga la capacidad de ver temas/publicaciones eliminadas.

2 Me gusta

Mis temas no se eliminan, solo necesito que se fijen como herramienta de navegación. Probé esto y los Permalinks no funcionan para URLs existentes, ¿verdad?

Ah, no. Los permalinks solo funcionarían si el tema se elimina, de lo contrario, no serás redirigido y aterrizarás en la URL correcta.