新規トピックボタンのテキストをカスタマイズ

:discourse2: 概要 カテゴリまたはタグごとに新しいトピックボタンをカスタマイズする
:eyeglasses: プレビュー Discourse Theme Creatorでプレビュー
: hammer_and_wrench: リポジトリ https://github.com/discourse/discourse-customize-new-topic-button-text
: question: インストールガイド テーマまたはテーマコンポーネントのインストール方法
: open_book: Discourseテーマ初心者の方へ Discourseテーマ使用の初心者向けガイド

このテーマコンポーネントをインストール

機能

このテーマコンポーネントを使用すると、カテゴリまたはタグのトピックリストの「新しいトピック」ボタン、およびコンポーザーのアクション名とボタン(以下で強調表示)をカスタマイズできます。たとえば、#bugカテゴリがある場合、これらのテキストを「バグを報告」に変更できます。

(一部のアイコンは、svg icon subset管理設定に追加する必要がある場合があります)

返信ボタンのテキストもカスタマイズできます。これにより、コンポーザー内およびトピック内の reply テキストが置き換えられます。

設定

名前 説明
custom new topic text カスタマイズされた各ボタンの詳細を入力する場所
inherit parent category 無効にすると、サブカテゴリは親カテゴリのテキストを自動的に継承しません

2つの設定があり、主なものは custom new topic text です。

この設定により、フィルター(タグまたはカテゴリ名)、[新しいトピック]ボタンのアイコン(これはコンポーザーのアイコンを変更しません)、コンポーザーの上部のアクション名、およびコンポーザーの[トピックを作成]ボタンを設定できます。

デフォルトで有効になっている inherit parent category という追加の設定があります。これが有効になっている場合、すべてのサブカテゴリのテキストも変更されます(設定で別途指定されない限り)。

:information_source: タグを設定すると、選択したカテゴリが上書きされることに注意してください。

:bulb: 将来の機能拡張のアイデア

  • 各言語のローカライズされたテキスト
  • カテゴリとタグの組み合わせ、および複数のタグのサポート

:discourse2: ホスティングをご利用ですか? テーマコンポーネントは、Standard、Business、Enterpriseプランでご利用いただけます。

「いいね!」 27

それは本当に良いですね、どうもありがとうございます :heart:

今日、api.customizeComposerText() を使って、これのずっと簡単なバージョンに取り組んでいました :sweat_smile:

これははるかに良い解決策です。@awesomerobot さん、ありがとうございます!

私の実験では、discourse-post-voting プラグインを使用して、カテゴリのコンポーザーボタンのラベルをオーバーライドすることはできませんでした。これは、複数のカテゴリで投稿投票が有効になっている場合に、より大きな問題となります。

提案させていただければ、discourse-post-voting のラベルのオーバーライドをサポートすることは、素晴らしい機能強化になるでしょう。( :

「いいね!」 1

これは素晴らしいテーマコンポーネントです!さらに一歩進めるためのアイデアがあります。

トピックのタイプを実質的に変更するためにボタンの名前を変更している場合は、*カテゴリ全体で名前を変更する必要があります。

たとえば、イベントというカテゴリがあるとします。カテゴリ全体で「トピック」という単語を「イベント」に変更します。「新規トピック」ではなく「新規イベント」、トピックリストではなくイベントリストなどです。

これは、ツールの主なユースケースを変更する場合に見られます。AirTable が新しいテーブルを作成するときに行うことです。デフォルトでは、テーブルは「レコード」と呼ばれます。

しかし、「ユーザー」という名前のテーブルを作成したいとしましょう。その場合、各レコードを「ユーザー」と呼ぶように変更できます。

このテーマコンポーネントをこのように扱うことで、カテゴリをより具体的なエンティティ(サポートリクエスト、イベントなど)として簡単に効果的にブランド変更できるようになります。

「トピック」を「イベント」に変更したかったので、検索中にこのテーマコンポーネントを見つけました。

「いいね!」 3

@awesomerobot このテーマコンポーネントは本当に素晴らしいです。ありがとうございます!

このテーマコンポーネントは、「新規トピック」ボタンのCSSに奇妙な動作を引き起こしているようです。

テーマコンポーネントが無効の場合:

テーマコンポーネントが有効の場合:


また、コンポーザーの「トピックを作成」ボタンを変更してくれるのは素晴らしいのですが…

「返信」ボタンのテキストも同じ文字列に変更されてしまいます。これはあまり理想的ではありません。バグレポートをもう一つ作成しているのではなく、単に返信しているのですから :slight_smile:

返信ボタンのテキストを変更するためのフィールド(または「返信」のままにするために空白にする)を追加できる可能性はありますか?

「いいね!」 4

申し訳ありません、最後の点です。これは、2つのサブカテゴリ(それぞれ異なる親を持つ)が同じスラッグを持つケースも尊重していないようです。例:

  • parent1
    • sub1
  • parent2
    • sub1

この場合、テーマコンポーネントは2つのサブカテゴリを区別できず、どちらもエディタからの同じ設定を共有しています。

「いいね!」 3

フィードバックありがとうございます。いくつか更新しました! FIX: action, switch category to ID, ignore replies by awesomerobot · Pull Request #5 · discourse/discourse-customize-new-topic-button-text · GitHub

返信ボタンを完全に無視していました!今のところ、そのまま reply にしていますが、テキストを変更するための別の設定があると良いでしょう。

良い点です。設定でカテゴリ名ではなくカテゴリIDを使用するのが、これを回避する最善の方法のようです。つまり、既存の設定はすべて更新する必要があります。

「いいね!」 3

新しいバグがあるようです。このプラグインを有効にすると、2つのトピックボタンが作成されます。

「いいね!」 2

はい、ご報告ありがとうございます。Discourse で一部のコネクタが変更されました。更新すれば修正されるはずです。

「いいね!」 2

ボタンのサイズの違いは修正可能ですか?(古いスクリーンショット、最新のアップデートで二重ボタンの問題は修正されました)

「いいね!」 1

はい、このボタンの高さはこれで正しいはずです

「いいね!」 1
ログに次のような警告がたくさん表示され、このコンポーネントを試しましたが、うまくいきませんでした。

メッセージ (4件コピー報告済み)

[DiscourseJsProcessor] 非推奨: 名前付き引数を参照するために {{attrs}} を使用することは非推奨になりました。{{attrs.canCreateTopic}} は {{@canCreateTopic}} に更新する必要があります。(‘discourse/components/custom-new-topic-button.hbs’ @ L2:C8) [非推奨 ID: attrs-arg-access] 詳細については、Ember.js - Deprecations を参照してください。
at theme-transpiler.js:3164:26752
at j.computed (theme-transpiler.js:3168:1693)
at j.computed (theme-transpiler.js:3168:161)
at j.computed (theme-transpiler.js:3168:1693)
at D (theme-transpiler.js:3168:1754)
at te (theme-transpiler.js:3168:1318)
at PathExpression (theme-transpiler.js:3198:21763)
at yo (theme-transpiler.js:3187:2776)
at Al (theme-transpiler.js:3187:3513)
at Ml (theme-transpiler.js:3187:3309)
at yo (theme-transpiler.js:3187:3013)
at Al (theme-transpiler.js:3187:3513)
at Ml (theme-transpiler.js:3187:3309)
at yo (theme-transpiler.js:3187:3013)
at Ml (theme-transpiler.js:3187:3350)
at yo (theme-transpiler.js:3187:3013)
at Al (theme-transpiler.js:3187:3513)
at Ml (theme-transpiler.js:3187:3309)
at yo (theme-transpiler.js:3187:3013)
at Bi (theme-transpiler.js:3187:3879)
at PA (theme-transpiler.js:3190:3002)
at Cf (theme-transpiler.js:3190:9856)
at Al (theme-transpiler.js:3176:35353)
at gf (theme-transpiler.js:3176:35600)
at D (theme-transpiler.js:3198:42250)
at Sft.o.precompile (theme-transpiler.js:3281:3078)
at dDe (theme-transpiler.js:3161:1003)
at e.CallExpression (theme-transpiler.js:3159:33796)
at h (theme-transpiler.js:10:111797)
at e.uPe [as _call] (theme-transpiler.js:59:16906)
at e.oPe [as call] (theme-transpiler.js:59:16726)
at e.lPe [as visit] (theme-transpiler.js:59:17700)
at t.visitQueue (theme-transpiler.js:59:40645)
at t.visitSingle (theme-tr…

バックトレース

/var/www/discourse/lib/discourse_js_processor.rb:133:in block in create_new_context' mini_racer-0.8.0/lib/mini_racer.rb:273:in block in attach’
mini_racer-0.8.0/lib/mini_racer.rb:242:in call_unsafe' mini_racer-0.8.0/lib/mini_racer.rb:242:in block (2 levels) in call’
mini_racer-0.8.0/lib/mini_racer.rb:369:in timeout' mini_racer-0.8.0/lib/mini_racer.rb:241:in block in call’
mini_racer-0.8.0/lib/mini_racer.rb:240:in synchronize' mini_racer-0.8.0/lib/mini_racer.rb:240:in call’
/var/www/discourse/lib/discourse_js_processor.rb:168:in block in v8_call' /var/www/discourse/lib/discourse_js_processor.rb:167:in synchronize’

「いいね!」 1

うーん、奇妙ですね。最新の Discourse でテストしたところ、すべて正常に動作しました。その非推奨の問題を解決するコンポーネントのアップデートをマージしましたので、アップデートしてもう一度試していただけますか?

「いいね!」 1

私も同じです。何度試しても表示されません。

残念ながら、この素晴らしいテーマコンポーネントは Custom Wizard Plugin 🧙 とうまく連携しないようです。

Wizard プラグインは、カテゴリ設定を通じてカテゴリボタンにフックできます。

あなたのコンポーネントを使用すると、ボタンの名前は変更されますが、それを押してもカテゴリ設定で選択された Wizard が起動しなくなります。このコンポーネントを大規模な本番サイトで使用できれば幸いですが、現在はできません。修正されることを願っています。プレッシャーはありません :slight_smile:

私はこれを見ていません。同じセットアップで、私のボタンは機能しています。他のプラグインやTCを確認する必要があるかもしれません。ちなみに、私は最新のビルドを使用しています。

「いいね!」 1

これは、サイトに細部へのこだわりを感じさせる洗練された印象を加えることができる、素敵な小さなコンポーネントです。

「いいね!」 1

こんにちは

バグがあると思います。
「新規トピック」ボタンのテキストが変更できなくなりました。
他のボタンには変更が有効です。

バージョン:3.2.0.beta4-dev([4886c1fddc]

ご協力ありがとうございます(そしてこれらの機能にも!)

「いいね!」 2

レポートありがとうございます!

最新のPRからのリグレッションのようです。

これは this.args.<param>. から @<param> 構文に変換されます。ただし、プラグインアウトレット内にいるため、前者が必要です。

編集:PRを作成しました :+1:

「いいね!」 1

@Arkshine さん、PRありがとうございます!アップデートで修正されるはずです。

これもアップデートに含まれます:FEATURE: add ability to customize "Reply" text by 3-w-c · Pull Request #7 · discourse/discourse-customize-new-topic-button-text · GitHub

これにより、タグとカテゴリに基づいて、コンポーザーおよび投稿での返信ボタンのテキストをカスタマイズするオプションも含まれるようになります。

「いいね!」 1