{% extends "_layouts/cp" %} {% import "_includes/forms" as forms %} {% if fieldId is defined %} {% set field = craft.fields.getFieldById(fieldId) %} {% if not field %} {% exit 404 %} {% endif %} {% endif %} {% set groups = craft.fields.getAllGroups('id') %} {% if not groups %} {% exit 404 %} {% endif %} {% set groupId = craft.request.getQuery('groupId') %} {% if not groupId %} {% if field is defined %} {% set groupId = field.groupId %} {% else %} {% set groupId = groups|keys[0] %} {% endif %} {% endif %} {% if groups[groupId] is not defined %} {% exit 404 %} {% endif %} {% set crumbs = [ { label: "Settings"|t, url: url('settings') }, { label: "Fields"|t, url: url('settings/fields') }, { label: groups[groupId].name, url: url('settings/fields/'~groupId) } ] %} {% if fieldId is defined %} {% set title = field.name %} {% else %} {% set title = "Create a new field"|t %} {% endif %} {% set fieldTypes = craft.fields.getAllFieldTypes %} {% if field is defined %} {% set fieldType = craft.fields.populateFieldType(field) %} {% set isFieldTypeMissing = not fieldType %} {% else %} {% set isFieldTypeMissing = false %} {% endif %} {% if fieldType is not defined or isFieldTypeMissing %} {% set fieldType = craft.fields.getFieldType('PlainText') %} {% endif %} {% set content %}
{% if fieldId is defined %} {% endif %} {% 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: groupId }) }} {{ forms.textField({ label: "Name"|t, instructions: "What this field will be called in the CP."|t, id: 'name', name: 'name', value: (field is defined ? field.name : null), errors: (field is defined ? field.getErrors('name') : null), required: true, translatable: true, autofocus: true }) }} {{ forms.textField({ label: "Handle"|t, instructions: "How you’ll refer to this field in the templates."|t, id: 'handle', class: 'code', name: 'handle', value: (field is defined ? field.handle : null), errors: (field is defined ? field.getErrors('handle') : null), required: true, }) }} {{ forms.textareaField({ label: "Instructions"|t, instructions: "Helper text to guide the author."|t, name: 'instructions', value: (field is defined ? field.instructions : null), errors: (field is defined ? field.getErrors('instructions') : null), translatable: true }) }} {% if craft.hasPackage('Localize') %} {{ forms.checkboxField({ label: "This field is translatable"|t, name: 'translatable', checked: (field is defined ? field.translatable : false) }) }} {% endif %}
{{ forms.selectField({ label: "Type", instructions: "What type of field is this?"|t ~ (fieldId is defined ? '
'~"Careful—changing this may result in data loss."|t~'' : ''), id: 'type', name: 'type', options: fieldTypes, value: fieldType.classHandle, errors: (isFieldTypeMissing ? ["The fieldtype class “{class}” could not be found."|t({ class: field.type })] : null), toggle: true }) }} {% for _fieldType in fieldTypes %} {% set isCurrent = (_fieldType.classHandle == fieldType.classHandle) %} {% if isCurrent %} {% set settings = fieldType.settingsHtml %} {% else %} {% set settings = _fieldType.settingsHtml %} {% endif %} {% if settings %} {% endif %} {% endfor %}
{% endset %} {% if field is not defined or not field.handle %} {% includeJs "new Craft.HandleGenerator('#name', '#handle');" %} {% endif %}