annotate sites/all/modules/entityreference/plugins/selection/abstract.inc @ 4:ce11bbd8f642

added modules
author danieleb <danielebarchiesi@me.com>
date Thu, 19 Sep 2013 10:38:44 +0100
parents
children
rev   line source
danielebarchiesi@4 1 <?php
danielebarchiesi@4 2
danielebarchiesi@4 3 /**
danielebarchiesi@4 4 * @file
danielebarchiesi@4 5 * Abstraction of the selection logic of an entity reference field.
danielebarchiesi@4 6 *
danielebarchiesi@4 7 * Implementations that wish to provide an implementation of this should
danielebarchiesi@4 8 * register it using CTools' plugin system.
danielebarchiesi@4 9 */
danielebarchiesi@4 10 interface EntityReference_SelectionHandler {
danielebarchiesi@4 11 /**
danielebarchiesi@4 12 * Factory function: create a new instance of this handler for a given field.
danielebarchiesi@4 13 *
danielebarchiesi@4 14 * @param $field
danielebarchiesi@4 15 * A field datastructure.
danielebarchiesi@4 16 * @return EntityReferenceHandler
danielebarchiesi@4 17 */
danielebarchiesi@4 18 public static function getInstance($field, $instance = NULL, $entity_type = NULL, $entity = NULL);
danielebarchiesi@4 19
danielebarchiesi@4 20 /**
danielebarchiesi@4 21 * Return a list of referencable entities.
danielebarchiesi@4 22 *
danielebarchiesi@4 23 * @return
danielebarchiesi@4 24 * An array of referencable entities, which keys are entity ids and
danielebarchiesi@4 25 * values (safe HTML) labels to be displayed to the user.
danielebarchiesi@4 26 */
danielebarchiesi@4 27 public function getReferencableEntities($match = NULL, $match_operator = 'CONTAINS', $limit = 0);
danielebarchiesi@4 28
danielebarchiesi@4 29 /**
danielebarchiesi@4 30 * Count entities that are referencable by a given field.
danielebarchiesi@4 31 */
danielebarchiesi@4 32 public function countReferencableEntities($match = NULL, $match_operator = 'CONTAINS');
danielebarchiesi@4 33
danielebarchiesi@4 34 /**
danielebarchiesi@4 35 * Validate that entities can be referenced by this field.
danielebarchiesi@4 36 *
danielebarchiesi@4 37 * @return
danielebarchiesi@4 38 * An array of entity ids that are valid.
danielebarchiesi@4 39 */
danielebarchiesi@4 40 public function validateReferencableEntities(array $ids);
danielebarchiesi@4 41
danielebarchiesi@4 42 /**
danielebarchiesi@4 43 * Validate Input from autocomplete widget that has no Id.
danielebarchiesi@4 44 *
danielebarchiesi@4 45 * @see _entityreference_autocomplete_validate()
danielebarchiesi@4 46 *
danielebarchiesi@4 47 * @param $input
danielebarchiesi@4 48 * Single string from autocomplete widget.
danielebarchiesi@4 49 * @param $element
danielebarchiesi@4 50 * The form element to set a form error.
danielebarchiesi@4 51 * @return
danielebarchiesi@4 52 * Value of a matching entity id, or NULL if none.
danielebarchiesi@4 53 */
danielebarchiesi@4 54 public function validateAutocompleteInput($input, &$element, &$form_state, $form);
danielebarchiesi@4 55
danielebarchiesi@4 56 /**
danielebarchiesi@4 57 * Give the handler a chance to alter the SelectQuery generated by EntityFieldQuery.
danielebarchiesi@4 58 */
danielebarchiesi@4 59 public function entityFieldQueryAlter(SelectQueryInterface $query);
danielebarchiesi@4 60
danielebarchiesi@4 61 /**
danielebarchiesi@4 62 * Return the label of a given entity.
danielebarchiesi@4 63 */
danielebarchiesi@4 64 public function getLabel($entity);
danielebarchiesi@4 65
danielebarchiesi@4 66 /**
danielebarchiesi@4 67 * Generate a settings form for this handler.
danielebarchiesi@4 68 */
danielebarchiesi@4 69 public static function settingsForm($field, $instance);
danielebarchiesi@4 70 }
danielebarchiesi@4 71
danielebarchiesi@4 72 /**
danielebarchiesi@4 73 * A null implementation of EntityReference_SelectionHandler.
danielebarchiesi@4 74 */
danielebarchiesi@4 75 class EntityReference_SelectionHandler_Broken implements EntityReference_SelectionHandler {
danielebarchiesi@4 76 public static function getInstance($field, $instance = NULL, $entity_type = NULL, $entity = NULL) {
danielebarchiesi@4 77 return new EntityReference_SelectionHandler_Broken($field, $instance, $entity_type, $entity);
danielebarchiesi@4 78 }
danielebarchiesi@4 79
danielebarchiesi@4 80 protected function __construct($field, $instance) {
danielebarchiesi@4 81 $this->field = $field;
danielebarchiesi@4 82 $this->instance = $instance;
danielebarchiesi@4 83 }
danielebarchiesi@4 84
danielebarchiesi@4 85 public static function settingsForm($field, $instance) {
danielebarchiesi@4 86 $form['selection_handler'] = array(
danielebarchiesi@4 87 '#markup' => t('The selected selection handler is broken.'),
danielebarchiesi@4 88 );
danielebarchiesi@4 89 return $form;
danielebarchiesi@4 90 }
danielebarchiesi@4 91
danielebarchiesi@4 92 public function getReferencableEntities($match = NULL, $match_operator = 'CONTAINS', $limit = 0) {
danielebarchiesi@4 93 return array();
danielebarchiesi@4 94 }
danielebarchiesi@4 95
danielebarchiesi@4 96 public function countReferencableEntities($match = NULL, $match_operator = 'CONTAINS') {
danielebarchiesi@4 97 return 0;
danielebarchiesi@4 98 }
danielebarchiesi@4 99
danielebarchiesi@4 100 public function validateReferencableEntities(array $ids) {
danielebarchiesi@4 101 return array();
danielebarchiesi@4 102 }
danielebarchiesi@4 103
danielebarchiesi@4 104 public function validateAutocompleteInput($input, &$element, &$form_state, $form) {
danielebarchiesi@4 105 return NULL;
danielebarchiesi@4 106 }
danielebarchiesi@4 107
danielebarchiesi@4 108 public function entityFieldQueryAlter(SelectQueryInterface $query) {}
danielebarchiesi@4 109
danielebarchiesi@4 110 public function getLabel($entity) {
danielebarchiesi@4 111 return '';
danielebarchiesi@4 112 }
danielebarchiesi@4 113 }