danielebarchiesi@4: my_field) && empty($item->my_field)) { danielebarchiesi@4: $is_empty = TRUE; danielebarchiesi@4: } danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: /** danielebarchiesi@4: * Acts on field collections being loaded from the database. danielebarchiesi@4: * danielebarchiesi@4: * This hook is invoked during field collection item loading, which is handled danielebarchiesi@4: * by entity_load(), via the EntityCRUDController. danielebarchiesi@4: * danielebarchiesi@4: * @param array $entities danielebarchiesi@4: * An array of field collection item entities being loaded, keyed by id. danielebarchiesi@4: * danielebarchiesi@4: * @see hook_entity_load() danielebarchiesi@4: */ danielebarchiesi@4: function hook_field_collection_item_load(array $entities) { danielebarchiesi@4: $result = db_query('SELECT pid, foo FROM {mytable} WHERE pid IN(:ids)', array(':ids' => array_keys($entities))); danielebarchiesi@4: foreach ($result as $record) { danielebarchiesi@4: $entities[$record->pid]->foo = $record->foo; danielebarchiesi@4: } danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: /** danielebarchiesi@4: * Responds when a field collection item is inserted. danielebarchiesi@4: * danielebarchiesi@4: * This hook is invoked after the field collection item is inserted into the danielebarchiesi@4: * database. danielebarchiesi@4: * danielebarchiesi@4: * @param FieldCollectionItemEntity $field_collection_item danielebarchiesi@4: * The field collection item that is being inserted. danielebarchiesi@4: * danielebarchiesi@4: * @see hook_entity_insert() danielebarchiesi@4: */ danielebarchiesi@4: function hook_field_collection_item_insert(FieldCollectionItemEntity $field_collection_item) { danielebarchiesi@4: db_insert('mytable')->fields(array( danielebarchiesi@4: 'id' => entity_id('field_collection_item', $field_collection_item), danielebarchiesi@4: 'extra' => print_r($field_collection_item, TRUE), danielebarchiesi@4: ))->execute(); danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: /** danielebarchiesi@4: * Acts on a field collection item being inserted or updated. danielebarchiesi@4: * danielebarchiesi@4: * This hook is invoked before the field collection item is saved to the database. danielebarchiesi@4: * danielebarchiesi@4: * @param FieldCollectionItemEntity $field_collection_item danielebarchiesi@4: * The field collection item that is being inserted or updated. danielebarchiesi@4: * danielebarchiesi@4: * @see hook_entity_presave() danielebarchiesi@4: */ danielebarchiesi@4: function hook_field_collection_item_presave(FieldCollectionItemEntity $field_collection_item) { danielebarchiesi@4: $field_collection_item->name = 'foo'; danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: /** danielebarchiesi@4: * Responds to a field collection item being updated. danielebarchiesi@4: * danielebarchiesi@4: * This hook is invoked after the field collection item has been updated in the danielebarchiesi@4: * database. danielebarchiesi@4: * danielebarchiesi@4: * @param FieldCollectionItemEntity $field_collection_item danielebarchiesi@4: * The field collection item that is being updated. danielebarchiesi@4: * danielebarchiesi@4: * @see hook_entity_update() danielebarchiesi@4: */ danielebarchiesi@4: function hook_field_collection_item_update(FieldCollectionItemEntity $field_collection_item) { danielebarchiesi@4: db_update('mytable') danielebarchiesi@4: ->fields(array('extra' => print_r($field_collection_item, TRUE))) danielebarchiesi@4: ->condition('id', entity_id('field_collection_item', $field_collection_item)) danielebarchiesi@4: ->execute(); danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: /** danielebarchiesi@4: * Responds to field collection item deletion. danielebarchiesi@4: * danielebarchiesi@4: * This hook is invoked after the field collection item has been removed from danielebarchiesi@4: * the database. danielebarchiesi@4: * danielebarchiesi@4: * @param FieldCollectionItemEntity $field_collection_item danielebarchiesi@4: * The field collection item that is being deleted. danielebarchiesi@4: * danielebarchiesi@4: * @see hook_entity_delete() danielebarchiesi@4: */ danielebarchiesi@4: function hook_field_collection_item_delete(FieldCollectionItemEntity $field_collection_item) { danielebarchiesi@4: db_delete('mytable') danielebarchiesi@4: ->condition('pid', entity_id('field_collection_item', $field_collection_item)) danielebarchiesi@4: ->execute(); danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: /** danielebarchiesi@4: * Act on a field collection item that is being assembled before rendering. danielebarchiesi@4: * danielebarchiesi@4: * @param $field_collection_item danielebarchiesi@4: * The field collection item entity. danielebarchiesi@4: * @param $view_mode danielebarchiesi@4: * The view mode the field collection item is rendered in. danielebarchiesi@4: * @param $langcode danielebarchiesi@4: * The language code used for rendering. danielebarchiesi@4: * danielebarchiesi@4: * The module may add elements to $field_collection_item->content prior to danielebarchiesi@4: * rendering. The structure of $field_collection_item->content is a renderable danielebarchiesi@4: * array as expected by drupal_render(). danielebarchiesi@4: * danielebarchiesi@4: * @see hook_entity_prepare_view() danielebarchiesi@4: * @see hook_entity_view() danielebarchiesi@4: */ danielebarchiesi@4: function hook_field_collection_item_view($field_collection_item, $view_mode, $langcode) { danielebarchiesi@4: $field_collection_item->content['my_additional_field'] = array( danielebarchiesi@4: '#markup' => $additional_field, danielebarchiesi@4: '#weight' => 10, danielebarchiesi@4: '#theme' => 'mymodule_my_additional_field', danielebarchiesi@4: ); danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: /** danielebarchiesi@4: * Alter the results of entity_view() for field collection items. danielebarchiesi@4: * danielebarchiesi@4: * This hook is called after the content has been assembled in a structured danielebarchiesi@4: * array and may be used for doing processing which requires that the complete danielebarchiesi@4: * field collection item content structure has been built. danielebarchiesi@4: * danielebarchiesi@4: * If the module wishes to act on the rendered HTML of the field collection item danielebarchiesi@4: * rather than the structured content array, it may use this hook to add a danielebarchiesi@4: * #post_render callback. See drupal_render() and theme() documentation danielebarchiesi@4: * respectively for details. danielebarchiesi@4: * danielebarchiesi@4: * @param $build danielebarchiesi@4: * A renderable array representing the field collection item content. danielebarchiesi@4: * danielebarchiesi@4: * @see hook_entity_view_alter() danielebarchiesi@4: */ danielebarchiesi@4: function hook_field_collection_item_view_alter($build) { danielebarchiesi@4: if ($build['#view_mode'] == 'full' && isset($build['an_additional_field'])) { danielebarchiesi@4: // Change its weight. danielebarchiesi@4: $build['an_additional_field']['#weight'] = -10; danielebarchiesi@4: danielebarchiesi@4: // Add a #post_render callback to act on the rendered HTML of the entity. danielebarchiesi@4: $build['#post_render'][] = 'my_module_post_render'; danielebarchiesi@4: } danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: /** danielebarchiesi@4: * @} danielebarchiesi@4: */