كيفية إجراء تغييرات على الجانب الخلفي لتطبيق discourse باستخدام rails

أجري تغييرات في تطبيق discourse حيث أرغب في عرض المواضيع وفقًا لعدد الردود، لقد أنشأت استعلام rails ولكني غير قادر على العثور على جزء العرض، أين أحتاج إلى عرضه وإضافة هذا النطاق.

إذا كنت ترغب في تغيير كيفية عمل Discourse، فستحتاج إلى الاطلاع على تطوير إضافات Discourse - الجزء الأول - إنشاء إضافة أساسية أو ربما دليل المبتدئين لتطوير سمات Discourse.

لا أريد إنشاء إضافة جديدة، أريد فقط تغيير استعلامات الفئة والموضوع من جانب الواجهة الخلفية وأريد عرضها في العرض، لكن لا يمكنني معرفة أين يتم عرض قائمة روابط المواضيع.

هناك إعداد للفئة قد يعمل لهذا الغرض:

إذا كنت بحاجة إلى تغيير الكود، فيجب عليك إجراء تغييراتك في إضافة. سيؤدي إجراء تغييرات على الكود الأساسي إلى حدوث مشاكل لك في المستقبل.

إعجابَين (2)

حسناً يا سيمون، شكراً لك
أعتقد أن هذا سيساعدني

أريد فرز هذه الروابط الجانبية للمواضيع لفئة معينة بناءً على أعلى عدد من المواضيع، هل سيتطلب ذلك إجراء تعديلات على جانب الخادم؟

لا أعتقد أنك بحاجة إلى تعديل الكود لهذا، ولكن قد تحتاج إلى تشغيل أمر من وحدة تحكم Rails الخاصة بموقعك لعرض المواضيع بالترتيب الجديد على الصفحة الرئيسية لموقعك.

عند تحديد “الفئات ذات المواضيع المميزة” لإعداد الموقع desktop category page style، يجب أن يتم تعيين الترتيب الذي يتم به عرض المواضيع المميزة بواسطة قيمة إعداد “ترتيب قائمة المواضيع” لكل فئة. لسوء الحظ، إذا قمت بتغيير إعداد “ترتيب قائمة المواضيع” للفئة، فلن يظهر هذا التغيير على الفور على الصفحة الرئيسية للموقع. لست متأكدًا من مكان تخزين Discourse للمواضيع المميزة التي يتم عرضها على الصفحة الرئيسية أو ما هو الإجراء الذي يستخدمه Discourse لكسر ذاكرة التخزين المؤقت.

من خلال الاختبار على موقعي الخاص، أرى أنه يمكن كسر ذاكرة التخزين المؤقت عن طريق تشغيل ما يلي من وحدة تحكم Rails:

# قم بتعيين الفئة التي تريد إصلاح النتائج لها إلى متغير، على سبيل المثال:

c = Category.find(42)

# ثم قم بتشغيل
CategoryFeaturedTopic.feature_topics_for(c)

بعد تشغيل ذلك، يجب عرض المواضيع على الصفحة الرئيسية بالترتيب الذي حددته لإعداد “ترتيب قائمة المواضيع” للفئة. لا أعتقد أن تشغيل هذا الأمر يمكن أن يسبب أي مشاكل، ولكن كن حذرًا دائمًا عند تشغيل الأوامر من وحدة تحكم Rails.

أنا متأكد من وجود طريقة أسهل للقيام بذلك. ربما تحتاج فقط إلى الانتظار لمدة تصل إلى 24 ساعة حتى يقوم Discourse بكسر ذاكرة التخزين المؤقت لقائمة المواضيع المميزة القديمة. لا أرى أين يتم كسر ذاكرة التخزين المؤقت في الكود. يبدو أن الكود ذي الصلة موجود هنا: discourse/app/models/category_featured_topic.rb at main · discourse/discourse · GitHub.

إعجابَين (2)

لقد قمت بتشغيل هذا الاستعلام ولكن المشكلة الرئيسية هي أين يتم عرض هذه المواضيع المميزة في الصفحة الرئيسية، في أي ملف .html يوجد الكود لعرض هذه البيانات على واجهة المستخدم.
لقد قمت بالفعل بإنشاء استعلامات للبيانات التي أحتاج إلى فرزها ولكن المشكلة هي أين أضع الاستعلام في أي نموذج.