قد يكون هذا مفيداً إذا تم تثبيت شريط شاهد x موضوعاً جديداً أو محدّثاً في أعلى الصفحة أسفل الرأس، بحيث تظهر فوراً أثناء التمرير عبر قائمة المواضيع. عند النقر على الشريط، سيقفز إلى الأعلى لتحميل المواضيع الجديدة أو المحدّثة.
أما الجزء الآخر (جافا سكريبت) الذي سيكون دالة للنقر للقفز إلى الأعلى أو التمرير إلى القمة، فأنا لا أعرف كيفية تنفيذه أو ما هي أفضل طريقة للقيام بذلك.
وجدت هذا القسم في القالب discovery/topics.hbs و discovery/categories.hbs. إذا قمت بتعديل href من href="/" قد يعمل (غير متأكد، لم أجرب ذلك) ولكن مع هذا، سيتم التحميل في كل مرة وكأنك نقرت على الشعار.
نعم، إضافة عنوان URL ستسبب التنقل لأنه لا توجد منطقية لاعتراض الحدث.
الرابط يستدعي إجراءً في Ember. جميع الإجراءات في Discourse قابلة للتوسيع. لذا، فهي تعمل كخطافات تخصيص بطريقة ما. إذن، كيف تعدّل إجراءً؟ حسنًا، دعنا نتحقق مما يفعله أولاً.
ابحث على GitHub أو محليًا عن اسم الإجراء. تُعرّف الإجراءات دائمًا في ملفات JS ويتم الإشارة إليها في Handlebars. نريد رؤية التعريف، لذا نضيق نطاق البحث إلى ملفات JS فقط.
إذن، هل انتهينا؟ لا. هذا يكسر Discourse لأنك تتجاوز الإجراء بالكامل. عند النقر على الرابط، سيتم التمرير إلى عنصر list-controls، لكنه لن يحمل المواضيع الجديدة. لماذا؟ لأن الكود في النواة لم يعد يُطبَّق. أعني، هذا الشيء
إذن، كيف تصلح ذلك؟ بهذا السطر البسيط
this._super(...arguments);
لا تحتاج إلى نسخ أي كود من النواة إذا كنت تريد فقط إضافة إليه. قم بعملك، ثم أضف هذا السطر. كل ما يفعله هو التأكد من تطبيق الكود من النواة.
شكرًا لك يا @Johani! إنه مفيد جدًا لي، وأعتقد أنني فهمت أخيرًا الكثير من الأمور. أعجبني جدًا إجاباتك التفصيلية لأننا نستطيع التعلم الكثير منها، وكيف تعمل الأشياء، وبالطبع أنها تعمل بشكل مثالي. شكرًا لك مرة أخرى!