カスタムHTMLにログイン/サインアップボタンを追加

匿名ユーザーに対して HTML コンテンツを表示するために、Banner Themes(https://meta.discourse.org/t/banner-themes-and-instructions-for-customizing-them/82368)を使用しています。主にアカウント作成を促す内容です。

コンテンツの中央に「サインアップ」ボタンを追加しようとしています。一般的には、ボタンを作成し、クリック時に .xyz Domain Names | Join Generation XYZ にリダイレクトして通常の Web リダイレクトとして処理するだけで済みます(JS、単純な ‘form’ ポスト、href リダイレクトなどを通じて)。

しかし、より「Discourse ネイティブ」な方法でこのアクションを実行できないか模索しています。Discourse テーマのデベロッパーガイドを詳しく追っていましたが、ウィジェット、コントローラー、コンポーネントの間で以下の疑問に行き当たりました。

JavaScript(type=“text/discourse-plugin” スクリプト内)を使用して、「サインアップモーダルを表示する」最も簡単な方法は何か?

非常に明確に言っておくと、私は以下のような Handlebars スクリプトの外でこれを実行しようとしています。

{{d-button action=(route-action “showCreateAccount”) class=“btn-primary sign-up-button” label=“sign_up”}}

最終的にはこのような形を目指しています。以下の太字部分を何に置き換えるべきか分からず困っています。

<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>

試したすべてが異なるエラーを投げますが、主に「action」を理解していないというものです。Meta で検索してみましたが、新しいウィジェットを作成する方法や、別の場所に配置する方法の例は多数あるものの、ネイティブに実行する方法は見つかりませんでした。ご助力いただければ幸いです。

(追伸:これがこの機能を実現する最良の方法や必要な方法だと言っているわけではありませんが、アプリ全体がどのように連携しているかを理解する上で非常に役立ちます)

ありがとうございます!

「いいね!」 1