Discourse では、作成される各カテゴリに ID が割り当てられるため、その ID を使って目的を達成できます。
テーマコンポーネントに少しカスタムコードを追加し、アクティブなテーマに適用する必要があります。
以下が、実現したい機能のためのコメント付きコードです。
<script type="text/discourse-plugin" version="0.8">
// 変更可能なオプション
const targetCategoryId = 6; // 対象とするカテゴリの ID に変更してください
const placeHolderForCategory = "CHANGE_THIS_TEXT_BUT_KEEP_THE_QUOTES";
// この行以降は変更の必要はありません。管理者の方はここで止めてください。
const discourseComputed = require("discourse-common/utils/decorators")
.default;
// リモートコンポーネントではありません
const currentLocale = I18n.currentLocale();
I18n.translations[
currentLocale
].js.composer.custom_category_placeholder = placeHolderForCategory;
// 対象カテゴリのプレースホルダーを変更し、それ以外はデフォルトを使用します。
api.modifyClass("model:composer", {
@discourseComputed("canEditTopicFeaturedLink")
titlePlaceholder() {
return this.category && this.category.id === targetCategoryId
? "composer.custom_category_placeholder"
: this._super();
},
});
</script>
これは、コンポーネントの common > header タブに追加します。
カテゴリ ID は、対象カテゴリのページにアクセスし、URL を確認することで取得できます。
例えば、
Meta 上の Support カテゴリの ID は 6 です(URL の最後の数字)。
上記のスニペットでは、対象カテゴリの ID(数字)を targetCategoryId の「6」に置き換えてください。
もう一つのオプションは非常に簡単で、そのカテゴリのタイトルに表示されるプレースホルダーのテキストを希望のものに変更するだけです。