Come reindirizzare un argomento specifico a una categoria?

Mi sono bloccato un po’ su questo: vorrei reindirizzare da un argomento specifico a un percorso di categoria, qualcosa del tipo:\n\n/t/slug/123 => /c/slug/456\n\nMi rendo conto che i permalink nell’area amministrativa non sono pensati per gli URL di Discourse esistenti e che questo potrebbe essere fatto con del codice personalizzato. Qualcuno ha un esempio che possa indicarmi la giusta direzione?\n\nGrazie!

1 Mi Piace

Ok, ho messo insieme una soluzione e sembra funzionare. L’ho fatto correttamente o sto facendo cose terribili? :see_no_evil:

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

        // Inglese
        if( params['id'] == 123 ) {
          this.router.transitionTo('/c/tutorials/english/29'); // Aborta implicitamente la transizione in corso.
        }
        
        // Francese
        if( params['id'] == 456 ) {
          this.router.transitionTo('/c/tutorials/french/30'); // Aborta implicitamente la transizione in corso.
        }
                
      }
    
    });
</script>
1 Mi Piace

Non puoi farlo con i permalink?

Ho fatto un rapido test usando l’opzione “url esterno o relativo” (anche se potrebbe essercene una migliore), e sembrava funzionare bene?

Assicurati solo di testare con un utente che non ha la possibilità di vedere argomenti/post eliminati.

2 Mi Piace

I miei argomenti non vengono eliminati, ho solo bisogno che vengano bloccati come strumento di navigazione. Ho testato questo e i Permalink non funzionano per gli URL esistenti, vero?

Ah, no. I permalink funzionerebbero solo se l’argomento venisse eliminato, altrimenti non verresti reindirizzato e atterreresti sull’URL corretto.