لقد قمتُ بتجهيز منتدى Discourse جديد وهو يعمل بشكل جيد تقريبًا، لكنني تلقيت سؤالاً من أحد الأعضاء لم أستطع إيجاد حل له. المجتمع ينتقل من منتدى آخر، وفي ذلك البرنامج يمكنك الحصول على رابط لموضوع ما يقودك إلى آخر نقطة تمت قراءتها، وهو ما يقوم الناس عادةً بحفظه كإشارة مرجعية في متصفحهم. لم أتمكن من اكتشاف كيفية فعل ذلك في Discourse، هل لدى أي شخص أي أفكار؟
أخشى أنه لا يمكن ذلك. فعند النقر على موضوع في قائمة المواضيع، فإن الرابط الذي يتم توجيهك إليه هو رابط محدد لمكان آخر قمت بقراءته فيه، وليس رابطًا يقول “خذني إلى آخر مكان كنت فيه”. لذا، إذا قمت بإضافة هذا الرابط إلى المفضلة، ثم تابعت قراءة المزيد من الموضوع، ثم عدت إلى ذلك الرابط المحفوظ، فسيأخذك إلى نفس المكان الذي ذهبت إليه في البداية، وليس إلى آخر مكان توقفت عنده. أنا أبحث عن رابط عام يقول “أين توقفت آخر مرة في هذا الموضوع” يمكن حفظه في المتصفح وسيظل يعمل بغض النظر عن مقدار ما تم قراءته من الموضوع.
بحسب علمي، لا يخزّن Discourse آخر موضوع تم زيارته، لكنه يخزّن طابع الوقت لآخر زيارة لكل موضوع (topic_users.last_visited_at)، لذا يجب أن يكون من الممكن العثور على آخر موضوع تم زيارته ثم عرضه. لكن هذا سيتطلب إضافة (plug-in) أو أداة خارجية تستدعي واجهة برمجة تطبيقات Discourse.
المواد التالية مضافة فقط لأغراض الإحاطة الشاملة بهذا الموضوع.
كما سبق ذكره، الأقرب إلى ما تريده هو استخدام الإشارات المرجعية:
ضع إشارة مرجعية لموضوع. ستعيدهك الإشارة المرجعية إلى المنشور الأول ما لم تكن قد قرأت الموضوع بالكامل، وفي هذه الحالة ستكون عند آخر منشور. لكن يمكن للخط الزمني أن يعرض زرًا للعودة للسماح لك بالعودة إلى آخر منشور قرأته في ذلك الموضوع - انظر أقصى اليمين في هذه اللقطة:
تتطلب الإشارات المرجعية عادةً إجراءً من المستخدم لإنشائها ما لم تُستخدم إضافة أو برنامج آخر لإنشائها تلقائيًا.
تعيد الإشارات المرجعية دائمًا إلى الموضوع المحدد (أي المنشور الأول) أو المنشور المحدد الذي اختاره المستخدم. لا توجد خيار لإشارة مرجعية تعيدك إلى موضوع أو منشور يتم تحديده بواسطة البرنامج في وقت الوصول إلى الإشارة المرجعية.
الرابط الذي تتحدث عنه يمكنه دائمًا إظهار آخر منشور تم قراءته لأن برنامج المنتدى يخزّن هذه البيانات تلقائيًا. وهذا مفيد لأننا لا نعرف دائمًا متى سنوقف القراءة في المنتدى - فقد ينقطع الأمر بسبب إعادة تشغيل النظام، أو تسجيل خروج المستخدم من النظام أو التطبيق، أو عطل غير متوقع.
لا يحتوي Discourse على خيار للعودة إلى آخر منشور تم عرضه، لكنني أعتقد أن هذه ستكون ميزة مفيدة.
ملاحظة:
ومع ذلك، يحتوي Discourse على ميزة تظهر لك المواضيع التي زرتها في زيارتك الأخيرة حتى في قسم الإشارات المرجعية، مما يساعد على إظهار الموضوع الذي ربما تكون قد نظرت إليه آخر مرة:
شكرًا لك على الإجابة الشاملة، لقد كنت مفيدًا جدًا، حتى لو كانت النتيجة النهائية هي أنه لا توجد حاليًا طريقة للقيام بما نود.
بالفعل. ومن المزعج أنني لم أقم بكتابة كود Ruby من قبل، وإلا لكنت حاولت ذلك بنفسي. أظن أن الأمر قد يكون أكثر من اللازم من العمل، حيث تقوم قوائم المواضيع بحساب آخر منشور تم قراءته في موضوع ما وتوليد رابط ذي صلة، لذا يمكن أن يكون لديك رابط جديد، مثل t/topic-title/133114/latest ثم يعيد توجيهك إلى المكان الصحيح
بشأن الملاحظة التكميلية، هه، سألقِ نظرة عليها. المشكلة هي أن لدينا العديد من المواضيع التي قد تمتد لمئات المنشورات حرفيًا، وقد لا تكون قد راجعت مواضيع محددة منذ بضعة أسابيع أو أكثر، ثم ترغب في إلقاء نظرة أخرى والقدرة على الانتقال إليها مباشرة من إشارة مرجعية في المتصفح.
ليس تمامًا، لا أعتقد ذلك. ستكون هناك مواضيع متنوعة كثيرة يتابعها الناس. داخل فئة محددة في المنتدى، هناك عشرات بل مئات من موضوعات المناقشات طويلة الأمد، يتابع الكثير من الأشخاص عددًا كبيرًا منها. ومن الواضح أنهم يحبون الدخول من حين لآخر وقراءة عدد من المنشورات، لكن ربما لا يصلون إلى النهاية، ثم يعودون لاحقًا لقراءة المزيد. ويحب بعض الأشخاص حفظ هذه الروابط في متصفحاتهم.
أعتقد أن علامة تبويب الإشارات المرجعية قد تكون بديلاً معقولاً، حيث كنت محقاً بالفعل، فذلك العرض يبدو أنه ينقلك إلى المكان الذي توقفت فيه، ويمكن أيضاً تصفيته حسب الفئة.