{% import '_includes/forms' as forms %} {% import 'feed-me/_macros' as feedMeMacro %} {% if feed.elementGroup %} {% set navId = feed.elementGroup[feed.elementType] %} {% set nav = craft.navigation.getNavById(navId) %} {% endif %} {% set types = [{ label: 'Don‘t import', value: '' }] %} {% for tab in craft.navigation.getRegisteredElements() %} {% set types = types | merge([{ label: tab.label, value: tab.type }]) %} {% endfor %} {% for nodeType in craft.navigation.getRegisteredNodeTypes() %} {% set types = types | merge([{ label: nodeType.displayName, value: className(nodeType) }]) %} {% endfor %} {% set fields = [{ name: 'Title', handle: 'title', default: { type: 'text', }, }, { name: 'Type', handle: 'type', default: { type: 'select', options: types, }, }, { type: 'element', name: 'Element', handle: 'elementId', instructions: 'The element this node links to.' | t('feed-me'), default: { type: 'text', }, }, { name: 'URL', handle: 'url', default: { type: 'text', }, }, { name: 'URL Suffix', handle: 'urlSuffix', default: { type: 'text', }, }, { name: 'Open in New Window', handle: 'newWindow', default: { type: 'lightswitch', }, }, { name: 'Classes', handle: 'classes', default: { type: 'text', }, }, { type: 'nested-node', name: 'Children', handle: 'children', instructions: 'The starting node for nested child nodes.'|t('feed-me'), }, { name: 'Status', handle: 'enabled', instructions: 'Choose either a default status from the list or the imported field that will contain the status.' | t('feed-me'), default: { type: 'select', options: [ { label: 'Don‘t import', value: '' }, { label: 'Enabled', value: '1' }, { label: 'Disabled', value: '0' }, ], }, }, { name: 'Node ID', handle: 'id', instructions: 'Warning: This should only be used for an existing Navigation Node ID.' | t('feed-me'), default: { type: 'text', }, }] %}

{{ 'Node Fields' | t('feed-me') }}

{% for field in fields %} {% set template = field.type ?? 'default' %} {% set variables = field | merge({ feed: feed, feedData: feedData, attribute: true }) %} {% include [ 'navigation/_integrations/feed-me/fields/' ~ template, 'feed-me/_includes/fields/' ~ template ] ignore missing with variables only %} {% endfor %}
{{ 'Field' | t('feed-me') }} {{ 'Feed Element' | t('feed-me') }} {{ 'Default Value' | t('feed-me') }}
{% set tabs = [] %} {% if nav.fieldLayoutId %} {% set tabs = craft.app.fields.getLayoutById(nav.fieldLayoutId).getTabs() %} {% for tab in tabs %}

{{ tab.name }} Fields

{% for layoutField in tab.getElements() | filter(e => e is instance of('craft\\fieldlayoutelements\\CustomField')) %} {% set field = layoutField.getField() %} {% set fieldClass = craft.feedme.fields.getRegisteredField(className(field)) %} {% set template = fieldClass.getMappingTemplate() %} {% set variables = { name: field.name, handle: field.handle, feed: feed, feedData: feedData, field: field, fieldClass: fieldClass } %} {% include template ignore missing with variables only %} {% endfor %}
{{ 'Field' | t('feed-me') }} {{ 'Feed Element' | t('feed-me') }} {{ 'Default Value' | t('feed-me') }}
{% endfor %} {% endif %}

{{ "Set a unique identifier to match against existing elements" | t('feed-me') }}

{{ "Select the fields you want to use to check for existing elements. When selected, Feed Me will look for existing elements that match the fields provided below and either update, or skip depending on your choice of Import Strategy." | t('feed-me') }}

{% for tab in tabs %} {% for layoutField in tab.getElements() | filter(e => e is instance of('craft\\fieldlayoutelements\\CustomField')) %} {% set field = layoutField.getField() %} {% set fields = fields | merge([{ name: field.name, handle: field.handle, type: className(field) }]) %} {% endfor %} {% endfor %}
{% for field in fields %} {% if field and craft.feedme.fieldCanBeUniqueId(field) %} {{ forms.checkboxField({ name: 'fieldUnique[' ~ field.handle ~ ']', label: field.name, checked: feed.fieldUnique[field.handle] ?? '', }) }} {% endif %} {% endfor %}