{% import "_includes/forms" as forms %} {% set groups = craft.fields.getAllGroups('id') %} {% set fieldTypes = craft.fields.getAllFieldTypes() %} {% if field is defined %} {% set fieldType = field.getFieldType() %} {% set isFieldTypeMissing = not fieldType %} {% else %} {% set isFieldTypeMissing = false %} {% endif %} {% if fieldType is not defined or isFieldTypeMissing %} {% set fieldType = craft.fields.getFieldType('PlainText') %} {% endif %}
{{ getCsrfInput() }} {% set groupOptions = [] %} {% for group in groups %} {% set groupOptions = groupOptions|merge([{ label: group.name, value: group.id }]) %} {% endfor %} {{ forms.selectField({ first: true, label: "Group"|t, instructions: "Which group should this field be displayed in?"|t, id: 'group', name: 'group', options: groupOptions, value: group.id, }) }} {{ forms.textField({ label: "Name"|t, instructions: 'What this field will be called in the CP.'|t, id: 'name', name: 'name', required: true, autofocus: true, value: field.name, errors: (field is defined ? field.getErrors('name') : null), }) }} {{ forms.textField({ label: "Handle"|t, instructions: "How you’ll refer to this field in the templates."|t, id: 'handle', class: 'code', name: 'handle', required: true, value: field.handle, errors: (field is defined ? field.getErrors('handle') : null), }) }} {{ forms.textareaField({ label: "Instructions"|t, instructions: "Helper text to guide the author."|t, id: 'instructions', class: 'nicetext', name: 'instructions', value: (field is defined ? field.instructions : null), errors: (field is defined ? field.getErrors('instructions') : null), translatable: true }) }} {% if craft.isLocalized() %} {{ forms.checkboxField({ label: "This field is translatable"|t, name: 'translatable', checked: (field is defined ? field.translatable : false) }) }} {% endif %} {{ forms.selectField({ label: "Field Type"|t, instructions: "What type of field is this?"|t, warning: (field.id is defined ? "Changing this may result in data loss."|t), id: 'type', name: 'type', options: fieldTypes, value: field.fieldType.getClassHandle(), errors: (isFieldTypeMissing ? ["The fieldtype class “{class}” could not be found."|t({ class: field.type })] : null), toggle: true }) }} {# Namespaced due to issues with JS (mostly EditableTables) either not firing, or binding multiple times #} {% if field.fieldType %} {% namespace 'types['~field.fieldType.getClassHandle()~']' %} {{ field.fieldType.getSettingsHtml() | raw }} {% endnamespace %} {% else %} {% endif %}
{% if field is not defined or not field.handle %} {% includeJs "new Craft.HandleGenerator('#name', '#handle');" %} {% endif %}