الطريقة الأخرى كانت عبر تثبيت Custom Top Navigation Links. سمحت لي بإضافة روابط تنقل في القائمة العلوية، لكن المسار “/” (الجذر) ما زال يعرض قائمة “الأحدث”.
الطريقة الثالثة كانت عبر التعديل على ملف “discourse/app/routes/app-route-map.js” حيث تُعرَّف “الفلاتر”. لكن هذا أيضًا لم ينجح.
this.route("discovery", { path: "/", resetNamespace: true }, function () {
هدفي:
تغيير قائمة المواضيع التي تظهر عند زيارة “http://localhost:3000/” من “الأحدث” إلى “المتابعة”، وهو أمر ممكن بفضل Discourse Follow. وبما أن مسار “/following” موجود بالفعل ويعمل، أردت أن يتم تنفيذ هذا المسار عند زيارة “/”.
لم ينجح الأمر. اعتقدت أنه مع هذه التغييرات سيكون من الممكن اختيار إعدادات الموقع “القائمة العلوية”. لذا، إذا كان “latest” مطلوبًا، سأضع “following” - “latest” بالتسلسل، وبهذه الطريقة سيتم إعادة توجيه الصفحة الرئيسية إلى “following”.
وجدت طريقة أثناء التطوير من
import { setDefaultHomepage } from 'discourse/lib/utilities';
لذلك، في مكوناتي، في البداية وضعت:
setDefaultHomepage("following");
لأنه في وحدة تحكم Rails، وجدت متغير SiteSetting.homepage الذي كان قيمته “latest”.
وعمل بنجاح !
هل ترى أي مشاكل؟
أخشى تحميل “latest” من الخلفية وأن يتم تحميل المُهيئ (initializer) على جانب العميل.
لا، لن تتمكن من تعديل ملف Ruby مباشرة. كان ذلك مجرد تلميح. فبعد كل شيء، لن تقوم بتقديم طلب دمج (PR) للنواة كما فعلت في تلك الحالة. سأضطر على الأرجح إلى إيجاد طريقة لتعديل ذلك من خلال مُهيّئ الإضافة في ملف plugin.rb… سيكون هذا تغييرًا في الإضافة وليس في النواة.
هه، حسنًا، هذه إحدى الطرق للقيام بذلك، لكن في الواقع يجب عليك إضافته كخيار، ومنح المستخدم دائمًا إمكانية تغييره… على الأقل إذا كنت تريد دمجه في الإضافة