مشكلة عرض الفئات الفرعية للموقع الأكبر من 1000 فئة

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

هذا يعمل بشكل جيد إلى حد ما، ومع ذلك، واجهت مشكلة مؤخرًا (ولست متأكدًا متى بدأت):

تصفح عرض فئة يحتوي على أكثر من 20 فئة فرعية ويستخدم “مربعات” لعرض عناصر رابط الفئة الفرعية، يعرض فقط (أول؟) 20 فئة في القائمة.
النقر على عنصر تحديد القائمة المنسدلة details يعرض القائمة الكاملة.

من تحقيقي الأولي، صادفت discourse/app/models/category_list.rb at main · discourse/discourse · GitHub وكيف أن لديها بعض السلوك حول التعامل مع المواقع التي تحتوي على أكثر من 1000 فئة.

أشك في أنه جنبًا إلى جنب مع كيفية تعامل العرض discourse/app/views/categories/index.html.erb at main · discourse/discourse · GitHub مع قائمة الفئات التي يتلقاها، ولا يقوم بتقسيمها إلى صفحات، يتسبب في عرض العرض 20 فئة فرعية فقط.

هل هذا هو السلوك المقصود؟

نعم، أعتقد أنك على حق في شكوكك. لم يتم تصميم Discourse للتعامل مع الآلاف من الفئات، وذلك لأسباب عديدة. لقد قمنا ببعض العمل على تحميل الفئات، وقد يتغير ذلك في المستقبل.

3 إعجابات

شكراً للتوضيح.

هل ستفكر على الأقل في جعل CategoryList::CATEGORIES_PER_PAGE أو CategoryList::MAX_UNOPTIMIZED_CATEGORIES قابلة للتكوين بطريقة ما؟ حتى إعداد موقع مخفي سيعمل في حالتي.

كتابة كود إضافة لاستبدال هذه يعتبر أمراً قبيحاً بعض الشيء حيث لا يمكنني العثور على طريقة أخرى سوى الترقيع الشجري (monkey patching) لـ CategoryList وهو ما يبدو هشاً للغاية.

الدخول إلى عالم “monkey patching” ليس مثاليًا بالتأكيد.

ومع ذلك، سأكون قلقًا بشأن العبث بـ CategoryList::MAX_UNOPTIMIZED_CATEGORIES، لقد اخترنا ذلك لأن الأمور تصبح إشكالية عند الأرقام الأعلى. أما CategoryList::CATEGORIES_PER_PAGE فيمكن دفعه بشكل مريح إلى 100.

@nbianca / @hugh هل لديكم أي أفكار هنا؟

إعجابَين (2)

هذه مشكلة قمت بإصلاحها للتو هنا:

لقد قدمنا هذه الميزة لأن المواقع التي تحتوي على أكثر من 1000 فئة كانت لديها صفحة “/categories” غير قابلة للاستخدام. لسوء الحظ، أدى ذلك إلى ظهور خطأ لأنه إذا كان لدى موقع أكثر من 1000 فئة، فسيحاول فرض التحميل الكسول (أو صفحة بصفحة) للفئات الفرعية أيضًا حتى عندما لا يكون ذلك هو الحال.

3 إعجابات