Fields

Add/modify fields

How to create a field

Create file

Add a yml field file in fields directory.

layouts/
└── partials/
    └── admin/
        └── fields/

Simple widget

{
  label: '',
  name: '',
  widget: '',
  required: false,
  i18n: true 
}

List or Object widget

{{- $fields := slice 
  "title" 
  "text" 
  "image" -}}
# This line allows you to modify the fields via the parameters
{{- $fields = partial "admin/func/get_fields.html" (dict "block" . "fields" $fields) -}}
{
  label: '',
  name: '',
  widget: 'object',
  required: false,
  i18n: true,
  collapsed: true,
  {{ partial "admin/fields/_fields.yml" $fields }}
}

Relation widget

Use our relation field partial .

Arguments

collection: string # collection name, required
display_fields: slice # ["title"] default, optional
filters: string # value for filtering datas, optional
name: string # name field, required
multiple: boolean # false default, optional
options: slice # list of options, required
required: boolean # false default, optional
search_fields: slice # ["title"] default, optional

Examples

In fields via get_fields:

{{- $relation := dict "relation" (dict 
  "collection" $collection 
  "name" "items" 
  "multiple" true 
  "required" true) -}} 

Via partial:

{{- partial "admin/fields/relation.yml" (dict 
  "collection" $collection 
  "name" "items" 
  "multiple" true 
  "required" true) }}

Select widget

Use our select field partial .

Arguments

default: string # value name of selected item, optional
field: string # name field, required
i18n: string # target a specifc nested node in file, optional
multiple: boolean # false default, optional
options: slice # list of options, required
required: boolean # false default, optional

Examples

In fields via get_fields:

{{- $select := (dict "select" (dict 
  "field" "align" 
  "options" (slice "start" "center" "end") 
  "required" false
  )) }}

Via partial:

{{- partial "admin/fields/select.yml" (dict 
  "field" "align" 
  "options" (slice "start" "center" "end") 
  "required" false
  ) }}

Add or remove fields in object field

/config/_default/params.yaml

In this example, we set two fields (title and text with markdown) for the Hero field.

params:
  admin:
    fields:
      # Array of available fields for a fields
      # e.g with hero field
      hero:
        - title
        - text_markdown

List of Hugolify fields

Hugolify fields See fields in repository