Community-Support – konfigurierbare Spende

Dieses Theme-Component installieren

Hallo :waving_hand:

Das Ziel war es, das Component flexibel genug zu gestalten, um sehr unterschiedlichen Community-Designs und Anwendungsfällen gerecht zu werden, während die Konfiguration vollständig innerhalb der Theme-Einstellungen erfolgt.

:sparkles: Funktionen

:heart: Spenden-/Support-Modal

Das Component kann optional automatisch ein Support-Modal anzeigen.

Das automatische Modal unterstützt:

  • konfigurierbare Verzögerung beim Öffnen
  • Sichtbarkeit basierend auf URL/Pfad
  • Sichtbarkeit für Mitglieder/Anonyme
  • minimales Vertrauensniveau
  • ausgeschlossene Gruppen
  • konfigurierbare Lebensdauer des Schließ-Cookies
  • drei Modal-Größen: normal, large, maximized

Das Modal kann auch manuell von überall aus geöffnet werden, indem verwendet wird:

#donate

Dies ist bewusst unabhängig von den automatischen Sichtbarkeitsregeln, sodass eine Community einen #donate-Link teilen oder ihn in die Seitenleiste aufnehmen kann, während sie weiterhin steuert, wo automatische Support-Aufforderungen angezeigt werden.


:credit_card: Spenden-/Support-Methoden

Mehrere Support-Methoden können über den Objekt-Einstigungseditor von Discourse konfiguriert werden.

Jede Methode kann Folgendes haben:

  • Name
  • Beschreibung
  • Anbieter
  • Inhaber
  • Icon
  • URL
  • Button-Text
  • kopierbarer Wert
  • hervorgehobener Status
  • Übersetzungen

Dies ist anbieterunabhängig, sodass das Component keinen bestimmten Zahlungsanbieter erfordert.

Zum Beispiel kann eine Methode einfach auf eine bestehende PayPal-, Revolut-, Wise- oder andere Zahlungs-/Support-Seite verweisen.


:globe_showing_americas: Lokalisierung pro Methode

Spendenmethoden unterstützen eigene Übersetzungen.

Der Sprachauswahlbereich enthält die verfügbaren Discourse-Lokale, und für jede Methode können folgende Elemente übersetzt werden:

  • Name
  • Beschreibung
  • Button-Text
  • Kopier-Label
  • Inhaber
  • Anbieter

Wenn ein exaktes Lokal nicht verfügbar ist, fällt das Component auf das Basislokal zurück und dann auf Englisch/eine andere verfügbare Übersetzung.


:bar_chart: Supportziel & Fortschrittsbalken

Das Component enthält ein optionales Supportziel und einen Fortschrittsbalken.

Du kannst Folgendes konfigurieren:

  • aktueller Betrag
  • Zielbetrag
  • Währung
  • Support-Label
  • Support-Zeitraum
  • Fortschrittsanzeige
  • wo der Support-Balken angezeigt wird

Unterstützte Zeiträume:

  • einmalig
  • monatlich
  • jährlich

Der Fortschrittsbalken behandelt auch Support über dem Ziel.

Anstatt einfach bei 100 % zu stoppen, wird der tatsächliche Prozentsatz weiterhin angezeigt:

75%   → normaler Fortschritt
100%  → Ziel erreicht
125%  → 25 % in den nächsten Zielzyklus
220%  → 20 % in den dritten Zielzyklus

Der visuelle Fortschrittsbalken bleibt ein einzelner kompakter Balken.

Vor dem ersten Ziel:

background: tertiary-low
fill:       tertiary

Bei genau 100 %, 200 %, 300 % usw.:

background: success
fill:       success

Screenshot 2026-09-14 at 7.39.26

Zwischen den Meilensteinen:

background: success-low
fill:       success

Screenshot 2026-09-14 at 7.39.52

Das bedeutet, dass eine Community weiterhin einen sinnvollen Fortschritt anzeigen kann, selbst wenn sie ihr ursprüngliches Ziel deutlich überschreitet.


:bust_in_silhouette: Avatare der Unterstützer

Der Support-Balken kann optional Avatare der Unterstützer anzeigen.

Unterstützer werden derzeit manuell über die supporters-Objekteinstellung konfiguriert.

Jeder Unterstützer kann Folgendes haben:

  • Benutzername
  • Beitragsbetrag
  • Währung

Der Benutzername wird mit dem Benutzerprofil abgeglichen, sodass die Profil-/Avatar-Informationen des Benutzers automatisch angezeigt werden können.

Die Anzahl der Avatare, die direkt im Support-Balken angezeigt werden, ist konfigurierbar.

Zum Beispiel:

◉ ◉ ◉ ◉ ◉ +8

Wenn es mehr Unterstützer gibt als die konfigurierte Anzahl sichtbarer Avatare, sind die verbleibenden Unterstützer über ein DMenu zugänglich.

Das Unterstützer-Menü kann Folgendes anzeigen:

  • Avatar
  • Benutzername
  • Profil-Link
  • Beitragsbetrag
  • Währung

Beitragsbeträge können unabhängig voneinander aktiviert oder deaktiviert werden.

Unterstützer können auch aus einer oder mehreren Gruppen über die supporter_groups-Einstellung befüllt werden. Dies ergänzt die manuell konfigurierte Unterstützerliste, anstatt sie zu ersetzen.


:artist_palette: Mehrere Designs

Das Component enthält drei unabhängige visuelle Designs:

  • Klassisch: ausgewogene, community-orientierte Darstellung
  • Minimal: reduzierte visuelle Elemente und kompakte Darstellung
  • Modern: stärkere Hierarchie und auffälligere Karten

Das Design ist unabhängig von der ausgewählten Ansicht, sodass beide frei kombiniert werden können.


:puzzle_piece: Mehrere Ansichten

Das Component unterstützt mehrere Darstellungsmodi:

  • Vollständig: vollständige Support-Inhalte mit Hero, hervorgehobener Methode und Spendenmethoden
  • Kompakt: reduzierte Darstellung für kleinere Platzierungen
  • Minimal: methodenfokussierte Darstellung
  • Fortschritt: nur Supportziel und Fortschritt

Dies ermöglicht es, dasselbe Component an sehr unterschiedlichen Orten zu verwenden, ohne Konfiguration oder Styling zu duplizieren.


:notebook: Post-Einbettungen

Support-Inhalte können direkt in Posts eingebettet werden.

Aktiviere enable_post_embed und verwende dann:

[wrap=donate]
[/wrap]

Zusätzliche Ansichten sind direkt über den Wrapper verfügbar:

[wrap=donate-compact]
[/wrap]

[wrap=donate-minimal]
[/wrap]

[wrap=donate-progress]
[/wrap]

Der Wrapper steuert die Ansicht, während die globale design-Einstellung das visuelle Design steuert.

Dies ist nützlich, wenn die Support-Inhalte Teil des Kontexts eines bestimmten Posts sein sollen, anstatt als globales UI-Element zu erscheinen.


:electric_plug: Unterstützung für Plugin-Outlets

Das Component kann das Support-Widget über Plugin-Outlets rendern.

Aktiviere outlet_enabled und gib die gewünschten Outlet-Namen in outlet_locations an, getrennt durch |.

Die Outlet-Ansicht und das Design können unabhängig konfiguriert werden:

  • outlet_view
  • outlet_design

Dies macht es möglich, das Support-Component an Orten wie Themenlisten, Kopfbereichen, Fußbereichen und anderen unterstützten Outlets zu verwenden.


:loudspeaker: Kompatibilität mit Discourse Ads

Das Component kann auch mit dem Discourse Ads-Plugin verwendet werden.

Anstatt direkt vom Ads-Plugin abzuhängen, bietet Community Support einen stabilen HTML-Einbettungs-Marker:

<div data-donation-widget="support"></div>

Dies kann in eine HTML-Werbung kopiert und in das gewünschte Ads-Outlet platziert werden.

Das Component besitzt das Markup und das CSS, sodass es nicht nötig ist, das Spenden-Styling innerhalb der Werbung selbst zu duplizieren.

Die Ansicht und das Design können optional überschrieben werden:

<div
  data-donation-widget="support"
  data-view="compact"
  data-design="minimal"
></div>

Das bedeutet, dass dasselbe Support-System über verschiedene Ads-Platzierungen hinweg wiederverwendet werden kann, während ein konsistentes Design beibehalten wird.


:globe_with_meridians: Generische HTML-Einbettungen

Der gleiche Einbettungsmechanismus kann auch in anderen HTML-fähigen Platzierungen verwendet werden:

<div data-donation-widget="support"></div>

Der HTML-Marker bleibt bewusst einfach, während das Theme-Component die eigentliche Darstellung übernimmt.

Dies macht es möglich, das Design oder die Component-Implementierung zu ändern, ohne jede einzelne Einbettung neu schreiben zu müssen.


:eyes: Sichtbarkeitssteuerungen

Automatisch und global gerenderte Support-Inhalte können über mehrere Einstellungen gesteuert werden:

  • Für Mitglieder anzeigen
  • Für anonyme Benutzer anzeigen
  • Minimales Vertrauensniveau
  • Ausgeschlossene Gruppen
  • Auf der Startseite anzeigen
  • URL-/Pfadabgleich

Ausgeschlossene Gruppen werden auf automatisch gerenderte Support-Inhalte angewendet, wie z. B. das Modal, Plugin-Outlet-Widgets und generische Einbettungen.

Kontextuelle Inhalte bleiben verfügbar:

  • #donate
  • [wrap=donate]

Dies macht es möglich, bestimmte Benutzer von werbenden/automatischen Support-UIs auszuschließen, ohne sie daran zu hindern, auf einen explizit geteilten Support-Link oder einen kontextuellen Support-Block zuzugreifen.


:cookie: Schließen-/Cookie-Steuerung

Wenn das automatisch geöffnete Modal geschlossen wird, kann das Component diese Entscheidung speichern.

Die Cookie-Lebensdauer kann wie folgt konfiguriert werden:

  • keine
  • Minute
  • Tag
  • Woche
  • Monat
  • Jahr

Dies verhindert, dass das automatische Modal demselben Besucher gemäß der gewählten Lebensdauer wiederholt angezeigt wird.


:memo: Grundlegende Beispiele

Das Support-Modal öffnen

#donate

Support-Inhalte in einem Post einbetten

[wrap=donate]
[/wrap]

Kompakte Post-Version

[wrap=donate-compact]
[/wrap]

Generische HTML-Einbettung

<div data-donation-widget="support"></div>

Einbettung mit benutzerdefinierter Darstellung

<div
  data-donation-widget="support"
  data-view="compact"
  data-design="minimal"
></div>

:heart: ./support --coffee

8 „Gefällt mir“

Schön, und ohne Zweifel heute sehr nötig.

Und gleichzeitig bin ich ziemlich bitter, in einem Land zu leben, in dem es auf diese Weise Spenden zu sammeln illegal ist. Wir in Finnland müssen etwas verkaufen – oder ein Risiko eingehen. Sicher, völlig vom Thema ab.

2 „Gefällt mir“