Skip to main content
added 1900 characters in body
Source Link

/Update*/

Progress has been made. I still have an empty field_collection reference that needs to store a date and time.

I now understand that field collections store a value and a revision_id. I now need to work out how to store these revisions. I have the following code:

$field_collection_item = entity_create('field_collection_item', array('field_name' => 'field_theatre_date_set'));
        
$field_collection_item->setHostEntity('node', $node);
$field_collection_item->date[LANGUAGE_NONE][]['date']   = $date;
$field_collection_item->field_description[LANGUAGE_NONE][]['time']   = $time;               
$field_collection_item->save();

Now when I output the field_collection_item I see the following where I am expecting to see the the value and revision:

[field_theatre_date_set] => Array
            (
                [und] => Array
                    (
                        [0] => Array
                            (
                                [entity] => FieldCollectionItemEntity Object
 *RECURSION*
                            )

                    )

            )

And at the very bottom of the array I have the dates and times wallowing on their own:

[date] => Array
    (
        [und] => Array
            (
                [0] => Array
                    (
                        [date] => 2014-03-13
                    )

            )

    )

[time] => Array
    (
        [und] => Array
            (
                [0] => Array
                    (
                        [time] => 19:45:00
                    )

            )

    )

Any pointers on how to move them into my field_theatre_date_set if they aren't expecting date and time values?

Thanks all for looking!

/Update*/

Progress has been made. I still have an empty field_collection reference that needs to store a date and time.

I now understand that field collections store a value and a revision_id. I now need to work out how to store these revisions. I have the following code:

$field_collection_item = entity_create('field_collection_item', array('field_name' => 'field_theatre_date_set'));
        
$field_collection_item->setHostEntity('node', $node);
$field_collection_item->date[LANGUAGE_NONE][]['date']   = $date;
$field_collection_item->field_description[LANGUAGE_NONE][]['time']   = $time;               
$field_collection_item->save();

Now when I output the field_collection_item I see the following where I am expecting to see the the value and revision:

[field_theatre_date_set] => Array
            (
                [und] => Array
                    (
                        [0] => Array
                            (
                                [entity] => FieldCollectionItemEntity Object
 *RECURSION*
                            )

                    )

            )

And at the very bottom of the array I have the dates and times wallowing on their own:

[date] => Array
    (
        [und] => Array
            (
                [0] => Array
                    (
                        [date] => 2014-03-13
                    )

            )

    )

[time] => Array
    (
        [und] => Array
            (
                [0] => Array
                    (
                        [time] => 19:45:00
                    )

            )

    )

Any pointers on how to move them into my field_theatre_date_set if they aren't expecting date and time values?

Thanks all for looking!

Tweeted twitter.com/#!/StackDrupal/status/487697261590511617
Source Link

Updated an empty field collection in Drupal7

New to Drupal and I'm assuming the answer is simple, I've looked through the test suites etc. and still missing the point it seems.

I have a node with a field collection (field_theatre_date_set) that will store a number of dates and times. I have loaded the node and the collection is there but it's empty.

I have used various forms of this and an obvious problem is that the $field_collection_item_value below array structure just isn't there.

Any further pointers greatly received.

$loop=0;
foreach($showing_array as $key=>$value){

 $date='xxxx';
 $time='xxxx';

 $field_collection_item_value = $node->field_theatre_date_set[LANGUAGE_NONE][0]['value'];      
 $field_collection_item = entity_load('field_collection_item', array($field_collection_item_value)); // Load that field collection item 

 $field_collection_item->field_theatre_date_set_date[$node->language][$loop]['value'] = $date;          
 $field_collection_item->field_theatre_date_set_time[$node->language][$loop]['value'] = $time;
 $loop++
}
 $field_collection_item->save();