درع الرابط الخارجي - تأكيد الخروج وبوابة الثقة

:information_source: الملخص يضيف مكون السمة هذا حماية قابلة للتكوين للروابط الخارجية في المشاركات المنسقة. يطبق قواعد تستند إلى مستوى الثقة، وإعادة توجيه اختيارية لتسجيل الدخول والمعلومات، ومؤشرات مرئية للنطاقات الموثوقة، ونافذة منبثقة قابلة للتخصيص لتأكيد الخروج.
:eyeglasses: المعاينة Theme Creator
:hammer_and_wrench: المستودع \u003chttps://github.com/VaperinaDEV/external-link-shield\u003e
:question: دليل التثبيت كيفية تثبيت سمة أو مكون سمة
:open_book: جديد في سمات Discourse؟ دليل المبتدئين لاستخدام سمات Discourse

\u003c!-- املأ “repoName” و “repoURL” لزر التثبيت التلقائي –\u003e

تثبيت مكون السمة هذا

مرحباً :waving_hand:

أود مشاركة مكون سمة يضيف تحكمًا دقيقًا في الروابط الخارجية في المشاركات المنسقة، ويجمع بين:

  • التحكم في الوصول المستند إلى مستوى الثقة
  • حماية المستخدمين المجهولين
  • نافذة منبثقة مخصصة لتأكيد الخروج
  • ومؤشرات مرئية للنطاقات الموثوقة مقابل النطاقات غير المعروفة

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


:sparkles: الميزات

:gear: قواعد مستوى الثقة القابلة للتكوين

تكون جميع السلوكيات المستندة إلى مستوى الثقة قابلة للتكوين بالكامل عبر إعدادات السمة.

يمكنك تمكين أو تعطيل ما يلي بشكل مستقل:

  • حظر المستخدمين المجهولين
  • استبدال TL0 بالمعلومات
  • متطلب الكشف اليدوي لـ TL1
  • نافذة منبثقة لتأكيد الخروج لمستويات الثقة الأعلى

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

:locked_with_key: الروابط الخارجية المدركة لمستوى الثقة

تتصرف الروابط الخارجية بشكل مختلف بناءً على مستوى ثقة المشاهد:

  • المستخدمون المجهولون
    • يتم استبدال الروابط الخارجية برابط تسجيل دخول أو عنوان URL مخصص محدد في الإعدادات.
  • TL0
    • يتم استبدال الروابط بإعادة توجيه قابلة للتكوين، على سبيل المثال موضوع يشرح مستويات الثقة أو أي عنوان URL آخر محدد في الإعدادات.
  • TL1
    • تتطلب الروابط الكشف اليدوي (انقر للعرض)، ثم يؤدي النقر على الرابط إلى عرض نافذة تأكيد الخروج المنبثقة.
  • TL2+
    • تتصرف الروابط بشكل طبيعي ولكنها تعرض دائمًا نافذة منبثقة لتأكيد الخروج.

:door: النافذة المنبثقة لتأكيد الخروج

قبل مغادرة المنتدى، يرى المستخدمون نافذة منبثقة تقوم بما يلي:

  • توضح بوضوح أنهم يغادرون المجتمع
  • تعرض عنوان URL الوجهة الكامل في علامات \u003ccode\u003e
  • تحترم تفضيل المستخدم external_links_in_new_tab

هذا مفيد بشكل خاص لـ:

  • المجتمعات التي تتطلب الامتثال
  • التخفيف من التصيد الاحتيالي
  • تثقيف المستخدمين الأقل خبرة


:magnifying_glass_tilted_left: السلوك المستند إلى النطاق عبر الإعدادات

يقدم المكون إعدادي سمة:

internal_domains:
  type: list
  default: ""
  description: "Your forum and CDN domains (e.g., example.com|example-cdn.com). These will have NO icon and NO modal."

excluded_domains:
  type: list
  default: ""
  description: "Trusted external domains (e.g., youtube.com|google.com). These will show a LOCK icon but skip the modal/shielding."
  • النطاقات الداخلية
    • تُعامل على أنها داخلية ← لا يوجد أيقونة ولا نافذة منبثقة
  • النطاقات المستبعدة (الموثوقة)
    • تعرض أيقونة قفل :locked:
    • تتخطى التحقق من مستوى الثقة والنافذة المنبثقة
  • جميع الروابط الخارجية الأخرى
    • تعرض أيقونة الرابط الخارجي
    • يتم حظرها و/أو تأكيدها اعتمادًا على مستوى الثقة

:artist_palette: المؤشرات المرئية (SCSS)

تتم إضافة الأيقونات بالكامل عبر CSS:

  • الروابط الخارجية غير المعروفة ← أيقونة الرابط الخارجي
  • الروابط الخارجية الموثوقة ← أيقونة القفل (لون النجاح)

يحافظ هذا على بنية DOM نظيفة ويتجنب حقن الأيقونات المستند إلى JavaScript.

يوضح لقطة الشاشة هذه كيف يميز المكون بصريًا بين:

  • النطاقات المستبعدة: الروابط الخارجية الموثوقة (أيقونة القفل، لا يوجد تأكيد خروج)،
  • النطاقات الداخلية: الروابط الداخلية (لا توجد أيقونة، لا يوجد تأكيد خروج)،
  • الروابط الخارجية غير المعروفة (أيقونة الرابط الخارجي مع تأكيد الخروج).

:pushpin: حالات الاستخدام

هذا المكون مفيد إذا كنت تريد:

  • حماية المستخدمين من الروابط الخارجية غير الآمنة أو المضللة
  • تثقيف المستخدمين الجدد قبل السماح لهم بمغادرة المنتدى
  • فرض تقدم ثقة المجتمع
  • إضافة إخلاءات المسؤولية القانونية / الامتثال دون الإخلال بتجربة المستخدم
5 إعجابات

مكون سمة رائع!!!

لقد قمنا بالفعل ببناء شيء مشابه حيث نقوم أيضًا بإخفاء شارات عدد النقرات ونستبدلها بشارات موثوق بها/خطر.

استخدمناه بشكل أساسي للبائعين والتجار المعتمدين/الموثوق بهم الذين لدينا شراكة تابعة معهم.

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

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