Topic Template Placeholder Text テーマコンポーネント

皆さん、ありがとうございます。アップデートとハードリフレッシュの後、期待通りに動作するようになりました!

「いいね!」 2

このコンポーネントのテストを始めたばかりです。ありがとうございます!プライベートメッセージにプレースホルダーテキストを追加する方法に興味があります。試した方はいますか?

プライベートメッセージのデフォルトのプレースホルダーテキストは、トピック投稿と同じです。サイト管理者は、管理設定の「カスタマイズ > テキスト」で変更できます。js.composer.reply_placeholder を検索してください(このスレッドの上部に示されています)。

このコンポーネントを使用して、各トピックカテゴリのプレースホルダーテキストをカスタマイズする場合、デフォルトのプレースホルダーテキストはプライベートメッセージにのみ適用されます。

「いいね!」 1

このテーマコンポーネントは本当に素晴らしいです。ユーザーがトピックを作成する際に、もう少しガイドを提供する方法を探しており、フォーム を記入するような体験にしたいと考えています。

現在、このテーマコンポーネントでは、トピックに事前に読み込まれるすべてのテキストが単一のプレースホルダーとして扱われています。そのため、ユーザーがトピックコンポーザーに何かを入力すると、すべてのプレースホルダーテキストが消えてしまいます。

ページに異なるプレースホルダーを表示することは可能でしょうか?例えば、トピックテンプレートが以下のように個別のプレースホルダーをロードするようにします:

「名前」


「所在地」


「問題内容」

これにより、ユーザーが名前を入力しても、所在地や問題内容のプレースホルダーは、ユーザーがそれぞれの欄に入力するまで表示され続けます。

デフォルトの Discourse トピックテンプレートテキストは、ユーザーが入力している間も表示されたままになります。それがご要望の機能でしょうか?

プレースホルダーアプローチ:

私(や他の人々?)が求めているのは、フォーム内のプレースホルダー(つまり、個別のフォーム要素を持つもの)のような挙動です。

現在の基本的なデフォルト動作では、「名前」「所在地」「件名」のようにフォームの異なるセクションを一覧表示できますが、デフォルトのテンプレート動作には、以前から指摘されている同じ問題があります。Markdown が混乱を招きやすく、ユーザーが簡単に壊してしまうのです。

理想的なのは、通常のフォームのように、各セクション(名前、所在地、件名)にプレースホルダーがあることですが(ここが異なります)、各セクションは独立して動作します。つまり、ユーザーが「名前」セクションをクリックすると、プレースホルダーの「名前」は消えますが、他のセクションはユーザーがそれらをクリックするまで残ります。

これは jQuery で可能 (?) だと想像します。各セクションには独自の ID を持つ div が必要で、jQuery を使ってユーザーがクリックしたときにその特定の ID のテキストを表示または削除できるようにします。ただし、これには textarea 内に div を追加する必要があり、その方法がわかりません。

私はこちらで調査を進めています。

テンプレートアプローチ

おそらく代替案として、ユーザーがクリックしてもセクションヘッダーが「消えない」ようにする方法があります。つまり、セクションヘッダー(例:名前、所在地、件名)はページ上に残るテキストとなります。現在のテンプレートデフォルトと比較して、よりフォームらしくするためには:

  1. セクションヘッダーのテキストはユーザーが編集できないようにする(つまり、contenteditable="false"
  2. セクションの区切りポイントはユーザーが削除できないようにする
  3. セクションヘッダーの下に、ユーザーが入力できることが明確なスペースを設ける。現在のデフォルトテンプレートでは、ユーザーはテキストがある場所に移動し、return キーを押して入力スペースを作成する必要があります。

もしかすると、こちらの方が実現しやすい方法かもしれません?

「最初の投稿のみに適用」という設定が機能しないようです。トピック内のすべての投稿に同じプレースホルダーを設定し、この設定を無効にすると、標準的なプレースホルダーが表示されてしまいます。

返信(トピックの最初の投稿ではないもの)専用のプレースホルダーを設定することは可能でしょうか?ユーザーに返信に含めるべき内容についてより明確なガイドを提供したいと考えており、返信欄に表示されるプレースホルダーが役立てばと考えています。

「いいね!」 4

返信の場合にのみ、プレースホルダーテキストが複数行ある場合にのみ機能することがわかりました。コードが少し複雑なため、理由はまったくわかりません。

追伸

その間、ブラウザのコンソール警告を停止するための小さなPRを提出しました。

「いいね!」 2

Nathan、マージありがとうございます。

「いいね!」 2

プレースホルダーテキストが表示されない問題が発生しています。何が足りないのでしょうか?

テンプレート:

コンポーネント設定

プレースホルダー/テンプレートテキストが表示されない

「すべてのトピックテンプレートをプレースホルダーとして表示」のチェックを外した場合

テンプレートが編集可能なテキスト(プレースホルダーテキストではない)として表示される

テンプレートテキストを編集すると [placeholder] が含まれる

テンプレートテキストが消える/プレースホルダーテキストがない

これは、プラグイン/コンポーネントがインストールされていないクリーンな Discourse インストール(Discourse 3.4.0)で行っています。

このテーマコンポーネントは機能しなくなったようです。:thinking:

「いいね!」 3

このコンポーネントは私には動作しなくなりました。

ああ、まあ、動作していないことは確認できます。おそらく、Discourse の最近の大きな変更が原因でしょう。

「いいね!」 1

こんにちは、更新の希望はありますか?:face_with_tongue:

こんにちは :waving_hand:

このテーマコンポーネントを復活させ、最新のDiscourseと互換性を持たせるためのPRを作成しました :slightly_smiling_face:

「いいね!」 8

@Donさん、ありがとうございます。プルリクエストをマージしました。動作するかテストしてください。:folded_hands:

「いいね!」 3

再インストールして使用したところ、今はうまく動作しているようです。

そのため、「#broken」タグを削除しました。

「いいね!」 2

[管理者通知] テーマ「Topic Template Placeholder Text」に更新が必要なコードが含まれています。(id:discourse.resolver-resolutions)

[THEME 50 'Topic Template Placeholder Text'] 非推奨通知: "site:main" は非推奨です。代わりに "service:site" を使用してください [Discourse 2.9.0.beta7 以降非推奨] [非推奨 id: discourse.resolver-resolutions]

その変更を行い、更新をリリースしました。すべて正常に動作するはずです。

「いいね!」 2