danielebarchiesi@4
|
1 <?php
|
danielebarchiesi@4
|
2
|
danielebarchiesi@4
|
3 /**
|
danielebarchiesi@4
|
4 * Additional behaviors for a Entity Reference field.
|
danielebarchiesi@4
|
5 *
|
danielebarchiesi@4
|
6 * Implementations that wish to provide an implementation of this should
|
danielebarchiesi@4
|
7 * register it using CTools' plugin system.
|
danielebarchiesi@4
|
8 */
|
danielebarchiesi@4
|
9 interface EntityReference_BehaviorHandler {
|
danielebarchiesi@4
|
10
|
danielebarchiesi@4
|
11 /**
|
danielebarchiesi@4
|
12 * Constructor for the behavior.
|
danielebarchiesi@4
|
13 *
|
danielebarchiesi@4
|
14 * @param $behavior
|
danielebarchiesi@4
|
15 * The name of the behavior plugin.
|
danielebarchiesi@4
|
16 */
|
danielebarchiesi@4
|
17 public function __construct($behavior);
|
danielebarchiesi@4
|
18
|
danielebarchiesi@4
|
19 /**
|
danielebarchiesi@4
|
20 * Alter the field schema.
|
danielebarchiesi@4
|
21 *
|
danielebarchiesi@4
|
22 * @see hook_field_schema()
|
danielebarchiesi@4
|
23 */
|
danielebarchiesi@4
|
24 public function schema_alter(&$schema, $field);
|
danielebarchiesi@4
|
25
|
danielebarchiesi@4
|
26 /**
|
danielebarchiesi@4
|
27 * Alter the properties information of a field instance.
|
danielebarchiesi@4
|
28 *
|
danielebarchiesi@4
|
29 * @see entity_hook_field_info()
|
danielebarchiesi@4
|
30 */
|
danielebarchiesi@4
|
31 public function property_info_alter(&$info, $entity_type, $field, $instance, $field_type);
|
danielebarchiesi@4
|
32
|
danielebarchiesi@4
|
33 /**
|
danielebarchiesi@4
|
34 * Alter the views data of a field.
|
danielebarchiesi@4
|
35 *
|
danielebarchiesi@4
|
36 * @see entityreference_field_views_data()
|
danielebarchiesi@4
|
37 */
|
danielebarchiesi@4
|
38 public function views_data_alter(&$data, $field);
|
danielebarchiesi@4
|
39
|
danielebarchiesi@4
|
40 /**
|
danielebarchiesi@4
|
41 * Act on loading entity reference fields of entities.
|
danielebarchiesi@4
|
42 *
|
danielebarchiesi@4
|
43 * @see hook_field_load()
|
danielebarchiesi@4
|
44 */
|
danielebarchiesi@4
|
45 public function load($entity_type, $entities, $field, $instances, $langcode, &$items);
|
danielebarchiesi@4
|
46
|
danielebarchiesi@4
|
47 /**
|
danielebarchiesi@4
|
48 * Alter the empty status of a field item.
|
danielebarchiesi@4
|
49 *
|
danielebarchiesi@4
|
50 * @see hook_field_is_empty()
|
danielebarchiesi@4
|
51 */
|
danielebarchiesi@4
|
52 public function is_empty_alter(&$empty, $item, $field);
|
danielebarchiesi@4
|
53
|
danielebarchiesi@4
|
54 /**
|
danielebarchiesi@4
|
55 * Act on validating an entity reference field.
|
danielebarchiesi@4
|
56 *
|
danielebarchiesi@4
|
57 * @see hook_field_validate()
|
danielebarchiesi@4
|
58 */
|
danielebarchiesi@4
|
59 public function validate($entity_type, $entity, $field, $instance, $langcode, $items, &$errors);
|
danielebarchiesi@4
|
60
|
danielebarchiesi@4
|
61 /**
|
danielebarchiesi@4
|
62 * Act on presaving an entity reference field.
|
danielebarchiesi@4
|
63 *
|
danielebarchiesi@4
|
64 * @see hook_field_presave()
|
danielebarchiesi@4
|
65 */
|
danielebarchiesi@4
|
66 public function presave($entity_type, $entity, $field, $instance, $langcode, &$items);
|
danielebarchiesi@4
|
67
|
danielebarchiesi@4
|
68 /**
|
danielebarchiesi@4
|
69 * Act before inserting an entity reference field.
|
danielebarchiesi@4
|
70 *
|
danielebarchiesi@4
|
71 * @see hook_field_insert()
|
danielebarchiesi@4
|
72 */
|
danielebarchiesi@4
|
73 public function insert($entity_type, $entity, $field, $instance, $langcode, &$items);
|
danielebarchiesi@4
|
74
|
danielebarchiesi@4
|
75 /**
|
danielebarchiesi@4
|
76 * Act after inserting an entity reference field.
|
danielebarchiesi@4
|
77 *
|
danielebarchiesi@4
|
78 * @see hook_field_attach_insert()
|
danielebarchiesi@4
|
79 */
|
danielebarchiesi@4
|
80 public function postInsert($entity_type, $entity, $field, $instance);
|
danielebarchiesi@4
|
81
|
danielebarchiesi@4
|
82 /**
|
danielebarchiesi@4
|
83 * Act before updating an entity reference field.
|
danielebarchiesi@4
|
84 *
|
danielebarchiesi@4
|
85 * @see hook_field_update()
|
danielebarchiesi@4
|
86 */
|
danielebarchiesi@4
|
87 public function update($entity_type, $entity, $field, $instance, $langcode, &$items);
|
danielebarchiesi@4
|
88
|
danielebarchiesi@4
|
89 /**
|
danielebarchiesi@4
|
90 * Act after updating an entity reference field.
|
danielebarchiesi@4
|
91 *
|
danielebarchiesi@4
|
92 * @see hook_field_attach_update()
|
danielebarchiesi@4
|
93 */
|
danielebarchiesi@4
|
94 public function postUpdate($entity_type, $entity, $field, $instance);
|
danielebarchiesi@4
|
95
|
danielebarchiesi@4
|
96 /**
|
danielebarchiesi@4
|
97 * Act before deleting an entity with an entity reference field.
|
danielebarchiesi@4
|
98 *
|
danielebarchiesi@4
|
99 * @see hook_field_delete()
|
danielebarchiesi@4
|
100 */
|
danielebarchiesi@4
|
101 public function delete($entity_type, $entity, $field, $instance, $langcode, &$items);
|
danielebarchiesi@4
|
102
|
danielebarchiesi@4
|
103 /**
|
danielebarchiesi@4
|
104 * Act after deleting an entity with an entity reference field.
|
danielebarchiesi@4
|
105 *
|
danielebarchiesi@4
|
106 * @see hook_field_attach_delete()
|
danielebarchiesi@4
|
107 */
|
danielebarchiesi@4
|
108 public function postDelete($entity_type, $entity, $field, $instance);
|
danielebarchiesi@4
|
109
|
danielebarchiesi@4
|
110 /**
|
danielebarchiesi@4
|
111 * Act after inserting an entity.
|
danielebarchiesi@4
|
112 *
|
danielebarchiesi@4
|
113 * @see hook_entity_insert()
|
danielebarchiesi@4
|
114 */
|
danielebarchiesi@4
|
115 public function entityPostInsert($entity_type, $entity, $field, $instance);
|
danielebarchiesi@4
|
116
|
danielebarchiesi@4
|
117 /**
|
danielebarchiesi@4
|
118 * Act after updating an entity.
|
danielebarchiesi@4
|
119 *
|
danielebarchiesi@4
|
120 * @see hook_entity_update()
|
danielebarchiesi@4
|
121 */
|
danielebarchiesi@4
|
122 public function entityPostUpdate($entity_type, $entity, $field, $instance);
|
danielebarchiesi@4
|
123
|
danielebarchiesi@4
|
124 /**
|
danielebarchiesi@4
|
125 * Act after deleting an entity.
|
danielebarchiesi@4
|
126 *
|
danielebarchiesi@4
|
127 * @see hook_entity_delete()
|
danielebarchiesi@4
|
128 */
|
danielebarchiesi@4
|
129 public function entityPostDelete($entity_type, $entity, $field, $instance);
|
danielebarchiesi@4
|
130
|
danielebarchiesi@4
|
131 /**
|
danielebarchiesi@4
|
132 * Generate a settings form for this handler.
|
danielebarchiesi@4
|
133 */
|
danielebarchiesi@4
|
134 public function settingsForm($field, $instance);
|
danielebarchiesi@4
|
135
|
danielebarchiesi@4
|
136 /**
|
danielebarchiesi@4
|
137 * Determine if handler should appear.
|
danielebarchiesi@4
|
138 */
|
danielebarchiesi@4
|
139 public function access($field, $instance);
|
danielebarchiesi@4
|
140 }
|
danielebarchiesi@4
|
141
|
danielebarchiesi@4
|
142 /**
|
danielebarchiesi@4
|
143 * An abstract implementation of EntityReference_BehaviorHandler.
|
danielebarchiesi@4
|
144 */
|
danielebarchiesi@4
|
145 abstract class EntityReference_BehaviorHandler_Abstract implements EntityReference_BehaviorHandler {
|
danielebarchiesi@4
|
146
|
danielebarchiesi@4
|
147 /**
|
danielebarchiesi@4
|
148 * The name of the behavior plugin.
|
danielebarchiesi@4
|
149 */
|
danielebarchiesi@4
|
150 protected $behavior;
|
danielebarchiesi@4
|
151
|
danielebarchiesi@4
|
152 /**
|
danielebarchiesi@4
|
153 * The plugin definition.
|
danielebarchiesi@4
|
154 */
|
danielebarchiesi@4
|
155 protected $plugin;
|
danielebarchiesi@4
|
156
|
danielebarchiesi@4
|
157 public function __construct($behavior) {
|
danielebarchiesi@4
|
158 $this->behavior = $behavior;
|
danielebarchiesi@4
|
159
|
danielebarchiesi@4
|
160 ctools_include('plugins');
|
danielebarchiesi@4
|
161 $plugin = ctools_get_plugins('entityreference', 'behavior', $behavior);
|
danielebarchiesi@4
|
162 $this->plugin = $plugin;
|
danielebarchiesi@4
|
163 }
|
danielebarchiesi@4
|
164
|
danielebarchiesi@4
|
165 public function schema_alter(&$schema, $field) {}
|
danielebarchiesi@4
|
166
|
danielebarchiesi@4
|
167 public function property_info_alter(&$info, $entity_type, $field, $instance, $field_type) {}
|
danielebarchiesi@4
|
168
|
danielebarchiesi@4
|
169 public function views_data_alter(&$data, $field) {}
|
danielebarchiesi@4
|
170
|
danielebarchiesi@4
|
171 public function load($entity_type, $entities, $field, $instances, $langcode, &$items) {}
|
danielebarchiesi@4
|
172
|
danielebarchiesi@4
|
173 public function is_empty_alter(&$empty, $item, $field) {}
|
danielebarchiesi@4
|
174
|
danielebarchiesi@4
|
175 public function validate($entity_type, $entity, $field, $instance, $langcode, $items, &$errors) {}
|
danielebarchiesi@4
|
176
|
danielebarchiesi@4
|
177 public function presave($entity_type, $entity, $field, $instance, $langcode, &$items) {}
|
danielebarchiesi@4
|
178
|
danielebarchiesi@4
|
179 public function insert($entity_type, $entity, $field, $instance, $langcode, &$items) {}
|
danielebarchiesi@4
|
180
|
danielebarchiesi@4
|
181 public function postInsert($entity_type, $entity, $field, $instance) {}
|
danielebarchiesi@4
|
182
|
danielebarchiesi@4
|
183 public function update($entity_type, $entity, $field, $instance, $langcode, &$items) {}
|
danielebarchiesi@4
|
184
|
danielebarchiesi@4
|
185 public function postUpdate($entity_type, $entity, $field, $instance) {}
|
danielebarchiesi@4
|
186
|
danielebarchiesi@4
|
187 public function delete($entity_type, $entity, $field, $instance, $langcode, &$items) {}
|
danielebarchiesi@4
|
188
|
danielebarchiesi@4
|
189 public function postDelete($entity_type, $entity, $field, $instance) {}
|
danielebarchiesi@4
|
190
|
danielebarchiesi@4
|
191 public function entityPostInsert($entity_type, $entity, $field, $instance) {}
|
danielebarchiesi@4
|
192
|
danielebarchiesi@4
|
193 public function entityPostUpdate($entity_type, $entity, $field, $instance) {}
|
danielebarchiesi@4
|
194
|
danielebarchiesi@4
|
195 public function entityPostDelete($entity_type, $entity, $field, $instance) {}
|
danielebarchiesi@4
|
196
|
danielebarchiesi@4
|
197 public function settingsForm($field, $instance) {}
|
danielebarchiesi@4
|
198
|
danielebarchiesi@4
|
199 public function access($field, $instance) {
|
danielebarchiesi@4
|
200 return TRUE;
|
danielebarchiesi@4
|
201 }
|
danielebarchiesi@4
|
202 }
|
danielebarchiesi@4
|
203
|
danielebarchiesi@4
|
204 /**
|
danielebarchiesi@4
|
205 * A broken implementation of EntityReference_BehaviorHandler.
|
danielebarchiesi@4
|
206 */
|
danielebarchiesi@4
|
207 class EntityReference_BehaviorHandler_Broken extends EntityReference_BehaviorHandler_Abstract {
|
danielebarchiesi@4
|
208 public function settingsForm($field, $instance) {
|
danielebarchiesi@4
|
209 $form['behavior_handler'] = array(
|
danielebarchiesi@4
|
210 '#markup' => t('The selected behavior handler is broken.'),
|
danielebarchiesi@4
|
211 );
|
danielebarchiesi@4
|
212 return $form;
|
danielebarchiesi@4
|
213 }
|
danielebarchiesi@4
|
214 }
|