{% import '_includes/forms' as forms %} {% set nameLabel = nameLabel ?? name ?? null %} {% set handle = handle ?? null %} {% set instructions = instructions ?? null %} {% set instructionsHandle = instructionsHandle ?? handle ?? null %} {% set default = default ?? null %} {% set required = required ?? null %} {% set attribute = attribute ?? null %} {% set field = field ?? null %} {% set fieldClass = fieldClass ?? null %} {# Variables to help with fetching value/defaults and namespacing. Should provide an array that reflects the #} {# mapping data structure. For normal fields, this is just the handle, but Matrix Table, and others are more complex #} {# ie: matrixField.blocks.blockType.fields.field.node - woah! #} {% set path = path ?? [handle] %} {% set namespacePath = path|join('][') %} {% set nodePath = path|join('.') ~ '.node' %} {% set defaultPath = path|join('.') ~ '.default' %} {% set optionsPath = path|join('.') ~ '.options' %} {% set namespace = 'fieldMapping[' ~ namespacePath ~ ']' %} {% set value = hash_get(feed.fieldMapping, nodePath) %} {% set defaultValue = hash_get(feed.fieldMapping, defaultPath) %} {% set classes = classes ?? [] %} {% set elementFields = elementFields ?? null %} {% set isSubElementField = isSubElementField ?? null %} {% if isSubElementField %} {% set classes = classes|merge([ 'element-sub-field' ]) %} {% endif %}
{% if isSubElementField %} {% endif %}
{% if attribute and instructions %}

{{ instructions|raw }}

{% endif %} {% if fieldClass and instructionsHandle %}
{{ instructionsHandle }}
{% endif %} {% if elementFields|length %}
{{ forms.lightswitchField({ small: true, label: 'Element fields ({num})'|t('feed-me', { num: elementFields|length }), }) }}
{% endif %}
{% namespace namespace %} {% block fieldSettings %} {% if attribute %} {% endif %} {% if field and fieldClass %} {% endif %} {% endblock %} {% endnamespace %} {% block additionalFieldSettings %} {% endblock %}
{% namespace namespace %} {{ forms.selectField({ name: 'node', value: value, options: feedData, class: 'selectize fullwidth', }) }}
{% block extraSettings %} {% endblock %}
{% endnamespace %} {% namespace namespace %}
{% block defaultSettings %} {% if default.type is defined %} {% if default.type == 'text' %} {{ forms.textField({ name: 'default', value: defaultValue, }) }} {% elseif default.type == 'select' %} {{ forms.selectField({ name: 'default', class: '', value: defaultValue, options: default.options, }) }} {% elseif default.type == 'checkbox' %} {{ forms.checkboxField({ name: 'default', checked: defaultValue, }) }} {% elseif default.type == 'checkboxGroup' %} {{ forms.checkboxGroup({ name: 'default', values: defaultValue, options: default.options, }) }} {% elseif default.type == 'date' %} {{ forms.dateField({ name: 'default', value: craft.feedme.formatDateTime(defaultValue), }) }} {% elseif default.type == 'time' %} {{ forms.timeField({ name: 'default', value: craft.feedme.formatDateTime(defaultValue), }) }} {% elseif default.type == 'dateTime' %} {{ forms.dateTimeField({ name: 'default', value: craft.feedme.formatDateTime(defaultValue), }) }} {% elseif default.type == 'lightswitch' %} {{ forms.lightswitchField({ name: 'default', on: defaultValue, }) }} {% elseif default.type == 'elementselect' %} {% set elements = [] %} {% for elementId in defaultValue %} {% set elements = elements|merge([ craft.app.elements.getElementById(elementId) ]) %} {% endfor %} {{ forms.elementSelectField({ id: 'default', name: 'default', elementType: default.options.elementType, criteria: default.options.criteria ?? null, selectionLabel: default.options.selectionLabel, limit: default.options.limit ?? null, elements: elements, sources: default.options.sources ?? '*', }) }} {% endif %} {% endif %} {% endblock %}
{% endnamespace %} {% block elementFields %} {% if field is defined and elementFields|length %} {% for elementField in elementFields %} {% set fieldClass = craft.feedme.fields.getRegisteredField(className(elementField)) %} {% set template = fieldClass.getMappingTemplate() %} {% if parentPath is defined %} {% set path = parentPath|merge([ 'fields', elementField.handle ]) %} {% else %} {% set path = [ handle, 'fields', elementField.handle ] %} {% endif %} {# Be smart about what we include to child field templates #} {% include template ignore missing with { name: elementField.name, handle: elementField.handle, instructionHandle: elementField.handle, isSubElementField: true, path: path, feed: feed, feedData: feedData, field: elementField, fieldClass: fieldClass, feedData: feedData, } only %} {% endfor %} {% endif %} {% endblock %}