function globallink_form_field_ui_field_overview_form_submit in GlobalLink Connect for Drupal 7.7
Same name and namespace in other branches
- 7.5 globallink.module \globallink_form_field_ui_field_overview_form_submit()
- 7.6 globallink.module \globallink_form_field_ui_field_overview_form_submit()
Submit handler for Manage Fields Page of Content Type and Field Collection. Adds a new field being added to the fields config table for translation.
1 string reference to 'globallink_form_field_ui_field_overview_form_submit'
File
- ./
globallink.module, line 298 - GlobalLink translation module.
Code
function globallink_form_field_ui_field_overview_form_submit(&$form, &$form_state) {
$entity_type = isset($form['#entity_type']) ? $form['#entity_type'] : FALSE;
$bundle = isset($form['#bundle']) ? $form['#bundle'] : FALSE;
$new_field = isset($form['fields']['_add_new_field']) ? $form['fields']['_add_new_field'] : FALSE;
$existing_field = isset($form['fields']['_add_existing_field']) ? $form['fields']['_add_existing_field'] : FALSE;
if (!$entity_type || $entity_type == 'taxonomy_term' || $entity_type == 'fieldable_panels_pane' || $entity_type == 'bean' || $entity_type == 'file_entity') {
return;
}
switch ($entity_type) {
case GLOBALLINK_ENTITY_TYPE_NODE:
if (!globallink_translation_supported($bundle)) {
break;
}
// Request coming from Manage Fields of Content Type.
if ($new_field && isset($new_field['type']['#value'])) {
switch ($new_field['type']['#value']) {
case 'list_boolean':
case 'image':
case 'file':
case 'list_integer':
case 'list_float':
case 'list_text':
case 'taxonomy_term_reference':
break;
case 'field_collection':
// New field-collection added, just add the empty field-collection to config.
/*$new_field_name = $new_field['field_name']['#value'];
if ($new_field_name != '') {
db_insert('globallink_field_config')
->fields(array(
'content_type' => $bundle,
'entity_type' => $entity_type,
'bundle' => $bundle,
'field_name' => 'field_' . $new_field_name,
'field_type' => $new_field['type']['#value'],
'field_label' => $new_field['label']['#value'],
'translatable' => 1,
))->execute();
}*/
break;
default:
if (module_exists('globallink_entity') && entity_translation_node_supported_type($bundle)) {
break;
}
// Regular New field, just add to config.
$new_field_name = $new_field['field_name']['#value'];
if ($new_field_name != '') {
db_insert('globallink_field_config')
->fields(array(
'content_type' => $bundle,
'entity_type' => $entity_type,
'bundle' => $bundle,
'field_name' => 'field_' . $new_field_name,
'field_type' => $new_field['type']['#value'],
'field_label' => $new_field['label']['#value'],
'translatable' => 1,
))
->execute();
}
break;
}
}
if (!$existing_field || !isset($existing_field['field_name']['#value'])) {
break;
}
// Existing field is being added to this content type.
$existing_field_name = $existing_field['field_name']['#value'];
if ($existing_field_name == '') {
break;
}
$existing_field_info = field_info_field($existing_field_name);
switch ($existing_field_info['type']) {
case 'list_boolean':
case 'image':
case 'file':
case 'list_integer':
case 'list_float':
case 'list_text':
case 'taxonomy_term_reference':
break;
case 'field_collection':
// Existing FC being added to this content type
// Add FC and all the FC fields recursively to the config.
globallink_insert_fc($entity_type, $existing_field_name, $bundle, $bundle);
break;
default:
// Regular existing field, just add to config.
$existing_field_instance = field_info_instance($entity_type, $existing_field_name, $bundle);
db_insert('globallink_field_config')
->fields(array(
'content_type' => $bundle,
'entity_type' => $entity_type,
'bundle' => $bundle,
'field_name' => $existing_field_name,
'field_type' => $existing_field_info['type'],
'field_label' => $existing_field_instance['label'],
'translatable' => 1,
))
->execute();
break;
}
break;
case 'field_collection_item':
// Request coming from Manage Fields of Field Collections
// Entity type for all the fields here will be field_collection_item
/*$fc_name = $bundle;
if ($new_field && isset($new_field['type']['#value'])) {
// A new field is being added to this field-collection.
switch ($new_field['type']['#value']) {
case 'list_boolean':
case 'image':
case 'file':
case 'taxonomy_term_reference':
break;
default:
// Regular new field is being added to this field-collection, just add to config.
$new_field_name = $new_field['field_name']['#value'];
if ($new_field_name == '') {
break;
}
// First get all the content types for this field-collection from config,
// then add this field for all the content types in the config.
$content_types = globallink_get_all_content_types_for_field($fc_name, 'field_collection');
foreach ($content_types as $content_type) {
db_insert('globallink_field_config')
->fields(array(
'content_type' => $content_type,
'entity_type' => $entity_type,
'bundle' => $fc_name,
'field_name' => 'field_' . $new_field_name,
'field_type' => $new_field['type']['#value'],
'field_label' => $new_field['label']['#value'],
'translatable' => 1,
))->execute();
}
}
}*/
$fc_name = $bundle;
if (!$existing_field || !isset($existing_field['field_name']['#value'])) {
break;
}
// Existing field is being added to this field-collection.
$existing_field_name = $existing_field['field_name']['#value'];
if ($existing_field_name == '') {
break;
}
$existing_field_info = field_info_field($existing_field_name);
switch ($existing_field_info['type']) {
case 'list_boolean':
case 'image':
case 'file':
case 'list_integer':
case 'list_float':
case 'list_text':
case 'taxonomy_term_reference':
break;
case 'field_collection':
// If existing field-collection is added to the field-collection, then add fields recursively.
$content_types = globallink_get_all_content_types_for_field($fc_name, 'field_collection');
// First get all the content types for this field-collection from config
// then add this field for all the content types in the config.
foreach ($content_types as $content_type) {
globallink_insert_fc($entity_type, $existing_field_name, $content_type, $fc_name);
}
break;
default:
// First get all the content types for this field-collection from config
// then add this field for all the content types in the config.
$content_types = globallink_get_all_content_types_for_field($fc_name, 'field_collection');
foreach ($content_types as $content_type) {
$existing_field_instance = field_info_instance($entity_type, $existing_field_name, $bundle);
db_insert('globallink_field_config')
->fields(array(
'content_type' => $content_type,
'entity_type' => $entity_type,
'bundle' => $fc_name,
'field_name' => $existing_field_name,
'field_type' => $existing_field_info['type'],
'field_label' => $existing_field_instance['label'],
'translatable' => 1,
))
->execute();
}
}
break;
}
}