function translation_entity_form_language_content_settings_submit

Form submission handler for translation_entity_admin_settings_form().

See also

translation_entity_admin_settings_form_validate()

1 string reference to 'translation_entity_form_language_content_settings_submit'

File

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

Code

function translation_entity_form_language_content_settings_submit(array $form, array &$form_state) {
  $entity_types = $form_state['values']['entity_types'];
  $settings =& $form_state['values']['settings'];

  // If an entity type is not translatable all its bundles and fields must be
  // marked as non-translatable. Similarly, if a bundle is made non-translatable
  // all of its fields will be not translatable.
  foreach ($settings as $entity_type => &$entity_settings) {
    foreach ($entity_settings as $bundle => &$bundle_settings) {
      if (!empty($bundle_settings['translatable'])) {
        $bundle_settings['translatable'] = $bundle_settings['translatable'] && $entity_types[$entity_type];
      }
      if (!empty($bundle_settings['fields'])) {
        foreach ($bundle_settings['fields'] as $field_name => $translatable) {
          $bundle_settings['fields'][$field_name] = $translatable && $bundle_settings['translatable'];

          // If we have column settings and no column is translatable, no point
          // in making the field translatable.
          if (isset($bundle_settings['columns'][$field_name]) && !array_filter($bundle_settings['columns'][$field_name])) {
            $bundle_settings['fields'][$field_name] = FALSE;
          }
        }
      }
    }
  }
  _translation_entity_update_field_translatability($settings);
  drupal_set_message(t('Settings successfully updated.'));
}