External Link Shield – Bestätigung beim Verlassen & Vertrauensprüfung

:information_source: Zusammenfassung Diese Theme-Komponente fügt eine konfigurierbare Absicherung für externe Links in gekochten Beiträgen hinzu. Sie wendet Regeln basierend auf dem Vertrauenslevel, optionale Login- und Informations-Weiterleitungen, visuelle Indikatoren für vertrauenswürdige Domains und ein anpassbares Bestätigungs-Modal beim Verlassen an.
:eyeglasses: Vorschau Theme Creator
:hammer_and_wrench: Repository https://github.com/VaperinaDEV/external-link-shield
:question: Installationsanleitung Wie man ein Theme oder eine Theme-Komponente installiert
:open_book: Neu bei Discourse Themes? Anfängerleitfaden zur Verwendung von Discourse Themes

Diese Theme-Komponente installieren

Hallo :waving_hand:

Ich möchte eine Theme-Komponente vorstellen, die eine feingranulare Steuerung für externe Links in gekochten Beiträgen hinzufügt und Folgendes kombiniert:

  • Zugriffskontrolle basierend auf dem Vertrauenslevel
  • Schutz für anonyme Benutzer
  • Ein benutzerdefiniertes Bestätigungs-Modal beim Verlassen
  • und visuelle Indikatoren für vertrauenswürdige vs. unbekannte Domains

Diese Komponente wurde für Communities entwickelt, in denen externe Links rechtliche, sicherheitstechnische oder Vertrauensaspekte mit sich bringen können.


:sparkles: Funktionen

:gear: Konfigurierbare Regeln für Vertrauenslevel

Alle auf dem Vertrauenslevel basierenden Verhaltensweisen sind über Theme-Einstellungen vollständig konfigurierbar.

Sie können unabhängig voneinander aktivieren oder deaktivieren:

  • Blockierung anonymer Benutzer
  • TL0 Informations-Ersetzung
  • TL1 Anforderung einer manuellen Freigabe
  • Bestätigungs-Modal beim Verlassen für höhere Vertrauenslevel

Dies ermöglicht es der Komponente, sich an sehr unterschiedliche Community-Richtlinien anzupassen, von strikter Link-Absicherung bis hin zu minimaler Benutzerreaktion.

:locked_with_key: Vertrauenslevel-bewusste externe Links

Externe Links verhalten sich je nach Vertrauenslevel des Betrachters unterschiedlich:

  • Anonyme Benutzer
    • Externe Links werden durch einen Login-Link oder eine in den Einstellungen definierte benutzerdefinierte URL ersetzt.
  • TL0
    • Links werden durch eine konfigurierbare Weiterleitung ersetzt, zum Beispiel ein Thema, das die Vertrauenslevel erklärt, oder eine andere in den Einstellungen definierte URL.
  • TL1
    • Links erfordern eine manuelle Freigabe (Klick zur Ansicht), und beim Klicken auf den Link wird das Bestätigungs-Modal beim Verlassen angezeigt.
  • TL2+
    • Links verhalten sich normal, zeigen aber immer ein Bestätigungs-Modal beim Verlassen an.

:door: Bestätigungs-Modal beim Verlassen

Bevor sie das Forum verlassen, sehen Benutzer ein Modal, das:

  • Klar angibt, dass sie die Community verlassen
  • Die vollständige Ziel-URL in <code>-Tags anzeigt
  • Die external_links_in_new_tab-Präferenz des Benutzers respektiert

Dies ist besonders nützlich für:

  • Compliance-intensive Communities
  • Phishing-Abwehr
  • Schulung weniger erfahrener Benutzer


:magnifying_glass_tilted_left: Domain-basiertes Verhalten über Einstellungen

Die Komponente führt zwei Theme-Einstellungen ein:

internal_domains:
  type: list
  default: ""
  description: "Ihre Forum- und CDN-Domains (z.B. example.com|example-cdn.com). Diese erhalten KEIN Icon und KEIN Modal."

excluded_domains:
  type: list
  default: ""
  description: "Vertrauenswürdige externe Domains (z.B. youtube.com|google.com). Diese zeigen ein SCHLOSS-Icon, überspringen aber das Modal/die Absicherung."
  • Interne Domains
    • Werden als intern behandelt → kein Icon, kein Modal
  • Ausgeschlossene (vertrauenswürdige) Domains
    • Zeigen ein :locked: Schloss-Icon
    • Überspringen die Vertrauenslevel-Prüfung und das Modal
  • Alle anderen externen Links
    • Zeigen ein externes-Link-Icon
    • Werden je nach Vertrauenslevel geprüft und/oder bestätigt

:artist_palette: Visuelle Indikatoren (SCSS)

Icons werden rein über CSS hinzugefügt:

  • Unbekannte externe Links → externes-Link-Icon
  • Vertrauenswürdige externe Links → Schloss-Icon (Erfolgsfarbe)

Dies hält das DOM sauber und vermeidet das Injizieren von Icons basierend auf JavaScript.

Dieser Screenshot zeigt, wie die Komponente visuell unterscheidet zwischen:

  • Ausgeschlossene Domains: vertrauenswürdige externe Links (Schloss-Icon, keine Bestätigung beim Verlassen),
  • Interne Domains: interne Links (kein Icon, keine Bestätigung beim Verlassen),
  • unbekannte externe Links (externes-Link-Icon mit Bestätigung beim Verlassen).

:pushpin: Anwendungsfälle

Diese Komponente ist nützlich, wenn Sie:

  • Benutzer vor unsicheren oder irreführenden externen Links schützen möchten
  • Neue Benutzer informieren möchten, bevor sie das Forum verlassen
  • Die Vertrauensentwicklung der Community durchsetzen möchten
  • Rechtliche / Compliance-Hinweise hinzufügen möchten, ohne die Benutzererfahrung zu beeinträchtigen
5 „Gefällt mir“

Fantastische Theme-Komponente!!!

Wir haben tatsächlich etwas Ähnliches gebaut, bei dem wir auch Klickzähl-Abzeichen ausblenden und sie durch verifizierte/Gefahren-Abzeichen ersetzen.

Wir haben es hauptsächlich für unsere verifizierten/vertrauenswürdigen Anbieter und Händler verwendet, mit denen wir eine Partnerbeziehung haben.

Zusätzlich zeigt unser Popup auch Gutscheincodes an, die über den Objekt-Einstellungseditor der Theme-Komponente verwaltet werden.

1 „Gefällt mir“