Returns a form element to configure field synchronization.
\Drupal\field\Plugin\Core\Entity\Field $field: A field definition array.
\Drupal\field\Plugin\Core\Entity\FieldInstance $instance: A field instance definition object.
array A form element to configure field synchronization.
function translation_entity_field_sync_widget(Field $field, FieldInstance $instance) {
$element = array();
if (!empty($field['settings']['column_groups']) && count($field['settings']['column_groups']) > 1) {
$options = array();
$default = array();
foreach ($field['settings']['column_groups'] as $group => $info) {
$options[$group] = $info['label'];
$default[$group] = !empty($info['translatable']) ? $group : FALSE;
}
$settings = array(
'dependent_selectors' => array(
'instance[settings][translation_sync]' => array(
'file',
),
),
);
$element = array(
'#type' => 'checkboxes',
'#title' => t('Translatable elements'),
'#options' => $options,
'#default_value' => !empty($instance['settings']['translation_sync']) ? $instance['settings']['translation_sync'] : $default,
'#attached' => array(
'library' => array(
array(
'translation_entity',
'drupal.translation_entity.admin',
),
),
'js' => array(
array(
'data' => array(
'translationEntityDependentOptions' => $settings,
),
'type' => 'setting',
),
),
),
);
}
return $element;
}