Discourse アンケート

:discourse2: 概要 Discourse Surveysプラグインを使用すると、簡単なMarkdown構文を使用してDiscourseフォーラムの投稿内に直接アンケートを作成できます。
:hammer_and_wrench: リポジトリリンク https://github.com/discourse/discourse-surveys
:open_book: インストールガイド Discourseにプラグインをインストールする方法

Discourse Surveysプラグインを使用すると、簡単なMarkdown構文を使用してDiscourseフォーラムの投稿内に直接アンケートを作成できます。このプラグインは現在、ラジオボタン、チェックボックス、ドロップダウン、数値入力、テキストエリア、星評価、いいね/よくないね評価など、さまざまな質問タイプをサポートしています。

特徴

  • 7種類のフィールドタイプ: ラジオボタン、チェックボックス、ドロップダウン、テキストエリア、数値選択、星評価、いいね/よくないね評価

  • 必須/オプションのフィールド: フィールドを必須としてマークして、入力を確実に完了させます

  • 絵文字のサポート: アンケートの選択肢で絵文字を使用できます

  • Markdownのサポート: 質問と選択肢でのリッチテキスト形式

  • ユーザー認証: 匿名ユーザーに対する自動ログインプロンプト

  • 回答の追跡: 同じユーザーからの重複送信を防止します

  • 権限認識: トピックとカテゴリの権限を尊重します

  • モバイル対応: すべてのデバイスでシームレスに動作します

使用方法

基本的なアンケートの構造

すべてのアンケートは[survey]タグで囲む必要があります。


[survey name="my-survey" title="顧客フィードバックアンケート"]

<!-- アンケートのフィールドはここに -->

[/survey]

アンケート属性

  • name: アンケートの一意の識別子(デフォルトは「survey」)

  • title: アンケートの上部に表示されるオプションのタイトル

  • public: 可視性を設定(将来の機能)

  • status: アンケートのステータス(将来の機能)

フィールドタイプ

1. ラジオボタン(単一選択)


[radio question="好きな色は何ですか?"]

- 赤

- 青

- 緑

- 黄色

[/radio]

2. チェックボックス(複数選択)


[checkbox question="どの機能を使用していますか?(すべて選択してください)"]

- Eメール通知

- モバイルアプリ

- デスクトップ通知

- APIアクセス

[/checkbox]

3. ドロップダウン選択


[dropdown question="あなたの年齢層は?"]

- 18歳未満

- 18-24歳

- 25-34歳

- 35-44歳

- 45-54歳

- 55歳以上

[/dropdown]

4. テキストエリア(長文テキスト)


[textarea question="詳細なフィードバックをお願いします:" required="false"]

[/textarea]

5. 数値選択


[number question="この機能を1から10で評価してください:" min="1" max="10"]

[/number]

6. 星評価


[star question="全体的な体験をどのように評価しますか?"]

[/star]

7. いいね/よくないね


[thumbs question="他者におすすめしますか?"]

[/thumbs]

フィールド属性

すべてのフィールドタイプは、これらの属性をサポートしています。

  • question: 質問テキスト(必須)

  • required: フィールドに入力が必要かどうか(true/false、デフォルトはtrue

  • min: 数値フィールドの最小値

  • max: 数値フィールドの最大値

完全な例

基本的なアンケートMarkdown

利用可能なすべてのフィールドを含む、基本的なアンケートMarkdownの例を次に示します。

[survey name="awesome-survey-thumbs" title="素晴らしいアンケート"]

[radio question="いずれか1つのオプションを選択してください:"]
- 猫
- 犬
[/radio]

[checkbox question="複数のオプションを選択してください:"]
- 赤
- 青
- 緑
[/checkbox]

[dropdown question="性別:"]
- 男性
- 女性
[/dropdown]

[number question="このアンケートを1から10で評価してください:"]
[/number]

[textarea question="xyzに関するフィードバックは何ですか?" required="false"]
[/textarea]

[star question="全体的な経験をどのように評価しますか?"]
[/star]

[thumbs question="当社のサービスに満足しましたか?"]
[/thumbs]

[/survey]

アンケートのレンダリング

上記のMarkdownがDiscourseでどのようにレンダリングされるかの例を以下に示します。

高度な使用方法

選択肢での絵文字の使用


[radio question="お気に入りの動物を選んでください:"]

- 🐈 猫

- 🐶 犬

- 🐦 鳥

- 🐠 魚

[/radio]

質問でのMarkdown書式設定


[radio question="どの**プログラミング言語**がお好みですか?"]
- JavaScript
- Python
- Ruby
- Go
[/radio]

[checkbox question="あなたの*お気に入りの*機能を選択してください:"]
- 速度
- セキュリティ
- 使いやすさ
[/checkbox]

[textarea question="当社の[ガイドライン](https://example.com)を読んでフィードバックを提供してください:"]
[/textarea]

サポートされている書式設定:

  • 太字: **テキスト**
  • 斜体: *テキスト*
  • 打ち消し線: ~~テキスト~~
  • インラインコード: `コード`
  • リンク: [テキスト](URL)

必須フィールドとオプションフィールドの混在


[survey name="mixed-survey"]

[radio question="あなたの役割は何ですか?" required="true"]

- 開発者

- デザイナー

- マネージャー

- その他

[/radio]

[textarea question="追加の考えはありますか?" required="false"]

[/textarea]

[/survey]

アンケート結果

現在、このプラグインには、アンケート結果を直接表示するためのバックエンドUXはありません。代わりに、Data Explorerクエリに頼ってアンケートの回答を取得および分析できます。ここにクエリの例を示します。

-- [params]
-- text :survey_name = survey

SELECT
  s.id,
  s.name,
  s.post_id,
  sf.question,
  COALESCE(sr.value, sfo.html) AS value,
  sr.user_id,
  sr.created_at AS responded_at
FROM
  surveys s
  JOIN survey_fields sf ON sf.survey_id = s.id
  JOIN survey_responses sr ON sr.survey_field_id = sf.id
  LEFT JOIN survey_field_options sfo ON sfo.id = sr.survey_field_option_id
WHERE
  s.name = :survey_name
ORDER BY
  s.id DESC

権限とセキュリティ

  • ログイン必須: 匿名ユーザーは回答を送信する前にログインする必要があります

  • ユーザーごとの回答は1回のみ: 各ユーザーはアンケートごとに1つの回答のみを送信できます

  • トピック権限: ユーザーはアンケートを表示するためにトピックの閲覧権限を持っている必要があります

  • 投稿権限: ユーザーは回答を送信するためにトピックの投稿権限を持っている必要があります

  • アーカイブされたトピック: アーカイブされたトピック内のアンケートは新しい回答を受け付けることができません

  • 削除された投稿: 削除された投稿内のアンケートはアクセスできなくなります

制限事項

  • 投稿ごとに許可されるアンケートは1つのみ

  • 回答を受け取った後、アンケートの構造を変更することはできません

  • すべてのアンケートフィールドの質問は、単一のアンケート内で一意である必要があります

  • アンケートフィールドの質問は空白にすることはできません

技術的な詳細

データベーススキーマ

このプラグインは4つの主要なデータベーステーブルを作成します。

  • surveys: 主要なアンケートレコード

  • survey_fields: アンケート内の個々のフィールド

  • survey_field_options: 選択ベースのフィールドのオプション

  • survey_responses: アンケートフィールドへのユーザーの回答

スタイリング

このプラグインには、テーマに適応するレスポンシブCSSが含まれています。カスタムスタイリングは、これらのCSSクラスをターゲットにすることで追加できます。

  • .survey - メインのアンケートコンテナ

  • .survey-field - 個々のフィールドのラッパー

  • .field-[type] - 特定のフィールドタイプのコンテナ

  • .submit-response - 送信ボタン

「いいね!」 32