カスタムコンポーネント -- 任意のプラグインの出口にボタンやテキストを追加

| | | |\n|— | — | —|\n|:information_source: | 概要 | ボタンまたはテキストを任意の場所に追加|\n|:hammer_and_wrench: | リポジトリ | https://github.com/literatecomputing/discourse-custom-components|\n|:question: | インストールガイド | テーマまたはテーマコンポーネントのインストール方法|\n|:open_book: | Discourseテーマ初心者ですか? | Discourseテーマ使用の初心者ガイド|\n\n\u003c!-- 自動インストールボタンの「repoName」と「repoURL」を入力してください –\u003e\n\n[wrap=theme-install-button repoName="Custom Components" repoUrl="https://github.com/literatecomputing/discourse-custom-components\"]\nこのテーマコンポーネントをインストール\n[/wrap]\n\n\u003c!-- このテーマ/コンポーネントを1〜2文で説明してください –\u003e\n\nプラグインのアウトレットにリンクボタンまたは任意のテキストを追加します。(画像内の透かしは無視してください。これらはステージング/テストサイトで撮影したスクリーンショットです。)\n\n\u003c!-- スクリーンショットを追加(該当する場合) –\u003e\n\n

\n\n\n\n\n\n\u003c!-- 詳細を追加し、設定を説明します(該当する場合) –\u003e\n\nユーザープロファイルやユーザーカードに「購読してDMを送信できるようにする」ボタンを表示したいという人のために、このプラグインの開発を開始しました。ユーザーがDMを送信できない場合にボタンを表示したいと考えていました。私は常に思っているほど賢くないので、グループを使用してボタンが表示されるかどうかを判断するコンポーネントを作成しました。このアプローチの1つの問題は、スタッフメンバーが購読者グループに含まれていなかったため、DMを送信できるにもかかわらず「購読する必要がある」ボタンが表示されてしまうことでした。また、グループは非表示になっていたため、テーマコンポーネントで使用することは不可能でした。私は、ボタンを表示するかどうかを判断するためにcurrentUser.can_send_private_messagesを使用するように、そのテーマコンポーネントを書き直しました。\n\n### これは誰のためですか?\n\nリンク付きのボタンや、特定のグループに対して表示または非表示にされる任意のテキストを配置したい場合は、これを使用して任意のプラグインアウトレットに挿入できます。DMを送信できないユーザーを除き、すべてのメッセージの間に「購読する必要があります」というリンクボタンを追加したいですか?これはそれを実行します。任意のHTMLをプラグインアウトレットに貼り付けて、どのように見えるかを確認したいですか?それもできます。\n\n### 開発者にとってのメリット\n\nこのテーマには、以下の簡単な例が含まれています。\n- https://meta.discourse.org/t/objects-type-for-theme-setting/305009の使用方法\n- api.renderInOutletの使用方法(こちらで説明されているように、connectorsディレクトリにファイルを作成するのではなく、設定によって制御されるアウトレットにGlimmerコンポーネントを配置します)\n- currentUserにアクセスする簡単なGlimmerコンポーネントの作成\n- コンポーネントを別の(インライン)テンプレートでラップすることで、データを受け渡せるようにする\n- Markdownの制約なしに、テーマ設定から任意のHTMLを表示する - はい、おそらく\n[quote="Discourse, post:1, topic:82557"]\nEmberのhtml-safeヘルパーを使用すると、テキストではなくHTMLがレンダリングされます。\n[/quote]\n\nしかし、.gjsファイル内の\u003ctemplate\u003e内でこれを試みている場合、動作は少し異なります({{htmlSafe component.text}}のように)。

「いいね!」 15

スペースにより、テキストが太字にならない。


素晴らしいコンポーネントです!

「いいね!」 5

ボタンのURLにプレースホルダーを追加することは可能でしょうか。例えば、ユーザーがいるトピックIDをURLに含めるなどです。

予算があれば、確認します。

ボタンにトピックIDがあった場合、どのような機能になりますか?

もし解決してプルリクエストを作成したい場合は、おそらく受け入れます。

答えはおそらく「いいえ」ですが、ここで説明されている回避策を使用できると思います。

「いいね!」 2

Hi @pfaffman

ビジネスアカウントのユーザーグループのメンバー全員の各トピックにこのようなボタンセットを追加したいと考えています。
そのボタンは、ユーザーが現在いるURLを含む新しいPMを作成するトリガーとなります。
これにより、ビジネス顧客は特定のトピックをピン留め、ハイライト、または「スポンサー」として私たちにリクエストを送信できます。

「いいね!」 1

ご存知の通り、新しいトピックコンポーザーを開くURLを作成できます。それをテーマコンポーネントによって追加されるリンクにすることができます。

テーマコンポーネントにコードを追加しないとそれは不可能だと思います(しかし、可能かもしれません)。誰かがそれについてアイデアを持っていて、ここで(または他のトピックで)そのソリューションを提供するかもしれません。もしそうでなければ、私に連絡するか、#marketplaceで必要なものと予算の説明を投稿してください。

「いいね!」 3