function translation_entity_field_sync_widget

Returns a form element to configure field synchronization.

Parameters

\Drupal\field\Plugin\Core\Entity\Field $field: A field definition array.

\Drupal\field\Plugin\Core\Entity\FieldInstance $instance: A field instance definition object.

Return value

array A form element to configure field synchronization.

2 calls to translation_entity_field_sync_widget()
translation_entity_form_field_ui_field_instance_edit_form_alter in drupal/core/modules/translation_entity/translation_entity.module
Implements hook_form_FORM_ID_alter() for 'field_ui_field_instance_edit_form'.
_translation_entity_form_language_content_settings_form_alter in drupal/core/modules/translation_entity/translation_entity.admin.inc
(proxied) Implements hook_form_FORM_ID_alter().

File

drupal/core/modules/translation_entity/translation_entity.admin.inc, line 24
The entity translation administration forms.

Code

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;
}