bartv
(Bart )
13 يونيو 2024، 3:10م
1
أنا عالق قليلاً في هذه المسألة: أود إعادة التوجيه من موضوع معين إلى مسار فئة، شيء مثل هذا:
/t/slug/123 => /c/slug/456
أدرك أن الروابط الدائمة في المسؤول غير مخصصة لعناوين URL الخاصة بـ Discourse الحالية، وأن هذا يمكن القيام به ببعض التعليمات البرمجية المخصصة. هل لدى أي شخص مثال يوجهني في الاتجاه الصحيح؟
شكرا!
إعجاب واحد (1)
bartv
(Bart )
14 يونيو 2024، 2:01م
2
حسنًا، لقد قمت بتجميع حل ويبدو أنه يعمل. هل فعلت هذا بشكل صحيح، أم أنني أفعل أشياء فظيعة؟
<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>
إعجاب واحد (1)
هل لا يمكنك فعل هذا باستخدام الروابط الدائمة؟
لقد أجريت اختبارًا سريعًا باستخدام خيار “عنوان URL خارجي أو نسبي” (على الرغم من أنه قد يكون هناك خيار أفضل)، ويبدو أنه يعمل بشكل جيد؟
فقط تأكد من الاختبار مع مستخدم ليس لديه القدرة على رؤية المواضيع/المشاركات المحذوفة.
إعجابَين (2)
bartv
(Bart )
14 يونيو 2024، 3:47م
4
لكن مواضيعي لم تُحذف، أحتاج فقط إلى تثبيتها كأداة تنقل. لقد اختبرت هذا، والروابط الدائمة لا تعمل مع عناوين URL الموجودة، أليس كذلك؟
آه، لا. لن تعمل الروابط الدائمة إلا إذا تم حذف الموضوع، وإلا فلن يتم إعادة توجيهك وستصل إلى عنوان URL الناجح.