ユーザーにカテゴリを選択させる

新しい投稿を作成する際に、ユーザーが手動でカテゴリを選択できるようにしたいです。
すでに以下のトピックを確認しましたが、どれもこの件に対応していないようです。

https://meta.discourse.org/t/invite-people-to-choose-category-before-create-a-new-topic/214077
https://meta.discourse.org/t/require-category-selection-before-writing-topic/66236/15

「未分類トピックを許可する」のチェックは外しています。

カテゴリが事前入力されているのが問題でしょうか?もしそうであれば、「デフォルトのコンポーザーカテゴリ」サイト設定をお探しではないでしょうか。

「いいね!」 4

はい、それが問題でした。

その設定をリセットしたところ、期待どおりに動作するようになりました。ありがとうございます!:raising_hands:

設定が「カテゴリなし」になっている場合、ユーザーはクリックして入力できず、「カテゴリを選択してください」というメッセージが表示されますが、ユーザーはすぐにテキストを読まないことがあります。ユーザーがカテゴリを選択する前に、「ポップアップ」を表示することは可能でしょうか?


編集:ClaudeやChatGPTが提案した多くのオプションを試しましたが、最終的に「無効」プロパティを削除しました。これにより、ユーザーはメッセージをクリックして書き込むことができますが、カテゴリが選択されていない状態で送信しようとすると、カテゴリを選択するように求める赤/オレンジのエラーが表示されます。これは、私の意見では、実際にはより良い動作です。

同じことを試している他の人のために、私が作成した新しいコンポーネントのheadタブに追加したJavaScriptを以下に示します。Unlock Composerと名付けました。

<script type="text/discourse-plugin" version="0.8">
  const observer = new MutationObserver(() => {
    const textarea = document.querySelector(".d-editor-input[disabled]");
    if (textarea) {
      textarea.removeAttribute("disabled");
      textarea.setAttribute("placeholder", "Select a category before submitting");
      textarea.style.cursor = "text";
    }
  });

  observer.observe(document.body, { childList: true, subtree: true });
</script>

私は開発者ではありません。これはChatGPTが提案したもので、機能しました。誰か改善点を見つけたら、共有してください。

これを実際に動作させているスクリーンショットを共有していただけますでしょうか。

「新しいトピック」をクリックすると、次のように表示されます。

デフォルトのカテゴリがありません。メッセージ入力欄はロックされず、カテゴリが選択されていなくてもメッセージを入力できます。

送信しようとすると、次のように表示されます。

お役に立てば幸いです。

「いいね!」 1

@alltiagocom 素晴らしい、ありがとうございます!

「いいね!」 1

これは通常デフォルトの動作だと思います。:thinking: トピックテンプレートは設定されていますか?

どういたしまして!

ChatGPTにスクリプトをもう少し単純化する方法がないか尋ねたところ、APIに関連する最初の行が削除されました。最終的なスクリプトを投稿に更新しましたので、よろしければご利用ください。

「いいね!」 1

テンプレートはありません。

しかし、これはデフォルトの動作ではないと思います。元のプレースホルダーでさえ、「ここに何か入力する前にカテゴリを選択してください」のようなメッセージが表示され、カーソルが🚫記号付きの矢印に変わります。カテゴリを選択しないと、クリックして入力することはできません。

カテゴリのトピックテンプレートが設定されている場合に、そのようになるはずです。テンプレートが設定されていない場合は、カテゴリを設定する前にコンポーザーのテキストエリアに入力できるはずです。トピックテンプレートを使用している場合、テンプレートをバイパスして先にコンポーザーに入力してからカテゴリを選択してしまうことを防ぐためにブロックされます。

私のサイトで簡単なテストを行ったところ、デフォルトカテゴリもトピックテンプレートも設定されていない状態では、カテゴリを選択するまでブロックされずにコンポーザーエリアに入力できました。

「いいね!」 2

奇妙だ… 作成したコンポーネントを無効にして、もう一度試したところ、入力できるようになりました。ロックされていません :confused:

(no category) に設定した後、サーバー自体のキャッシュの問題でしょうか? Chrome と Firefox の両方で、異なるユーザー アカウントで同じ動作が発生しました。Cloudflare を使用しており、Cloudflare のキャッシュに関連していると思われるフォーラムの問題が時々発生することに気づきました。繰り返しますが、私は専門家ではないので、推測しているだけです…

すみません、早とちりだったようです…

数分後、元の動作に戻りました。ロックされています。コンポーザーをインスペクトすると、以下の表示があります。

やはり、コンポーネントのままでいこうと思います。

「いいね!」 2

それがあなたの望むように動作するなら、:chefs_kiss:

興味本位ですが、データエクスプローラープラグインがインストールされている場合、これを実行して何が表示されるか確認してもらえますか?

SELECT id as category_id, topic_template
from categories

他のサイト(たまたまデフォルトのロケールがドイツ語でした)でこれをテストしたところ、未分類の疑似カテゴリにこっそりテンプレートが追加されており、それがそのサイトで同様の動作を引き起こしたようです。

Obsidianフォーラムでも同様の動作に気づきました。カテゴリを選択するまでロックされているので、おそらく新しい動作なのでしょうか?

データエクスプローラープラグインは持っていません、すみません。

そうは思いません。:thinking: テストした最近更新された両方のサイトで、動作は期待どおりです(「デフォルトカテゴリ」やトピックテンプレートがない場合、カテゴリを選択する前に自由に記述できます)。

ドイツ語ロケールのサイトで「未分類」トピックテンプレートがどこから来たのか、私たちは理解できませんでした。何らかの理由でこっそり自動追加されたものが、誰も気づかずに意図した機能を壊してしまう可能性があります。

あなたのサイトにはありますか?(そして、もしよろしければあなたの「デフォルトロケール」も教えていただけると幸いです)

/c/uncategorized/edit/topic-template

ETA: データエクスプローラーの代替として、スタッフログを「トピックテンプレート」でフィルタリングして、追加情報がないか確認することもできます。

(Moinさんが以下で共有したフィルタリングされたリンクもここに追加します)

/admin/logs/staff_action_logs?filters=%7B%22subject%22%3A%22topic_template%22%7D

素晴らしいプラグインです。強くお勧めします。:slight_smile:

「いいね!」 3

インターフェースでそれをフィルタリングするのは少し難しいと思います。なぜなら、アクションしかフィルタリングできず、サブジェクトはフィルタリングできないからです。「カテゴリ設定の変更」アクションには多くのログが存在する可能性があります。しかし、URLにサブジェクトフィルターを追加できます: /admin/logs/staff_action_logs?filters=%7B%22subject%22%3A%22topic_template%22%7D

「いいね!」 2

インストールしないと損ですよ。とても便利ですから。 :slight_smile:

「いいね!」 3

Obsidianのフォーラムが私のフォーラムと同じように動作するのは奇妙ですね。不思議なものです…

ここも空です。実際、どこにもテンプレートは設定していないと思います。

「いいね!」 1

Lillyさん、このプラグインを共有してくださりありがとうございます(@JammyDodgerさんもありがとうございます)。ぜひ拝見します。

「いいね!」 1

もし興味があれば、try.discourse.orgでデフォルトの動作を確認できるはずです。 いいえ、勘違いしていました。Tryにはデフォルトカテゴリが設定されています。

発掘したいと思っていたのは、忘れられたものです。:slight_smile: しかし、未分類に自動追加されるものがないのであれば、潜在的なバグの可能性は排除されると思います。それは良いことです。:+1:

スタッフログもあります(Moinが共有したリンクを使用)、しかしあなたは回避策に満足しているようですので、これ以上の情報を求めるのはやめます。:slight_smile: