Mercurial > hg > rr-repo
diff sites/all/modules/field_collection/field_collection.api.php @ 4:ce11bbd8f642
added modules
author | danieleb <danielebarchiesi@me.com> |
---|---|
date | Thu, 19 Sep 2013 10:38:44 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sites/all/modules/field_collection/field_collection.api.php Thu Sep 19 10:38:44 2013 +0100 @@ -0,0 +1,169 @@ +<?php + +/** + * @file + * Contains API documentation and examples for the Field collection module. + */ + +/** + * @addtogroup hooks + * @{ + */ + +/** + * Alter whether a field collection item is considered empty. + * + * This hook allows modules to determine whether a field collection is empty + * before it is saved. + * + * @param boolean $empty + * Whether or not the field should be considered empty. + * @param FieldCollectionItemEntity $item + * The field collection we are currently operating on. + */ +function hook_field_collection_is_empty_alter(&$is_empty, FieldCollectionItemEntity $item) { + if (isset($item->my_field) && empty($item->my_field)) { + $is_empty = TRUE; + } +} + +/** + * Acts on field collections being loaded from the database. + * + * This hook is invoked during field collection item loading, which is handled + * by entity_load(), via the EntityCRUDController. + * + * @param array $entities + * An array of field collection item entities being loaded, keyed by id. + * + * @see hook_entity_load() + */ +function hook_field_collection_item_load(array $entities) { + $result = db_query('SELECT pid, foo FROM {mytable} WHERE pid IN(:ids)', array(':ids' => array_keys($entities))); + foreach ($result as $record) { + $entities[$record->pid]->foo = $record->foo; + } +} + +/** + * Responds when a field collection item is inserted. + * + * This hook is invoked after the field collection item is inserted into the + * database. + * + * @param FieldCollectionItemEntity $field_collection_item + * The field collection item that is being inserted. + * + * @see hook_entity_insert() + */ +function hook_field_collection_item_insert(FieldCollectionItemEntity $field_collection_item) { + db_insert('mytable')->fields(array( + 'id' => entity_id('field_collection_item', $field_collection_item), + 'extra' => print_r($field_collection_item, TRUE), + ))->execute(); +} + +/** + * Acts on a field collection item being inserted or updated. + * + * This hook is invoked before the field collection item is saved to the database. + * + * @param FieldCollectionItemEntity $field_collection_item + * The field collection item that is being inserted or updated. + * + * @see hook_entity_presave() + */ +function hook_field_collection_item_presave(FieldCollectionItemEntity $field_collection_item) { + $field_collection_item->name = 'foo'; +} + +/** + * Responds to a field collection item being updated. + * + * This hook is invoked after the field collection item has been updated in the + * database. + * + * @param FieldCollectionItemEntity $field_collection_item + * The field collection item that is being updated. + * + * @see hook_entity_update() + */ +function hook_field_collection_item_update(FieldCollectionItemEntity $field_collection_item) { + db_update('mytable') + ->fields(array('extra' => print_r($field_collection_item, TRUE))) + ->condition('id', entity_id('field_collection_item', $field_collection_item)) + ->execute(); +} + +/** + * Responds to field collection item deletion. + * + * This hook is invoked after the field collection item has been removed from + * the database. + * + * @param FieldCollectionItemEntity $field_collection_item + * The field collection item that is being deleted. + * + * @see hook_entity_delete() + */ +function hook_field_collection_item_delete(FieldCollectionItemEntity $field_collection_item) { + db_delete('mytable') + ->condition('pid', entity_id('field_collection_item', $field_collection_item)) + ->execute(); +} + +/** + * Act on a field collection item that is being assembled before rendering. + * + * @param $field_collection_item + * The field collection item entity. + * @param $view_mode + * The view mode the field collection item is rendered in. + * @param $langcode + * The language code used for rendering. + * + * The module may add elements to $field_collection_item->content prior to + * rendering. The structure of $field_collection_item->content is a renderable + * array as expected by drupal_render(). + * + * @see hook_entity_prepare_view() + * @see hook_entity_view() + */ +function hook_field_collection_item_view($field_collection_item, $view_mode, $langcode) { + $field_collection_item->content['my_additional_field'] = array( + '#markup' => $additional_field, + '#weight' => 10, + '#theme' => 'mymodule_my_additional_field', + ); +} + +/** + * Alter the results of entity_view() for field collection items. + * + * This hook is called after the content has been assembled in a structured + * array and may be used for doing processing which requires that the complete + * field collection item content structure has been built. + * + * If the module wishes to act on the rendered HTML of the field collection item + * rather than the structured content array, it may use this hook to add a + * #post_render callback. See drupal_render() and theme() documentation + * respectively for details. + * + * @param $build + * A renderable array representing the field collection item content. + * + * @see hook_entity_view_alter() + */ +function hook_field_collection_item_view_alter($build) { + if ($build['#view_mode'] == 'full' && isset($build['an_additional_field'])) { + // Change its weight. + $build['an_additional_field']['#weight'] = -10; + + // Add a #post_render callback to act on the rendered HTML of the entity. + $build['#post_render'][] = 'my_module_post_render'; + } +} + +/** + * @} + */ \ No newline at end of file