メニュー

リファレンス:ブループリントのform.fields

管理プラグインで使えるform.fields

管理パネルでは、さまざまな入力欄を作れます。
このドキュメントでは、それぞれの入力欄のプロパティの完全なリファレンスと、使用例を提供します。

管理パネルでは、以下に一覧表示している、 form.fields に加えて、フロントエンドで利用できる form.fields もすべて利用できます。
フロントエンドのフォーム入力欄のリファレンス に解説されています。

管理プラグインだけで利用できる特別なフォームフィールド

フィールド説明
Arraykey-value 形式の配列を作ります
BackupHistory
Blueprint
Colorpickerカラーピッカーを表示
Columns複数のカラムに分けます
ColumnColumns フィールドで使われて)1つのカラムを表示します
Cron
CronStatus
Dateformat渡されたフォーマットで、今日/今の時間 をレンダリングする特別な選択
Datetime日時を選択するフィールド
Editormarkdown エディタを表示
Elements選択された “トリガー” の値をもとに、子要素を見せたり/隠したりする条件付きの整理用フィールドです。表示するオプションが多いとき、煩雑さを抑えるのにとても便利です
Fieldset折りたたみ可能なアコーディオン内にフィールドのセットをグルーピングします
File管理プラグイン内では、 File は、プラグインやテーマ設定(ブループリント)で使用されることに特化しています。ファイルのアップロード保存と、そのファイルの削除、テーマ/プラグイン設定からの参照の削除などを行います
FilepickerFilepicker により、web サーバーのファイルシステムに保存したファイルを選択できます
Frontmatter
IconPicker
Listフィールドのコレクションを作ります
Markdown
MediaPicker
Multilevel
Order
PageMedia
PageMediaSelectすべてのページメディアからの選択を表示します。ページのブループリントで使われ、ユーザーがそのフィールドに適用されたメディアファイルを選べるようになります
Pagesサイトページの一覧を表示します
Parents
Permissions
Range
Section設定ページをセクションに区切ります; each section comes with a title
Selectizeテキストボックスとセレクトボックスのハイブリッドです。タグなどの要素をピックアップするのに便利です。
SelectUnique
Taxonomyタクソノミーを1つもしくは複数選択するために、事前に設定された特別な選択肢
ThemeSelect
UserInfo
Xss

一般的な属性フィールド

このリストの属性は、基本的にすべてのフィールドで利用可能です。
それぞれのフィールドは、一般的な属性を共有しますが、特定のフィールドでは、適用されないこともあります。
フィールドでどの属性が利用可能かを知る最良の方法は、このページの説明を読み、どの属性が言及されているか確認することです。

このリストは共通事項なので、フィールドで説明は繰り返しません。

属性説明
autocompleteon もしくは off を受付
autofocus有効化すると、フィールドをオートフォーカスします
classes文字列を受け付け、CSSのクラスを追加します
defaultデフォルト値を設定します。ユーザーが指定した値か、このデフォルト値が必ず入力されます。placeholder も見てください。
disabledフィールドを disabled 状態にします
helpフィールドに tooltip を追加します
idlabel の for 属性とともに、フィールドに id を設定します
labellabel を設定します
nameフィールドの name を設定します
novalidateフィールドをバリデーション対象外にします
placeholderフィールドに placeholder 値を設定します。ユーザーが自分の値のプロンプトとして見ることができる値ですが、最終的な書き込みには影響しません。default も見てください。
readonlyフィールドを読み取り専用にします
sizeフィールドに size を設定します。この size は、コンテナにクラスとして追加されます。large, x-small, medium, long, small が適切な値ですが、もちろんフロントエンドで使える別の値を追加することも可能です。
styleフィールドに style を設定します。vertical を設定すると、フィールドが最大幅で表示されます。これはフォームをすっきりさせる簡単な方法です。
titleフィールドのタイトル値を設定します
toggleableフィールドの 有効化/無効化 をトグルするチェックボックスを追加します
validate.requiredポジティブな値(true など)を設定すると、フィールドが required になります
validate.patternバリデーションのパターンを設定します
validate.messageバリデーションが失敗したときに表示されるメッセージを設定します
validate.typeバリデーション中に使われるフィールドタイプを設定します

フィールドについてより詳しく知る

どのようにソースコードからフィールドがビルドされるかは、ここで読めます: Form Plugin によるフィールドの追加 及び 管理パネルでのみ利用可能なフィールド

Validation

ほとんどのフィールドで、バリデーションできます。

validate:
    required: true

上記により、そのフィールドは required (必須入力) となります。

validate:
    message: 'Some message'

上記では、フィールドが正しく入力されなかったときに、定義されたメッセージを表示します。

validate:
    pattern: 'Some pattern'

上記では、入力値を、渡された正規表現でバリデーションします。
たとえば:

  • pattern: "[1-9][0-9]*"
  • pattern: '[A-Za-z0-9-]+'
  • pattern: '[a-z0-9-]+'
  • pattern: '^[a-z0-9_-]{3,16}$'
  • pattern: '(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}'

validate.type

validate.type は、どの type (型)に対して入力値を検証するかを指定します。

いくつかの具体例:

editor タイプの入力欄への入力を、textarea タイプに適合するかチェックしたい:

content:
    type: editor
    validate:
      type: textarea

selectize タイプの入力欄への入力を、 commalist タイプに適合するかチェックしたい:

taxonomies:
    type: selectize
    size: large
    label: PLUGIN_ADMIN.TAXONOMY_TYPES
    classes: fancy
    help: PLUGIN_ADMIN.TAXONOMY_TYPES_HELP
    validate:
        type: commalist

filters.category:
  type: selectize
  label: Category filter
  help: Comma separated list of category names
  validate:
    type: commalist

text タイプの入力欄への入力を、eメール タイプに適合するかチェックしたい:

author.email:
    type: text
    size: large
    label: PLUGIN_ADMIN.DEFAULT_EMAIL
    help: PLUGIN_ADMIN.DEFAULT_EMAIL_HELP
    validate:
        type: email

toggle タイプの入力欄への入力を、bool タイプに適合するかチェックしたい:

summary.enabled:
    type: toggle
    label: PLUGIN_ADMIN.ENABLED
    highlight: 1
    help: PLUGIN_ADMIN.ENABLED_HELP
    options:
        1: PLUGIN_ADMIN.YES
        0: PLUGIN_ADMIN.NO
    validate:
        type: bool

text タイプの入力欄への入力を、int 型で、0から65536の間にあるかチェックしたい:

summary.size:
    type: text
    size: x-small
    label: PLUGIN_ADMIN.SUMMARY_SIZE
    help: PLUGIN_ADMIN.SUMMARY_SIZE_HELP
    validate:
        type: int
        min: 0
        max: 65536

text タイプの入力欄への入力を、数字で 1以上 に適合するかチェックしたい:

pages.list.count:
    type: text
    size: x-small
    label: PLUGIN_ADMIN.DEFAULT_PAGE_COUNT
    help: PLUGIN_ADMIN.DEFAULT_PAGE_COUNT_HELP
    validate:
        type: number
        min: 1

taxonomy タイプの入力欄への入力を、array 型に適合するかチェックしたい:

header.taxonomy:
  type: taxonomy
  label: PLUGIN_ADMIN.TAXONOMY
  multiple: true
  validate:
    type: array

text タイプの入力欄への入力を、slug 型に適合するかチェックしたい:

folder:
  type: text
  label: PLUGIN_ADMIN.FOLDER_NAME
  validate:
    type: slug

Array Field

Array

シンプルな key - values オブジェクト(一般的な連想配列)を作ります。
もしくは、 value_only オプションを使うと、ただの values のリスト(配列) を作ります。

具体例:

metadata:
   type: array
   label: PLUGIN_ADMIN.METADATA
   help: PLUGIN_ADMIN.METADATA_HELP
   placeholder_key: PLUGIN_ADMIN.METADATA_KEY
   placeholder_value: PLUGIN_ADMIN.METADATA_VALUE
   required: true
属性説明
placeholder_key
placeholder_value
value_only配列の key を求めたり、保存したりしないでください。シンプルな値のみの配列を保存してください。
value_type配列値を入力する際に、小さい text field ではなく、 textarea field で表示したい場合に、textarea を設定してください
利用可能な一般属性
default
help
label
name
style
toggleable
validate.required
validate.type

Colorpicker Field

Colorpicker

カラーピッカーを表示します

具体例:

color:
   type: colorpicker
   label: Choose a color
   default: '#FFFFFF'
利用可能な一般属性
autocomplete
autofocus
classes
default
disabled
help
id
label
name
placeholder
style
title
toggleable
validate.message
validate.required
validate.type

Columns / column Fields

Columns

columnscolumn フィールドタイプは、フィールドをカラムに (縦に) 分割します。

具体例:

columns:
  type: columns
  fields:
    column1:
      type: column
      fields:

        # .... subfields

    column2:
      type: column
      fields:

        # .... other subfields
属性説明
fieldscolumns / column のサブフィールド

Dateformat Field

DateFormat

日付のフォーマットの選択肢です

具体例:

pages.dateformat.short:
    type: dateformat
    size: medium
    classes: fancy
    label: PLUGIN_ADMIN.SHORT_DATE_FORMAT
    help: PLUGIN_ADMIN.SHORT_DATE_FORMAT_HELP
    default: "jS M Y"
    options:
        "F jS \\a\\t g:ia": Date1
        "l jS \\of F g:i A": Date2
        "D, d M Y G:i:s": Date3
        "d-m-y G:i": Date4
        "jS M Y": Date5
属性説明
optionskey-value 型の選択肢
multiple真偽値。もしポジティブ(true など)なら、複数の値を許容します
selectize
利用可能な一般属性
autofocus
classes
default
disabled
help
label
name
novalidate
size
style
toggleable
validate.required
validate.type

Datetime Field

DateTime

日時のフィールドを保存し、表示します

具体例:

header.date:
  type: datetime
  label: PLUGIN_ADMIN.DATE
  toggleable: true
  help: PLUGIN_ADMIN.DATE_HELP
属性説明
format日時のフォーマット値です。 PHPのdatetime formats がすべて使えます
validate.min許容する最小値
validate.max許容する最大値
利用可能な一般属性
default
help
label
name
size
style
toggleable
validate.required
validate.type

Editor Field

Editor Field

Codemirror エディタを表示します

具体例:

frontmatter:
  classes: frontmatter
  type: editor
  label: PLUGIN_ADMIN.FRONTMATTER
  autofocus: true
  codemirror:
    mode: 'yaml'
    indentUnit: 4
    autofocus: true
    indentWithTabs: false
    lineNumbers: true
    styleActiveLine: true
    gutters: ['CodeMirror-lint-markers']
    lint: true
属性説明
codemirrorcodemirror editor の設定値。デフォルトでは、gfm(github flavored markdown)モードです
resizerポジティブな値の場合、resizer を有効化します。そうでない場合、エディタは固定です。
利用可能な一般属性
default
help
label
name
style
validate.required
validate.type
autofocus
classes
disabled
id
novalidate
placeholder
readonly

Elements Field

Elements

このフィールドは、整理するだけのものです。
アイテムをグループ化し、名前を付け、select 要素の値と一致すれば、それだけを表示します。

具体例:

header.elements-demo.type:
  type: elements
  label: 'Elements Demo'
  size: small
  default: gelato
  options:
    gelato: Gelato Flavors
    color: Color
    planets: Planets
  fields:
    gelato:
      type: element
      fields:
        .flavours:
          type: array
          default:
            pistacchio: Pistacchio
            vanilla: Vanilla
            chocolate: Chocolate
            stracciatella: Stracciatella
    color:
      type: element
      fields:
        .description:
          type: textarea
          rows: 10
          default: Color (American English) or colour (Commonwealth English) is the visual perceptual property corresponding in humans to the categories called blue, green, red, etc. Color derives from the spectrum of light (distribution of light power versus wavelength) interacting in the eye with the spectral sensitivities of the light receptors. Color categories and physical specifications of color are also associated with objects or materials based on their physical properties such as light absorption, reflection, or emission spectra. By defining a color space colors can be identified numerically by their coordinates.
    planets:
      type: element
      fields:
        .favorites:
          type: text
          placeholder: What are your favorite planets?
          markdown: true
          description: 'Find a list of planets from [Wikipedia](https://en.wikipedia.org/wiki/Planet)'

Fieldset Field

Fieldset Field

表示したり消したりできるボックスに、フィールドをまとめます。

具体例:

header.fieldset:
  type: fieldset
  title: Your title
  help: Help text
  info: Info text
  text: Text inside fieldset and before other fields
  icon: comments       # Fork Awesome icons system (see : forkaweso.me).
  collapsed: true      # Initial state of fieldset (see collapsible option)
  collapsible: true    # Whether one can expand the fieldset or not
  fields:
    header.fieldset.an_example_text:
      type: text
      label: text
    header.fieldset.an_example_textarea:
      type: textarea
      label: textarea

[!Note]
Fieldsets は、サブフィールドの状態を正しく記憶させるため、 header. 付きで、テーマ設定ファイルのフロントマターに保存されなければいけません!

[!Info]
既知の問題: フィールドセット内のフィールドで toggleable: を使う場合、 header. が接頭辞として付いていないと、それらの状態が記憶されません。以下は、 ページネーション オプションを変更する、適切な構造の例です:

header.fieldset:
  type: fieldset
  ... etc...
  fields:
    header.content.pagination:
      type: toggle
      toggleable: true
      label: "Activate Pagination ?"
      highlight: 1
      default: 0
      options:
        1: Yes
        0: No
      validate:
        type: bool

Icon of the fieldset

フィールドセットのヘッダにアイコンが使えます。
システムの使うアイコンは、 Fork Awesome です。

属性説明
iconbox 用のアイコン
collapsedtrue にすると、閉じた状態でページが表示されます。デフォルトでは、開いた状態です。
collapsibleフィールドセットを開閉できるかどうか
利用可能な一般属性
disabled
help
label
name
size
style
toggleable

File Field

File Field

[!Info]
file フィールドは、configration と、 テーマ と、プラグイン のブループリントで使われるためのもので、 ページのブループリントのためのものではありません 。ページのためには、既存の pagemedia フィールドを使うべきです。その後のファイルの選択には、 filepicker を使ってください。

[!Info]
file フィールドは、現状、 list フィールド内で期待通りに機能しません。 pagemedia フィールドを list から分けて、リスト内には filepicker フィールドを使ってください。

[!Note]
より詳しくは、 ハウツー: アップロードでファイルを追加 セクションをご覧ください。 また、 file フィールドにアップロードされた画像の表示方法は、 filepicker フィールドによるものとは、同じ方法ではないことにも注意してください。 file フィールドでアップロードした画像へのアクセスに関する詳細は、この レシピ をご覧ください。

具体例:

custom_logo_login_screen:
  type: file
  label: Custom Logo Login Screen
  destination: 'plugins://admin/assets'
  accept:
    - image/*
custom_file:
  type: file
  label: A Label
  destination: 'theme://assets'
  multiple: true
  limit: 5
  filesize: 1
  accept:
    - image/*
属性説明
destinationファイルを保存するフォルダです。ストリームか、Grav ルートフォルダからの相対パスを使います 例: plugins://my-plugin/assets
multipleフィールドごとに、複数のファイルを許可するかどうか
limitWhen multiple を有効化したときに、アップロードできるファイルの数を制限できます
filesize各ファイルに許可される MB 単位のサイズ
accept受け入れ可能なページの mime タイプと拡張子のリストを追加します 例: ["image/*", '.mp3']
random_name各ファイルにランダムなファイル名を使用します。
avoid_overwriting競合が発生した場合、各ファイル名の前にタイムスタンプを追加します
利用可能な一般属性
default
disabled
help
label
name
size
style
toggleable
validate.required
validate.type

Filepicker Field

Filepicker Field

filepicker フィールドタイプは、ページ、プラグイン、テーマの設定(ブループリント)で使われます。
特定の場所からファイルを選択し、ページヘッダーもしくはテーマ / プラグイン設定に保存します。

具体例:

picked_image:
  type: filepicker
  folder: 'theme://images/pages'
  label: Select a file
  preview_images: true
  accept:
    - .png
    - .jpg
header.a_file:
  type: filepicker
  folder: 'self@'
  preview_images: true
  label: Select a file
属性説明
folderストリームもしくは Grav ルートからの相対パスを使い、ファイルを探す対象のフォルダ。 Accepts any value in the file field destination format
accept受け入れるファイル拡張子のリスト
preview_images有効化すると、画像ファイルに小さなプレビューが表示されます
on_demand有効化すると、ファイルピッカーにフォーカスが当たっているときのみファイルや画像が読み込まれます。大きいメディアや、たくさんのファイルピッカーフィールドがある場合に、管理パネルの編集ページの読み込み時間を短縮するのに役に立ちます
利用可能な一般属性
default
disabled
help
label
name
size
style
toggleable
validate.required

Honeypot Field

honeypot フィールドタイプは、入力されるとエラーを返す hidden フィールドを作成します。
ボットによるフォームの入力と送信を防ぐのに便利です。

具体例:

fields:
    - name: honeypot
      type: honeypot

これは、シンプルな text フィールドですが、フロントエンドには表示されません。
コード内のフィールドを探索し、自動入力するボットは、このフィールドも入力する可能性があります。
このエラーにより、フォームは適切に送信されません。
エラーは、メッセージブロックの上部ではなく、フォーム要素の次に表示されます。

ハニーポットは、captcha フィールドの代替としてよく利用されます。

List Field

List Field

list フィールドタイプは、フィールドのコレクションを作成します。
このフィールドには、サブフィールドの親となる fields 属性を与えます。
“Add item” ボタンが表示され、ユーザーはコレクションにアイテムを追加することができます。

具体例:

header.buttons:
  name: buttons
  type: list
  style: vertical
  label: Buttons
  fields:
    .text:
      type: text
      label: Text
    .url:
      type: text
      label: URL
    .primary:
      type: toggle
      label: Primary
      highlight: 1
      default: 1
      options:
          1: 'Yes'
          0: 'No'
      validate:
          type: bool

この例では、次のような管理パネルのインターフェースが生成されます:

ページを保存すると、次のような YAML がページのフロントマターに追加されます:

buttons:
    -
        text: 'Some text'
        url: 'https://getgrav.org'
        primary: false
    -
        text: 'Another text'
        url: 'https://another-url.com'
        primary: true

これは、テーマの Twig で、適切な方法でリストを出力するために使われます。

このフィールド定義の別の例として、 Features のリストがあります。
Antimatter テーマの Features Modular child page で使われます。
すべての feature には、アイコンと、ヘッダーと、テキストが含まれます:

header.features:
  name: features
  type: list
  label: Features

  fields:
    .icon:
      type: text
      label: Icon
    .header:
      type: text
      label: Header
    .text:
      type: text
      label: Text

list フィールドのデータにアクセスし、表示するには、シンプルな twig のループを使います。
次の例のように:

{% for feature in page.header.features %}
    {{ feature.icon }}
    {{ feature.header }}
    {{ feature.text }}
{% endfor %}
属性説明
fieldsサブフィールド
collapsedtrue のとき、初期表示のリストは折りたたまれます。デフォルトでは展開されています。
style水平方向の空間を節約するため、 vertical を設定できます
btnLabel”add new item” のラベルのテキスト
sort真偽値。ネガティブの場合、アイテムの並べ替えをできなくします
controls”Add Item” ボタンをどこに追加するか決めます。 `[top
placementアイテムをどこに追加するか決めます。 `[top
minリストで許容されるアイテムの最小値。
maxリストで許容されるアイテムの最大値。この数字を超えると、 ‘Add item’ ボタンが機能しなくなります
利用可能な一般属性
default
help
label
name
validate.required
validate.type
size

PageMediaSelect Field

pagemediaselect フィールドタイプは、 FTP 経由またはページのメディアマネージャーを使用して、すでにアップロードされているページメディアのいずれかからユーザーがメディアを選択できるようにします。

具体例

header.img_link:
  label: Choose media
  type: pagemediaselect
属性説明
multiple複数のファイルを選択します
利用可能な一般属性
default
help
label
name
style
toggleable
validate.required
validate.type
autofocus
classes
disabled
id
novalidate
size

Pages Field

Pages Field

pages フィールドタイプは、サイトページのリストを表示します。

具体例

home.alias:
    type: pages
    size: medium
    classes: fancy
    label: PLUGIN_ADMIN.HOME_PAGE
    start_route: '/some_page'
    show_all: false
    show_modular: false
    show_root: false
    help: PLUGIN_ADMIN.HOME_PAGE_HELP
属性説明
start_routeリストのルート(根)となるルーティングを選びます
show_fullpathタイトルの代わりに、ページの path を表示します
show_slugslug を表示
show_allすべてのページを表示
show_modularモジュラーページを表示
show_rootルート(根)ページを表示
options追加する選択肢のオプションのリスト
multiple複数ページを選択
limit_levels表示するレベル数
selectize

multiple を true に設定するときは、validate.type: array を追加する必要があります。
そうでなければ、選択されたページの配列が、正しく保存されません。

利用可能な一般属性
default
help
label
name
style
toggleable
validate.required
validate.type
autofocus
classes
disabled
novalidate
size

Section Field

Section フィールドタイプは、設定ページをセクションに分けます。

具体例:

content:
    type: section
    title: PLUGIN_ADMIN.DEFAULTS
    underline: true

    fields:

        #..... subfields
属性説明
titleタイトルの見出し
underlineタイトルの後にアンダーラインを引く
text下に表示するテキスト
securityこのセクションを見せる必要のあるユーザーの credentials の配列

Selectize Field

Selectize

selectize フィールドタイプは、text ボックスと select ボックスのハイブリッドを表示します。
主に、タグ付けやその他の要素選択フィールドに便利です。

具体例:

taxonomies:
    type: selectize
    selectize:
        options:
            - text: "test"
              value: "real value 1"
            - text: "test-2"
              value: "real value 2"
            - text: "test-3"
              value: "real value 3"
    size: large
    label: PLUGIN_ADMIN.TAXONOMY_TYPES
    classes: fancy
    help: PLUGIN_ADMIN.TAXONOMY_TYPES_HELP
    validate:
        type: commalist
利用可能な一般属性
default
help
label
name
style
toggleable
validate.required
validate.type
インプットブロック内の一般属性
autocomplete
autofocus
classes
disabled
id
novalidate
placeholder
readonly
size
title
validate.pattern
validate.message

Taxonomy Field

Taxonomy

taxonomy フィールドタイプは、1つ以上のタクソノミー値を選択するために、事前に設定された、特別な入力欄です。

具体例:

header.taxonomy:
  type: taxonomy
  label: PLUGIN_ADMIN.TAXONOMY
  multiple: true
  validate:
    type: array
属性説明
multiple真偽値。ポジティブのとき、フィールドは複数の値を受け入れます
利用可能な一般属性
autofocus
classes
default
disabled
help
id
label
name
novalidate
outerclasses
size
style
validate.required
validate.pattern
validate.message