Banner Themes(https://meta.discourse.org/t/banner-themes-and-instructions-for-customizing-them/82368)를 사용하여 익명 사용자에게 일부 HTML 콘텐츠를 표시하고 있습니다. 주로 계정을 만들도록 유도하는 내용입니다.
현재 콘텐츠 중간에 “회원가입” 버튼을 추가하려고 하고 있습니다. 일반적으로는 버튼을 생성한 후 클릭 시 .xyz Domain Names | Join Generation XYZ 리다이렉트하여 일반 웹 리다이렉트로 처리하는 방식이 비교적 간단했습니다. [JS를 통한 리다이렉트 / 간단한 ‘form’ 제출 / href 리다이렉트 등…]
이 작업을 더 "Discourse 네이티브"한 방식으로 수행할 수 있는지 확인해 보고자 했습니다. Discourse 테마 개발자 가이드를 꼼꼼히 따랐습니다. 위젯, 컨트롤러, 컴포넌트 사이 어딘가에서 다음과 같은 질문이 생겼습니다:
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"을 이해하지 못한다는 내용과 관련된 다양한 오류를 발생시켰습니다. 메타 포럼을 검색해 보았지만, 새 위젯을 생성하거나 다른 위치에 배치하는 방법은 많은 예시가 있는 반면, 네이티브 방식으로 이를 수행하는 방법은 찾지 못했습니다. 도움을 주시면 매우 감사하겠습니다.
(참고: 이것이 이 기능을 구현하는 가장 좋은 방법이나 필수적인 방법은 아니라고 말하는 것은 아닙니다. 하지만 이렇게 하면 애플리케이션 전체가 어떻게 구성되는지를 훨씬 더 잘 이해할 수 있을 것 같습니다.)
감사합니다!