In a custom module, I'd like to to edit a Field Collection element. The element is linked to a taxonomy but I think the code would look quite similar if it was to a content type.
I've read a lot of documentation, source code, forum entries and Drupal articles, but I'm stuck.
hook_form() implementation, I've got:
$field_collection_item = entity_create('field_collection_item', array('field_name' => 'my_fc_field_name')); // In a content type, use ('node', $node) instead $field_collection_item->setHostEntity('taxonomy_term', $term); // Not sure if those three lines are usefull $field_node_example_values = field_get_items('taxonomy_term', $term, 'my_fc_field_name'); $field_node_example_ids = field_collection_field_item_to_ids($field_node_example_values); $field_node_example_fc_items = field_collection_item_load_multiple($field_node_example_ids); // Not sure if this line is correct $form_state['field']['my_fc_field_name'] = $field_node_example_fc_items; /* All examples below produce the same result : only one instance of the FC form appears, with no existing values and no buttons */ module_load_include('inc', 'field_collection', 'field_collection.pages'); // 1/ $form = field_collection_item_form($form, $form_state, $field_collection_item); // OR // 2/ $form['my_form_entry'] = array(); field_attach_form('field_collection_item', $field_collection_item, $form['my_form_entry'], $form_state); // OR // 3/ $output = drupal_get_form('field_collection_item_form', $field_collection_item); $form['my_form_entry'] = $output;
So, my goal would be to get the same result as "out of the box" FC edit form, a nice fieldset with as many instances as exist, with Remove and Add buttons.
To be clear, I can see this type of form when I edit the taxonomy term, but I'd like to do it in a custom module.
I've look into the FC module, specifically the
field_collection_field_widget_form functions, but I'm not sure how I could use them.
Some useful articles and forum entries:
- How to pre-populate multiple "field collection" fields in node form