Discourse bietet jetzt eine #offizielle Theme-Komponente, um diesen Anwendungsfall zu unterstützen:
Originalinhalt
Ich bin mir nicht sicher, ob es für die meisten Websites eine gute Idee ist, das Haupt-Discourse-Logo auf eine externe Website verlinken zu lassen, aber es gibt Ausnahmen, bei denen es sinnvoll ist, Benutzer beim Klicken auf das Haupt-Discourse-Logo auf eine externe Website weiterzuleiten. Wenn Sie das tun möchten, erfahren Sie hier, wie es geht.
Eine neue Theme-Komponente erstellen
Hinweis: Dieser Abschnitt der Anleitung wird bald in ein eigenes Thema extrahiert.
Klicken Sie auf der Seite “Admin / Anpassen / Themes” in der Seitenleiste auf den Link “Komponenten”. Klicken Sie dann am unteren Rand der Seitenleiste auf die Schaltfläche “Installieren”:
Klicken Sie im sich öffnenden Modal-Fenster auf den Link “Neu erstellen”:
Geben Sie Ihrer Theme-Komponente einen Namen und stellen Sie sicher, dass der Typ “Komponente” ausgewählt ist. Klicken Sie dann auf die Schaltfläche “Erstellen”:
Sie werden dann zur Hauptseite der Theme-Komponente weitergeleitet.
Code zur Theme-Komponente hinzufügen
Der Code zum Überschreiben der Standard-URL des Hauptlogos muss dem HEAD-Abschnitt Ihrer Theme-Komponente hinzugefügt werden. Um auf den Editor der Komponente zuzugreifen, klicken Sie auf die Schaltfläche “CSS/HTML bearbeiten”:
Klicken Sie im sich öffnenden Editor auf den Link “Head”:
Fügen Sie je nach verschiedenen Bedingungen die folgenden Code-Snippets in den HEAD-Abschnitt des Editors ein, um die URL zu ändern, auf die das Home-Logo verweist. Beachten Sie, dass Sie https://example.com im Code durch die vollständige URL der Homepage Ihrer externen Website ersetzen müssen:
- um den Link zu einer statischen URL zu ändern:
<script type="text/discourse-plugin" version="1.3.0">
api.registerValueTransformer("home-logo-href", () => "https://example.com")
</script>
- um eine dynamische URL basierend auf dem aktuellen Benutzer zurückzugeben:
<script type="text/discourse-plugin" version="1.3.0">
api.registerValueTransformer("home-logo-href", () => {
const currentUser = api.getCurrentUser();
return `https://example.com/${currentUser.username}`;
})
</script>
- um eine URL basierend auf einer Theme-Komponenten-Einstellung zurückzugeben:
<script type="text/discourse-plugin" version="1.3.0">
api.registerValueTransformer("home-logo-href", () => {
return settings.example_logo_url_setting;
})
</script>
Klicken Sie auf die Schaltfläche “Speichern”, um Ihre Änderungen zu speichern. Gehen Sie danach zurück zur Hauptseite der Theme-Komponente und klicken Sie auf den Link “Alle Themes hinzufügen”, um die neue Komponente zu allen Themes Ihrer Website hinzuzufügen:








