function field_collection_table_field_attach_form in Field Collection Table 7
Implements hook_field_attach_form().
File
- ./
field_collection_table.module, line 435 - Module implementing a field-collection table formatter.
Code
function field_collection_table_field_attach_form($entity_type, $entity, &$form, &$form_state, $langcode) {
list(, , $bundle) = entity_extract_ids($entity_type, $entity);
// Host entity edit.
foreach (field_info_instances($entity_type, $bundle) as $field_name => $instance) {
if (isset($form[$field_name]) && $instance['widget']['type'] === 'field_collection_table') {
$language = $form[$field_name]['#language'];
$form[$field_name][$language]['#theme'] = 'field_collection_table_multiple_value_fields';
$form[$field_name][$language]['#custom_settings'] = $instance['widget']['settings'];
$form[$field_name][$language]['#pre_render'][] = 'field_collection_table_pre_render_multiple_fields';
}
$field = field_info_field($field_name);
if ($field['type'] === 'field_collection' && isset($form[$field_name]) && $field['cardinality'] == FIELD_CARDINALITY_UNLIMITED && empty($form_state['programmed']) && $instance['widget']['type'] === 'field_collection_table' && field_access('edit', $field, $entity_type)) {
$element_langcode = $form[$field_name]['#language'];
$element_wrapper = $form[$field_name][$element_langcode]['add_more']['#ajax']['wrapper'];
for ($i = 0; $i <= $form[$field_name][$element_langcode]['#max_delta']; $i++) {
if (isset($form[$field_name][$element_langcode][$i]['remove_button'])) {
$form[$field_name][$element_langcode][$i]['remove_button']['#ajax']['wrapper'] = $element_wrapper;
}
}
}
}
// Individual field collection item edit.
if ($entity_type === 'field_collection_item') {
$instance = $entity
->instanceInfo();
if ($instance['widget']['type'] === 'field_collection_table') {
$form['#theme'] = 'field_collection_table_multiple_value_field';
$form['#pre_render'][] = 'field_collection_table_pre_render_field';
}
}
}