بدلاً من خلط جميع المواضيع في جزء كبير واحد من عناصر الشبكة، نرغب في إدخال بعض الترتيب.
نحن نهدف إلى ما يلي:
في البداية، نريد الفرز حسب المرئي/غير المرئي، ثم نريد الفرز حسب الفئة؛ ثم بعد ذلك نرغب في تجميعها حسب التسلسل الزمني (وإنشاء مجموعات مثل اليوم (جميع المشاركات ذات الصلة من اليوم)، أمس، الأسبوع الماضي).
لذلك، يجب أن تبدو قائمة المواضيع لدينا كما يلي مع 3 شبكات مميزة أسفل بعضها البعض:
سؤالي الرئيسي هو كيف يمكنني إنشاء/توسيع الاستعلام الذي ينشئ مجموعة النتائج التي يتم تكرارها بعد ذلك في
عبر filteredList.
لقد وجدت مكانًا قد يتم فيه ملء هذا، لكنني لم أكن متأكدًا من كيفية “توسيعه”. يبدو أن هناك نظام queryParam وبعض إعدادات المسار التي يمكن أن تؤثر على مجموعة النتائج ولكنني لم أفهمها.
هل يمكن لأي شخص أن يشيرني إلى المكان الصحيح؟
نحن نستخدم مكون الثيم المذكور أعلاه، مما يعني أننا محدودون فيما يمكننا القيام به.
سيكون من المفيد لي إذا أظهر لي شخص ما كيفية قصر filteredList على المواضيع غير المقروءة فقط على سبيل المثال - يمكنني المتابعة من هناك.
نعم شكراً لك يا جامي، أنا على دراية بتلك الأمور وقد قمت أيضاً بكتابة بعض الإضافات الخاصة (أو توسيعها). الشيء هنا هو أنني لا أفهم أين يتم تجميع القائمة وكيف تعمل منطق “استعلام المواضيع” بأكمله أو أين هو فعلياً. لو كنت أعرف أياً من الأمرين لكنت أستطيع المضي قدماً.
للعلم فقط، فإن وضع علامة على أعضاء الفريق بهذه الطريقة يعتبر سلوكًا سيئًا جدًا في Meta، لذلك قمت بإزالة تلك العلامات حتى لا يتم إنشاء نمط قد يحاول الآخرون تكراره.
أنا آسف جدًا لأن موضوعك لم يحظَ بالاهتمام الكافي. هذا ليس شيئًا أعرف عنه، لذا أخشى أنني لا أستطيع الإجابة مباشرة.
ولا، لم أحصل على أي شيء آخر. حاولت عرض قائمة المواضيع 3 مرات ثم إخفاء المواضيع غير المرغوب فيها في كل منها، ولكن بعد ذلك تدخلت وظيفة “تحميل المزيد” وتمت إعادة كتابة أجزاء كبيرة من DOM وأصبحت حساباتي في JavaScript ثقيلة جدًا وتسببت في تأثيرات غريبة.
لقد اكتشفت أنه يتعين علي القيام بذلك بشكل صحيح باستخدام واجهات برمجة التطبيقات التي توفرها Discourse.
لقد أحرزت تقدمًا كبيرًا هنا وكان لدي بعض الأسئلة الأخرى على طول الطريق:
هل هناك نقطة نهاية لواجهة برمجة التطبيقات (API) يمكنني استخدامها للحصول على جميع المواضيع المثبتة؟ على غرار /latest.json أو /top.json؟
هل هناك أمر JavaScript (بافتراض أنني في مكون إضافي) يمكنني استخدامه لإجبار قائمة المواضيع على إعادة العرض، بعد إجراء تغيير في الحالة على عناصر قائمة المواضيع، بحيث ينعكس التغيير على الفور؟ أعتقد أنني سأحتاج إلى العمل مع مراقب على topics.؟
بالإضافة إلى ذلك، وجدت المقالة التالية التي تحتوي على كل ما أحتاجه لتخصيص قائمة المواضيع التي أريدها.
يمكن الحصول على المواضيع المثبتة عن طريق الاستعلام عن /search.json?expanded=true&q=in%3Apinned
باستخدام البحث بدون كلمة مفتاحية بحث فعلية.
هذا يعيد فقط قائمة بمعرفات المواضيع أو لنقل مجموعة بيانات مواضيع مبسطة. سيتعين عليك إجراء طلبات ajax متابعة إلى /t/${topic.id}.json للحصول على مجموعة البيانات الكاملة المحيطة بموضوع ما.
ما زلت مهتمًا بكيفية فرض إعادة عرض قائمة مواضيع عبر JS.