{% import '_includes/forms' as forms %}
{% import 'feed-me/_macros' as feedMeMacro %}
{% set fields = [{
name: 'Username',
handle: 'username',
default: {
type: 'text',
},
}, {
name: 'Full Name',
handle: 'fullName',
instructions: 'If you map the full name it will take priority over the first name and last name mappings.'|t('feed-me'),
default: {
type: 'text',
},
}, {
name: 'First Name',
handle: 'firstName',
default: {
type: 'text',
},
}, {
name: 'Last Name',
handle: 'lastName',
default: {
type: 'text',
},
}, {
name: 'Email',
handle: 'email',
default: {
type: 'text',
},
}, {
type: 'assets',
name: 'Photo',
handle: 'photoId',
default: {
type: 'elementselect',
options: {
limit: 1,
elementType: 'craft\\elements\\Asset',
selectionLabel: "Default Asset"|t('feed-me'),
},
},
}, {
name: 'Preferred Locale',
handle: 'preferredLocale',
default: {
type: 'text',
},
}, {
name: 'Password',
handle: 'newPassword',
default: {
type: 'text',
},
}, {
name: 'Status',
handle: 'status',
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'|t('feed-me'), value: '' },
{ label: 'Active', value: 'active' },
{ label: 'Locked', value: 'locked' },
{ label: 'Suspended', value: 'suspended' },
{ label: 'Pending', value: 'pending' },
],
},
}, {
name: 'User ID',
handle: 'id',
instructions: 'Warning: This should only be used for an existing Craft User ID.'|t('feed-me'),
default: {
type: 'text',
},
}] %}
{{ 'User Fields'|t('feed-me') }}
{{ 'Field'|t('feed-me') }}
{{ 'Feed Element'|t('feed-me') }}
{{ 'Default Value'|t('feed-me') }}
{% for field in fields %}
{% set template = field.type ?? 'default' %}
{% set variables = field|merge({ feed: feed, feedData: feedData, attribute: true }) %}
{% include 'feed-me/_includes/fields/' ~ template ignore missing with variables only %}
{% endfor %}
{% set groups = feed.getElement().getGroups() %}
{% set groupFields = [{
name: 'User Groups',
handle: 'groups',
instructions: 'Select the groups this user should be assigned to.'|t('feed-me'),
type: 'userGroups',
default: {
type: 'checkboxGroup',
options: craft.feedme.getSelectOptions(groups, 'name', 'id', false),
},
}] %}
{{ 'User Groups'|t('feed-me') }}
{{ 'Field'|t('feed-me') }}
{{ 'Feed Element'|t('feed-me') }}
{{ 'Default Value'|t('feed-me') }}
{% for field in groupFields %}
{% set template = field.type ?? 'default' %}
{% set variables = field|merge({ feed: feed, feedData: feedData, attribute: true }) %}
{% include 'feed-me/_includes/fields/' ~ template ignore missing with variables only %}
{% endfor %}
{% set tabs = craft.app.fields.getLayoutByType('craft\\elements\\User').getTabs() %}
{% for tab in tabs %}
{{ tab.name }} Fields
{{ 'Field'|t('feed-me') }}
{{ 'Feed Element'|t('feed-me') }}
{{ 'Default Value'|t('feed-me') }}
{% 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 %}
{% endfor %}
{{ "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 %}