You are here

function globallink_form_field_ui_field_edit_form_submit in GlobalLink Connect for Drupal 7.6

Same name and namespace in other branches
  1. 7.7 globallink.module \globallink_form_field_ui_field_edit_form_submit()
  2. 7.5 globallink.module \globallink_form_field_ui_field_edit_form_submit()

Update field config for modified bundle field.

1 string reference to 'globallink_form_field_ui_field_edit_form_submit'
globallink_form_field_ui_field_edit_form_alter in ./globallink.module
Implements hook_form_FORM_ID_alter().

File

./globallink.module, line 812
GlobalLink translation module.

Code

function globallink_form_field_ui_field_edit_form_submit($form, &$form_state) {
  $field_name = $form['#instance']['field_name'];
  $entity_type = $form['#instance']['entity_type'];
  $bundle_name = $form['#instance']['bundle'];
  $field_type = $form['#field']['type'];
  if (isset($form['field']['translatable']['#value'])) {
    $translatable = $form['field']['translatable']['#value'];
  }
  else {
    $translatable = $form['#field']['translatable'];
  }
  if ($entity_type == 'taxonomy_term' || $entity_type == 'fieldable_panels_pane' || $entity_type == 'bean' || $entity_type == 'file_entity') {
    return;
  }
  if (!globallink_check_field_configured($bundle_name, $entity_type, $bundle_name, $field_name) && $translatable == 1) {
    $ignore_fields = array(
      'list_integer',
      'entity_reference',
      'list_boelean',
      'list_float',
    );
    if (in_array($field_type, $ignore_fields)) {
      return;
    }

    //Checking here if parent FC is translatable otherwise ignore item.
    if ($entity_type == 'field_collection_item') {
      $arr = array();
      $results = db_select('globallink_field_config', 'gf')
        ->fields('gf')
        ->condition('field_name', $bundle_name, '=')
        ->condition('field_type', 'field_collection', '=')
        ->execute();
      foreach ($results as $result) {
        $arr[] = $result;
      }
      if (count($arr) < 0) {
        return;
      }
    }
    if ($field_type == 'field_collection') {
      globallink_insert_fc($entity_type, $field_name, $bundle_name, $bundle_name);
    }
    else {
      if ($entity_type == 'field_collection_item') {
        $content_types = globallink_get_all_content_types_for_field($bundle_name, 'field_collection');
        foreach ($content_types as $content_type) {
          globallink_insert_fc_items($content_type, $bundle_name, $field_name);
          $field_info = field_info_field($content_type);
          if ($field_info['type'] == 'field_collection') {
            $parents_fcs = globallink_get_allparent_fc($entity_type, $bundle_name, $field_name, array(
              $content_type,
            ));
            foreach ($parents_fcs as $parent_fc) {
              globallink_insert_fc_items($parent_fc, $bundle_name, $field_name);
            }
          }
        }
      }
      else {
        db_insert('globallink_field_config')
          ->fields(array(
          'content_type' => $bundle_name,
          'entity_type' => $entity_type,
          'bundle' => $bundle_name,
          'field_name' => $field_name,
          'field_type' => $field_type,
          'field_label' => $form['#instance']['label'],
          'translatable' => 1,
        ))
          ->execute();
      }
    }
  }
  else {
    if ($translatable == 0) {
      if ($field_type == 'field_collection') {
        globallink_delete_fc($bundle_name, $field_name, $entity_type, $bundle_name);
      }
      else {
        if ($entity_type == 'field_collection_item') {
          $content_types = globallink_get_all_content_types_for_field($bundle_name, 'field_collection');
          foreach ($content_types as $content_type) {
            globallink_delete_fc_items($content_type, $bundle_name, $field_name, $entity_type);
          }
        }
        else {
          if (!(module_exists('globallink_entity') && entity_translation_node_supported_type($bundle_name))) {
            return;
          }
          db_delete('globallink_field_config')
            ->condition('field_name', $field_name, '=')
            ->condition('entity_type', $entity_type, '=')
            ->condition('bundle', $bundle_name, '=')
            ->condition('content_type', $bundle_name, '=')
            ->execute();
        }
      }
    }
  }
}