تهيئة رابط شريط جانبي مخصص ليفتح في علامة تبويب جديدة

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

3 إعجابات

لقد ناقشنا في مرحلة ما ما إذا كان يجب فتح الروابط الخارجية في الشريط الجانبي في علامة تبويب جديدة، لكننا قررنا احترام تفضيل المستخدم.

هل يمكنك مشاركة حالة أو حالتين من موقعك تشعر فيهما أنه من الأفضل تجاوز تفضيل المستخدم هذا وإجبار الرابط على الفتح في علامة تبويب جديدة؟

إعجابَين (2)

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

منتدياتنا نشطة للغاية، ولست متأكدًا مما إذا كان من المناسب أن يتعرض المستخدم للمقاطعة بمغادرة الموقع تمامًا باتباع الرابط. يؤدي الرابط إلى قناة Telegram الخاصة بنا، إذا كان هذا هو الحال.

في النهاية، لا أقترح جعل الروابط الخارجية تفتح _blank افتراضيًا. أقترح عليك منح مسؤولي Discourse القدرة على التحكم في كيفية فتح أي روابط من هذا المكون/ميزة التكوين المحددة.

3 إعجابات

حل مؤقت: إذا نقرت بزر الماوس الأيمن على عنصر، تحصل على خيار فتحه في علامة تبويب جديدة.

أتفق، لن تتوقف تقدمك أبدًا عند فتح الروابط في علامة تبويب جديدة.

أتفق مع هذا. مثل السيناريو أعلاه مع قناة Telegram، من الواضح أن هناك حالات يكون فيها تجاوز تفضيلات المستخدم مثاليًا للروابط المخصصة التي تم إنشاؤها بواسطة المسؤول. في مكونات السمات، نستهدف _blank غالبًا، لذا لست متأكدًا من سبب عدم إمكانية وجود هذا الخيار كجزء من نافذة تكوين الشريط الجانبي المخصص (ما لم يكن الأمر يتعلق بالمساحة وعدم وجود مجال هناك).

في الواقع، لدي روابط شريط جانبي مخصصة من قبل المسؤول على منتدى الخاص بي أيضًا، حيث سأكون أميل إلى تجاوز إعداد المستخدم للروابط.

إعجابَين (2)

هل تعتقد أنه إذا عبر المستخدم عن تفضيله لفتح الروابط في نفس النافذة، فمن الأكثر تهذيبًا عدم فعل ما أشاروا إليه صراحة؟

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

4 إعجابات

هذه نقطة جيدة حقًا.

5 إعجابات

بصفتي شخصًا يستخدم بالفعل قارئ شاشة (وكل المشكلات الممتعة التي تنشئها بعض مكونات السمة لهم) يمكنني التأكيد، فمن السيئ عمومًا إجبار علامات تبويب جديدة.

5 إعجابات

كيف يمكنني تعطيل الشريط الجانبي من فتح رابط مخصص لموقع ويب شقيق في علامة تبويب جديدة؟ نظرًا لأن الموقع الآخر يحتوي أيضًا على رابط للعودة إلى Discourse. في الوقت الحالي، يؤدي ذلك إلى عدد من علامات التبويب غير المرغوب فيها.

أفضل أن يفتح هذا الرابط الخارجي فقط إلى _self.

شكرًا

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

بشكل عام، يجب أن تفتح جميع الروابط في _self. يقول المستخدم متى وأيها يجب أن تفتح في علامة تبويب أو نافذة جديدة.

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

في المسؤول - الإعدادات، تأكد من تعطيل ما يلي:

لاحظ أن المستخدمين المسجلين يمكنهم تجاوز إعدادات المسؤول في تفضيلات المستخدم الخاصة بهم ضمن علامة التبويب الواجهة:

إعجابَين (2)

أعتقد أن السؤال كان حول كيفية إعداد هذا لرابط واحد محدد للموقع، والذي يحتوي على رابط عائد إلى المنتدى. تغيير إعداد المسؤول سيغير السلوك لجميع الروابط، أليس كذلك؟

إعجابَين (2)

هممم، قد يكون كذلك. هل يريدون تجاوز إعدادات المستخدم؟ هذه هي الإعدادات الوحيدة التي أعرفها والتي تؤثر على الروابط في علامات تبويب/نوافذ منفصلة.

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

نعم، لا أريد تعطيل _blank عالميًا للمواقع الخارجية. أريد فقط تعطيله لعنصر القائمة هذا.

شكراً على الشرح.

إعجابَين (2)

Custom Header Links يتيح لك اختيار الوجهة للروابط التي يضيفها. ربما يساعد هذا

https://github.com/discourse/discourse-custom-header-links/blob/main/javascripts/discourse/components/custom-header-links.hbs#L18

3 إعجابات

شكرا. إذن استخدم هذا للشريط الجانبي؟

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

إنها تلميح. إنها أفضل ما لدي. بصراحة، لست متأكدًا من تعديل الشريط الجانبي.

يبدو أنه لا تزال هناك منافذ إضافات في الشريط الجانبي (؟! )، لذلك قد يتطلب الأمر بعض جافاسكريبت الماهر للعثور على الشيء الذي تريد تعديله. شيء مثل هذا، ربما.

3 إعجابات

هذا مقصود، من الناحية المثالية يجب توسيع الشريط الجانبي باستخدام واجهة برمجة التطبيقات (API)… وهذا يساعدنا في الحفاظ على أي روابط/أقسام مخصصة مضافة هنا.

في الوقت الحالي، يبدو أن أهداف الروابط الخارجية هي إما كل شيء أو لا شيء بناءً على إعداد المستخدم external_links_in_new_tab… لذلك حتى مع قسم/رابط مخصص مضاف عبر واجهة برمجة التطبيقات (API)، لا توجد طريقة لتغيير الهدف لرابط معين. سيكون من الممكن إضافة هذا الخيار… على الرغم من أننا تاريخيًا نميل إلى احترام تفضيل المستخدم لكيفية فتح الروابط.

4 إعجابات

هذا يفسر الأمر. أعتقد أنني فاتني هذا الإعلان. ولكن بالنظر عن كثب، أرى addSidebarPanel و addSidebarSection في plugin-api.js ولكن الأخير فقط يظهر مشاركة، وهو بعيد كل البعد عن دليل #كيف. ولكن هناك هذا:

https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/lib/plugin-api.js#L2306-2310

4 إعجابات