フォームテンプレートの作成

:bookmark: このガイドでは、Discourse でコンテンツを構造化するためのフォームテンプレートの使用方法を説明します。

:person_raising_hand: 必要なユーザーレベル: 管理者

フォームテンプレートを使用すると、ユーザーがトピックを作成する際に入力できる検証ルールを備えた構造化フォームを作成できます。これにより、バグ報告や機能リクエストなど、サポートに必要なすべての情報がユーザーから提供されることを保証できます。

注: 構造化されたフォームというよりもガイドラインとして機能するテンプレートについては、トピックテンプレートの使用を検討してください。

フォームテンプレートの有効化

今後の変更 で、フォームテンプレートを有効にするを「すべて」に設定することで、フォームテンプレートを有効にできます。

フォームテンプレートの作成

フォームテンプレートは、管理 > 外観 > フォームテンプレート (/admin/customize/form-templates) に移動して作成および管理できます。

フォームテンプレートを作成するには:

  1. 新規テンプレートをクリックします。

  1. テンプレート名フィールドを、テンプレートの内部名に更新します。

  2. ページ上部のボタンを使用して、フォームのさまざまなフィールドを追加し、フィールド属性を更新します(詳細は後述)。オプションの多くは標準的なフォームフィールドタイプ(例:チェックボックス、短い回答、ドロップダウンなど)ですが、いくつか固有のフィールドがあります。

    • タググループセレクター: ユーザーは特定のグループから 1 つ以上のタグを選択できます。

    • Markdown回答: ユーザーはコンポーザーのミニバージョンに直接コンテンツを入力できます。これは、メンバーがコードなどの Markdown を直接入力する必要がある場合や、リッチエディタでサポートされているその他の書式設定が必要な場合に最適です。

  3. 入力に希望する検証を追加します。キーの検証ボタンをクリックします(以下にも表示されています)。

  4. プレビューボタンをクリックして、すべてが正しく表示されていることを確認します。

  5. 保存をクリックします。

フィールド属性

すべてのフィールドタイプの共通属性:

  • label: 表示されるフィールド名
  • placeholder: 空のフィールド(入力、テキストエリア、ドロップダウン、複数選択)に表示されるヘルパーテキスト
  • description: フィールドの下に追加のコンテキストまたは指示を表示

アップロード固有の属性:

  • file_types: 許可されるファイル拡張子のコンマ区切りリスト(例: .jpg.png.pdf
  • allow_multiple: ユーザーが複数のファイルをアップロードできるかどうかを示すブール値

ドロップダウンおよび複数選択属性:

  • none_label: オプションが選択されていないときに表示されるテキスト
  • choices: 利用可能なオプションの配列

タググループセレクター属性:

  • tag_group: (トップレベルのフィールドプロパティ)選択肢を移入するタググループの名前
  • none_label: オプションが選択されていないときに表示されるテキスト
  • multiple: ユーザーが複数のタグを選択できるかどうかを示すブール値(デフォルトのひな形では true に設定されます)

検証オプション

キー タイプ 説明
required boolean フォームを送信するにはフィールドの入力を必須とします。
minimum integer テキストフィールドの場合、許可される最小文字数を指定します。
maximum integer テキストフィールドの場合、許可される最大文字数を指定します。
pattern regex; string テキストフィールドの場合、許可される入力を指定する正規表現。
type string 入力フィールドの場合、予期される入力タイプ(textemaildatenumberurltelcolorpassword)を指定できます

フォームテンプレートをカテゴリに追加する

テンプレートを作成した後:

  1. テンプレートを使用したいカテゴリに移動します。
  2. カテゴリを編集するために :wrench: ボタンをクリックします。

  1. 詳細設定ボタンを切り替えます(新しい簡略化されたカテゴリ設定を使用している場合)。
  2. テンプレートタブに移動します。
  3. フォームテンプレートのトグルをオンにします。
  4. ドロップダウンメニューでフォームテンプレートを選択します。
  5. カテゴリを保存をクリックします。

複数のテンプレートがカテゴリに割り当てられている場合、ユーザーはトピック作成時にテンプレートピッカーが表示されます。

メンバーのエクスペリエンス

フォームテンプレートを使用したトピックの作成

メンバーがフォームテンプレートのあるカテゴリでトピックを作成すると、コンポーザーにフォームが自動的に表示されます。同じカテゴリに複数のテンプレートが適用されている場合、メンバーはドロップダウンから適切なテンプレートを選択できます。ユーザーが各フィールドを正確に入力せずにトピックを作成しようとすると、検証エラーが表示されます。

フォーム値の事前入力

URL パラメータを使用して、フィールド ID に一致するものでフォームフィールドを事前に入力できます。例: /new-topic?software-version=2.4.1&severity=Critical

これは、特定のフィールドが既に入力された状態でトピック作成にリンクする場合に便利です。

正規表現パターンはどのようなもので、どの正規表現の構文が想定されていますか?以下のパターンを試しましたが、すべて合格してしまい、予期していませんでした。

  • エントリが 180918 の場合の 2[6-9][0-1][0-9][0-3][0-9]
  • エントリが 180918 の場合の /2[6-9][0-1][0-9][0-3][0-9]/
  • エントリが 12 の場合の /2[6-9][0-1][0-9][0-3][0-9]/