Ich stecke hier ein wenig fest: Ich möchte von einem bestimmten Thema zu einer Kategorie-Route umleiten, so etwas wie:\n\n/t/slug/123 => /c/slug/456\n\nMir ist bewusst, dass die Permalinks im Adminbereich nicht für bestehende Discourse-URLs gedacht sind und dass dies mit etwas benutzerdefiniertem Code geschehen könnte. Hat jemand ein Beispiel, das mich in die richtige Richtung weist?\n\nDanke!
Okay, ich habe eine Lösung zusammengestellt und sie scheint zu funktionieren. Habe ich das richtig gemacht oder mache ich schlimme Dinge? ![]()
<script type="text/discourse-plugin" version="0.8">
// Modify the topic route.
api.modifyClass('route:topic', {
beforeModel( transition ) {
var params = this.paramsFor('topic');
// English
if( params['id'] == 123 ) {
this.router.transitionTo('/c/tutorials/english/29'); // Implicitly aborts the on-going transition.
}
// French
if( params['id'] == 456 ) {
this.router.transitionTo('/c/tutorials/french/30'); // Implicitly aborts the on-going transition.
}
}
});
</script>
Können Sie das nicht mit den Permalinks machen?
Ich habe einen schnellen Test mit der Option „Externe oder relative URL“ durchgeführt (obwohl es vielleicht eine bessere gibt) und es schien in Ordnung zu funktionieren?
Stellen Sie einfach sicher, dass Sie mit einem Benutzer testen, der keine Berechtigung hat, gelöschte Themen/Beiträge anzuzeigen.
Meine Themen werden zwar nicht gelöscht, aber ich brauche sie als Navigationshilfe angepinnt. Ich habe das getestet und Permalinks funktionieren nicht für bestehende URLs, oder?
Ach, nein. Permalinks würden nur funktionieren, wenn das Thema gelöscht wird, andernfalls werden Sie nicht weitergeleitet und landen auf der erfolgreichen URL.
