Mercurial > hg > rr-repo
diff sites/all/modules/entityreference/plugins/behavior/abstract.inc @ 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/entityreference/plugins/behavior/abstract.inc Thu Sep 19 10:38:44 2013 +0100 @@ -0,0 +1,214 @@ +<?php + +/** + * Additional behaviors for a Entity Reference field. + * + * Implementations that wish to provide an implementation of this should + * register it using CTools' plugin system. + */ +interface EntityReference_BehaviorHandler { + + /** + * Constructor for the behavior. + * + * @param $behavior + * The name of the behavior plugin. + */ + public function __construct($behavior); + + /** + * Alter the field schema. + * + * @see hook_field_schema() + */ + public function schema_alter(&$schema, $field); + + /** + * Alter the properties information of a field instance. + * + * @see entity_hook_field_info() + */ + public function property_info_alter(&$info, $entity_type, $field, $instance, $field_type); + + /** + * Alter the views data of a field. + * + * @see entityreference_field_views_data() + */ + public function views_data_alter(&$data, $field); + + /** + * Act on loading entity reference fields of entities. + * + * @see hook_field_load() + */ + public function load($entity_type, $entities, $field, $instances, $langcode, &$items); + + /** + * Alter the empty status of a field item. + * + * @see hook_field_is_empty() + */ + public function is_empty_alter(&$empty, $item, $field); + + /** + * Act on validating an entity reference field. + * + * @see hook_field_validate() + */ + public function validate($entity_type, $entity, $field, $instance, $langcode, $items, &$errors); + + /** + * Act on presaving an entity reference field. + * + * @see hook_field_presave() + */ + public function presave($entity_type, $entity, $field, $instance, $langcode, &$items); + + /** + * Act before inserting an entity reference field. + * + * @see hook_field_insert() + */ + public function insert($entity_type, $entity, $field, $instance, $langcode, &$items); + + /** + * Act after inserting an entity reference field. + * + * @see hook_field_attach_insert() + */ + public function postInsert($entity_type, $entity, $field, $instance); + + /** + * Act before updating an entity reference field. + * + * @see hook_field_update() + */ + public function update($entity_type, $entity, $field, $instance, $langcode, &$items); + + /** + * Act after updating an entity reference field. + * + * @see hook_field_attach_update() + */ + public function postUpdate($entity_type, $entity, $field, $instance); + + /** + * Act before deleting an entity with an entity reference field. + * + * @see hook_field_delete() + */ + public function delete($entity_type, $entity, $field, $instance, $langcode, &$items); + + /** + * Act after deleting an entity with an entity reference field. + * + * @see hook_field_attach_delete() + */ + public function postDelete($entity_type, $entity, $field, $instance); + + /** + * Act after inserting an entity. + * + * @see hook_entity_insert() + */ + public function entityPostInsert($entity_type, $entity, $field, $instance); + + /** + * Act after updating an entity. + * + * @see hook_entity_update() + */ + public function entityPostUpdate($entity_type, $entity, $field, $instance); + + /** + * Act after deleting an entity. + * + * @see hook_entity_delete() + */ + public function entityPostDelete($entity_type, $entity, $field, $instance); + + /** + * Generate a settings form for this handler. + */ + public function settingsForm($field, $instance); + + /** + * Determine if handler should appear. + */ + public function access($field, $instance); +} + +/** + * An abstract implementation of EntityReference_BehaviorHandler. + */ +abstract class EntityReference_BehaviorHandler_Abstract implements EntityReference_BehaviorHandler { + + /** + * The name of the behavior plugin. + */ + protected $behavior; + + /** + * The plugin definition. + */ + protected $plugin; + + public function __construct($behavior) { + $this->behavior = $behavior; + + ctools_include('plugins'); + $plugin = ctools_get_plugins('entityreference', 'behavior', $behavior); + $this->plugin = $plugin; + } + + public function schema_alter(&$schema, $field) {} + + public function property_info_alter(&$info, $entity_type, $field, $instance, $field_type) {} + + public function views_data_alter(&$data, $field) {} + + public function load($entity_type, $entities, $field, $instances, $langcode, &$items) {} + + public function is_empty_alter(&$empty, $item, $field) {} + + public function validate($entity_type, $entity, $field, $instance, $langcode, $items, &$errors) {} + + public function presave($entity_type, $entity, $field, $instance, $langcode, &$items) {} + + public function insert($entity_type, $entity, $field, $instance, $langcode, &$items) {} + + public function postInsert($entity_type, $entity, $field, $instance) {} + + public function update($entity_type, $entity, $field, $instance, $langcode, &$items) {} + + public function postUpdate($entity_type, $entity, $field, $instance) {} + + public function delete($entity_type, $entity, $field, $instance, $langcode, &$items) {} + + public function postDelete($entity_type, $entity, $field, $instance) {} + + public function entityPostInsert($entity_type, $entity, $field, $instance) {} + + public function entityPostUpdate($entity_type, $entity, $field, $instance) {} + + public function entityPostDelete($entity_type, $entity, $field, $instance) {} + + public function settingsForm($field, $instance) {} + + public function access($field, $instance) { + return TRUE; + } +} + +/** + * A broken implementation of EntityReference_BehaviorHandler. + */ +class EntityReference_BehaviorHandler_Broken extends EntityReference_BehaviorHandler_Abstract { + public function settingsForm($field, $instance) { + $form['behavior_handler'] = array( + '#markup' => t('The selected behavior handler is broken.'), + ); + return $form; + } +}