Ich verwende Banner Themes (https://meta.discourse.org/t/banner-themes-and-instructions-for-customizing-them/82368), um anonymen Benutzern HTML-Inhalte anzuzeigen. Im Wesentlichen geht es darum, sie zur Kontoerstellung zu ermutigen.
Ich versuche, mitten in meinem Inhalt einen „Registrieren“-Button einzufügen. Im Allgemeinen war es bisher recht einfach, einen Button zu erstellen und bei Klick eine Weiterleitung zu .xyz Domain Names | Join Generation XYZ durchzuführen, um dies wie eine normale Web-Weiterleitung zu behandeln. [Entweder über JS / einen einfachen „form“-POST / href-Weiterleitung usw.]
Ich habe versucht herauszufinden, ob ich eine „Discourse-native“ Methode für diese Aktion nutzen kann. Ich habe den Entwicklerleitfaden für Discourse Themes genau verfolgt. Irgendwo zwischen Widgets, Controllern und Komponenten bin ich auf folgende Frage gestoßen:
Was ist der einfachste Weg, mit JavaScript (innerhalb eines Skripts vom Typ type="text/discourse-plugin") das „Registrierungs-Modal“ anzuzeigen? Um ganz klar zu sein: Ich versuche, dies außerhalb eines Handlebars-Skripts auszuführen, wie hier:
{{d-button action=(route-action “showCreateAccount”) class=“btn-primary sign-up-button” label=“sign_up”}}
Letztendlich so etwas wie dies… Ich versuche herauszufinden, was ich durch das fettgedruckte Element ersetzen soll:
<script type="text/discourse-plugin"version=“0.8.18”>
document.getElementById(“showCreate”).onclick = function() {
{{d-button action=(route-action “showCreateAccount”) class=“btn-primary sign-up-button” label=“sign_up”}}
}
</script>
Alles, was ich versucht habe, wirft verschiedene Fehler auf, meist weil die „action“ nicht verstanden wird. Ich habe auf Meta gesucht, und obwohl es viele Beispiele gibt, wie man ein neues Widget erstellt oder dies woanders platziert, konnte ich keinen Weg finden, dies nativ umzusetzen. Jede Hilfe wäre sehr willkommen.
(P.S. Ich sage nicht, dass dies der beste oder notwendige Weg ist, um dies zum Laufen zu bringen, aber es würde mir sehr helfen zu verstehen, wie die gesamte App zusammenhängt.)
Vielen Dank!