إنشاء صفحة رئيسية مخصصة للتصفية

هل يمكنني إنشاء صفحة رئيسية ديناميكية مثل هذه:

  • 10 مواضيع نشطة حديثًا (هذا الأسبوع)
  • 5 أحدث المواضيع التي تم إنشاؤها (اليوم)
  • 5 مواضيع حديثة أخرى (هذا الأسبوع)
  • 5 مواضيع تم الرد عليها أكثر من غيرها (هذا الأسبوع)
  • 5 مواضيع حازت على إعجاب أكثر من غيرها (هذا الأسبوع)
  • 5 أحدث المواضيع التي تم إنشاؤها (أمس أو اليوم)

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

أعني، في الوقت الحالي، يعمل على أساس أنه يمكنني إضافة تواريخ إليه، مثل:

activity-before:YYYY-MM-DD topics with latest bump before specified date
activity-after:YYYY-MM-DD topics with latest bump after specified date
created-before: YYYY-MM-DD topics created before specified date
created-after:YYYY-MM-DD topics created after specified date

ولكن بعد ذلك سأضطر دائمًا إلى تغيير التواريخ. هل هناك أي بديل يمكنني القيام به في المنتدى؟

إعجابَين (2)

أيضًا، المشكلة الرئيسية في هذا المكون هي أنه يكرر المواضيع في كل عملية فرز

[اقتباس=“MihirR، المشاركة: 1، الموضوع: 370062”]

  • أكثر 5 مواضيع تم الرد عليها (هذا الأسبوع)
  • أكثر 5 مواضيع حازت على إعجاب (هذا الأسبوع)
    [/اقتباس]

هل تتطلب حالتك أن تكون هذه حرفيًا أكثر الردود/الإعجابات؟ إذا كنت تستخدم قائمة المواضيع /top، يمكنك الحصول على فترات زمنية تلقائية… عوامل عليا في المشاهدات والإعجابات وعدد المشاركات (ويمكنك تعديل هذه الأوزان قليلاً باستخدام إعدادات الموقع)

[اقتباس=“MihirR، المشاركة: 2، الموضوع: 370062، كامل: true”]
أيضًا، المشكلة الرئيسية في هذا المكون هي أنه يكرر المواضيع في كل نوع
[/اقتباس]

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

إعجاب واحد (1)

ليس الأمر متعلقًا بالردود والإعجابات تمامًا، ولكن نعم، أحاول فقط إنشاء صفحة رئيسية ذات مظهر ديناميكي.

إذًا، هل المكون الذي يمكنه إزالة الموضوع المكرر من أي من الحقول سيفي بالغرض؟

نعم، لن يكون من الصعب جدًا إضافة ميزة “إخفاء التكرارات” إلى https://meta.discourse.org/t/filtered-topic-lists/321031، إذا كان @gormus مهتمًا. يمكن تعديل إجراء findFilteredTopics لتخزين معرف كل موضوع في قائمة، ثم يمكن تصفية التكرارات.
العيب هو أنه إذا كنت تريد قائمة من 10 مواضيع، فقد تحصل على 5 فقط بعد إزالة التكرارات… ولكن يمكن تجنب ذلك جزئيًا عن طريق جلب عدد قليل إضافي يتجاوز ما تم تحديده في الإعداد.

إعجاب واحد (1)

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

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

هذه ميزة أخذتها من السمة المركزية وهي متاحة هنا كمكون كتلة: Manuel Kostka / Discourse / Blocks / Top Topics · GitLab

4 إعجابات

صحيح، قد ينجح هذا، ولكن مع ذلك أردت فعليًا ملء عوامل تصفية متعددة على الصفحة.

إعجابَين (2)

نعم، هذا يعمل بالفعل. إذا كان @gormus مهتمًا :))

لقد أجريت تحديثًا اليوم سيساعد في هذا قليلاً: FEATURE: allow date-based filters to accept a day count by awesomerobot · Pull Request #33197 · discourse/discourse · GitHub (يجب أن تحصل على هذا في المرة القادمة التي تقوم فيها بتحديث Discourse)

سيسمح لك هذا بإدخال العدد المطلوب من الأيام في عوامل تصفية activity/created-before/after، لذا يمكنك القيام بما يلي:

activity-after:7 مواضيع نشطة في آخر 7 أيام
created-after:1 مواضيع تم إنشاؤها بعد يوم واحد

يمكنك أيضًا استخدام 0 لليوم الحالي (كما في بعد منتصف الليل)

7 إعجابات

يا إلهي، كان ذلك سريعًا. شكرا لك!!

إعجابَين (2)

مرحباً @awesomerobot، أردت فقط إخبارك بأنني أجريت التغييرات المطلوبة وأنها تعمل بشكل ممتاز الآن. شكراً لك :))

إعجاب واحد (1)

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.