danielebarchiesi@0
|
1 <?php
|
danielebarchiesi@0
|
2
|
danielebarchiesi@0
|
3 /**
|
danielebarchiesi@0
|
4 * @file
|
danielebarchiesi@0
|
5 * Hooks provided by the Taxonomy module.
|
danielebarchiesi@0
|
6 */
|
danielebarchiesi@0
|
7
|
danielebarchiesi@0
|
8 /**
|
danielebarchiesi@0
|
9 * @addtogroup hooks
|
danielebarchiesi@0
|
10 * @{
|
danielebarchiesi@0
|
11 */
|
danielebarchiesi@0
|
12
|
danielebarchiesi@0
|
13 /**
|
danielebarchiesi@0
|
14 * Act on taxonomy vocabularies when loaded.
|
danielebarchiesi@0
|
15 *
|
danielebarchiesi@0
|
16 * Modules implementing this hook can act on the vocabulary objects before they
|
danielebarchiesi@0
|
17 * are returned by taxonomy_vocabulary_load_multiple().
|
danielebarchiesi@0
|
18 *
|
danielebarchiesi@0
|
19 * @param $vocabulary
|
danielebarchiesi@0
|
20 * An array of taxonomy vocabulary objects.
|
danielebarchiesi@0
|
21 */
|
danielebarchiesi@0
|
22 function hook_taxonomy_vocabulary_load($vocabularies) {
|
danielebarchiesi@0
|
23 $result = db_select('mytable', 'm')
|
danielebarchiesi@0
|
24 ->fields('m', array('vid', 'foo'))
|
danielebarchiesi@0
|
25 ->condition('m.vid', array_keys($vocabularies), 'IN')
|
danielebarchiesi@0
|
26 ->execute();
|
danielebarchiesi@0
|
27 foreach ($result as $record) {
|
danielebarchiesi@0
|
28 $vocabularies[$record->vid]->foo = $record->foo;
|
danielebarchiesi@0
|
29 }
|
danielebarchiesi@0
|
30 }
|
danielebarchiesi@0
|
31
|
danielebarchiesi@0
|
32 /**
|
danielebarchiesi@0
|
33 * Act on taxonomy vocabularies before they are saved.
|
danielebarchiesi@0
|
34 *
|
danielebarchiesi@0
|
35 * Modules implementing this hook can act on the vocabulary object before it is
|
danielebarchiesi@0
|
36 * inserted or updated.
|
danielebarchiesi@0
|
37 *
|
danielebarchiesi@0
|
38 * @param $vocabulary
|
danielebarchiesi@0
|
39 * A taxonomy vocabulary object.
|
danielebarchiesi@0
|
40 */
|
danielebarchiesi@0
|
41 function hook_taxonomy_vocabulary_presave($vocabulary) {
|
danielebarchiesi@0
|
42 $vocabulary->foo = 'bar';
|
danielebarchiesi@0
|
43 }
|
danielebarchiesi@0
|
44
|
danielebarchiesi@0
|
45 /**
|
danielebarchiesi@0
|
46 * Act on taxonomy vocabularies when inserted.
|
danielebarchiesi@0
|
47 *
|
danielebarchiesi@0
|
48 * Modules implementing this hook can act on the vocabulary object when saved
|
danielebarchiesi@0
|
49 * to the database.
|
danielebarchiesi@0
|
50 *
|
danielebarchiesi@0
|
51 * @param $vocabulary
|
danielebarchiesi@0
|
52 * A taxonomy vocabulary object.
|
danielebarchiesi@0
|
53 */
|
danielebarchiesi@0
|
54 function hook_taxonomy_vocabulary_insert($vocabulary) {
|
danielebarchiesi@0
|
55 if ($vocabulary->machine_name == 'my_vocabulary') {
|
danielebarchiesi@0
|
56 $vocabulary->weight = 100;
|
danielebarchiesi@0
|
57 }
|
danielebarchiesi@0
|
58 }
|
danielebarchiesi@0
|
59
|
danielebarchiesi@0
|
60 /**
|
danielebarchiesi@0
|
61 * Act on taxonomy vocabularies when updated.
|
danielebarchiesi@0
|
62 *
|
danielebarchiesi@0
|
63 * Modules implementing this hook can act on the vocabulary object when updated.
|
danielebarchiesi@0
|
64 *
|
danielebarchiesi@0
|
65 * @param $vocabulary
|
danielebarchiesi@0
|
66 * A taxonomy vocabulary object.
|
danielebarchiesi@0
|
67 */
|
danielebarchiesi@0
|
68 function hook_taxonomy_vocabulary_update($vocabulary) {
|
danielebarchiesi@0
|
69 db_update('mytable')
|
danielebarchiesi@0
|
70 ->fields(array('foo' => $vocabulary->foo))
|
danielebarchiesi@0
|
71 ->condition('vid', $vocabulary->vid)
|
danielebarchiesi@0
|
72 ->execute();
|
danielebarchiesi@0
|
73 }
|
danielebarchiesi@0
|
74
|
danielebarchiesi@0
|
75 /**
|
danielebarchiesi@0
|
76 * Respond to the deletion of taxonomy vocabularies.
|
danielebarchiesi@0
|
77 *
|
danielebarchiesi@0
|
78 * Modules implementing this hook can respond to the deletion of taxonomy
|
danielebarchiesi@0
|
79 * vocabularies from the database.
|
danielebarchiesi@0
|
80 *
|
danielebarchiesi@0
|
81 * @param $vocabulary
|
danielebarchiesi@0
|
82 * A taxonomy vocabulary object.
|
danielebarchiesi@0
|
83 */
|
danielebarchiesi@0
|
84 function hook_taxonomy_vocabulary_delete($vocabulary) {
|
danielebarchiesi@0
|
85 db_delete('mytable')
|
danielebarchiesi@0
|
86 ->condition('vid', $vocabulary->vid)
|
danielebarchiesi@0
|
87 ->execute();
|
danielebarchiesi@0
|
88 }
|
danielebarchiesi@0
|
89
|
danielebarchiesi@0
|
90 /**
|
danielebarchiesi@0
|
91 * Act on taxonomy terms when loaded.
|
danielebarchiesi@0
|
92 *
|
danielebarchiesi@0
|
93 * Modules implementing this hook can act on the term objects returned by
|
danielebarchiesi@0
|
94 * taxonomy_term_load_multiple().
|
danielebarchiesi@0
|
95 *
|
danielebarchiesi@0
|
96 * For performance reasons, information to be added to term objects should be
|
danielebarchiesi@0
|
97 * loaded in a single query for all terms where possible.
|
danielebarchiesi@0
|
98 *
|
danielebarchiesi@0
|
99 * Since terms are stored and retrieved from cache during a page request, avoid
|
danielebarchiesi@0
|
100 * altering properties provided by the {taxonomy_term_data} table, since this
|
danielebarchiesi@0
|
101 * may affect the way results are loaded from cache in subsequent calls.
|
danielebarchiesi@0
|
102 *
|
danielebarchiesi@0
|
103 * @param $terms
|
danielebarchiesi@0
|
104 * An array of term objects, indexed by tid.
|
danielebarchiesi@0
|
105 */
|
danielebarchiesi@0
|
106 function hook_taxonomy_term_load($terms) {
|
danielebarchiesi@0
|
107 $result = db_select('mytable', 'm')
|
danielebarchiesi@0
|
108 ->fields('m', array('tid', 'foo'))
|
danielebarchiesi@0
|
109 ->condition('m.tid', array_keys($terms), 'IN')
|
danielebarchiesi@0
|
110 ->execute();
|
danielebarchiesi@0
|
111 foreach ($result as $record) {
|
danielebarchiesi@0
|
112 $terms[$record->tid]->foo = $record->foo;
|
danielebarchiesi@0
|
113 }
|
danielebarchiesi@0
|
114 }
|
danielebarchiesi@0
|
115
|
danielebarchiesi@0
|
116 /**
|
danielebarchiesi@0
|
117 * Act on taxonomy terms before they are saved.
|
danielebarchiesi@0
|
118 *
|
danielebarchiesi@0
|
119 * Modules implementing this hook can act on the term object before it is
|
danielebarchiesi@0
|
120 * inserted or updated.
|
danielebarchiesi@0
|
121 *
|
danielebarchiesi@0
|
122 * @param $term
|
danielebarchiesi@0
|
123 * A term object.
|
danielebarchiesi@0
|
124 */
|
danielebarchiesi@0
|
125 function hook_taxonomy_term_presave($term) {
|
danielebarchiesi@0
|
126 $term->foo = 'bar';
|
danielebarchiesi@0
|
127 }
|
danielebarchiesi@0
|
128
|
danielebarchiesi@0
|
129 /**
|
danielebarchiesi@0
|
130 * Act on taxonomy terms when inserted.
|
danielebarchiesi@0
|
131 *
|
danielebarchiesi@0
|
132 * Modules implementing this hook can act on the term object when saved to
|
danielebarchiesi@0
|
133 * the database.
|
danielebarchiesi@0
|
134 *
|
danielebarchiesi@0
|
135 * @param $term
|
danielebarchiesi@0
|
136 * A taxonomy term object.
|
danielebarchiesi@0
|
137 */
|
danielebarchiesi@0
|
138 function hook_taxonomy_term_insert($term) {
|
danielebarchiesi@0
|
139 db_insert('mytable')
|
danielebarchiesi@0
|
140 ->fields(array(
|
danielebarchiesi@0
|
141 'tid' => $term->tid,
|
danielebarchiesi@0
|
142 'foo' => $term->foo,
|
danielebarchiesi@0
|
143 ))
|
danielebarchiesi@0
|
144 ->execute();
|
danielebarchiesi@0
|
145 }
|
danielebarchiesi@0
|
146
|
danielebarchiesi@0
|
147 /**
|
danielebarchiesi@0
|
148 * Act on taxonomy terms when updated.
|
danielebarchiesi@0
|
149 *
|
danielebarchiesi@0
|
150 * Modules implementing this hook can act on the term object when updated.
|
danielebarchiesi@0
|
151 *
|
danielebarchiesi@0
|
152 * @param $term
|
danielebarchiesi@0
|
153 * A taxonomy term object.
|
danielebarchiesi@0
|
154 */
|
danielebarchiesi@0
|
155 function hook_taxonomy_term_update($term) {
|
danielebarchiesi@0
|
156 db_update('mytable')
|
danielebarchiesi@0
|
157 ->fields(array('foo' => $term->foo))
|
danielebarchiesi@0
|
158 ->condition('tid', $term->tid)
|
danielebarchiesi@0
|
159 ->execute();
|
danielebarchiesi@0
|
160 }
|
danielebarchiesi@0
|
161
|
danielebarchiesi@0
|
162 /**
|
danielebarchiesi@0
|
163 * Respond to the deletion of taxonomy terms.
|
danielebarchiesi@0
|
164 *
|
danielebarchiesi@0
|
165 * Modules implementing this hook can respond to the deletion of taxonomy
|
danielebarchiesi@0
|
166 * terms from the database.
|
danielebarchiesi@0
|
167 *
|
danielebarchiesi@0
|
168 * @param $term
|
danielebarchiesi@0
|
169 * A taxonomy term object.
|
danielebarchiesi@0
|
170 */
|
danielebarchiesi@0
|
171 function hook_taxonomy_term_delete($term) {
|
danielebarchiesi@0
|
172 db_delete('mytable')
|
danielebarchiesi@0
|
173 ->condition('tid', $term->tid)
|
danielebarchiesi@0
|
174 ->execute();
|
danielebarchiesi@0
|
175 }
|
danielebarchiesi@0
|
176
|
danielebarchiesi@0
|
177 /**
|
danielebarchiesi@0
|
178 * Act on a taxonomy term that is being assembled before rendering.
|
danielebarchiesi@0
|
179 *
|
danielebarchiesi@0
|
180 * The module may add elements to $term->content prior to rendering. The
|
danielebarchiesi@0
|
181 * structure of $term->content is a renderable array as expected by
|
danielebarchiesi@0
|
182 * drupal_render().
|
danielebarchiesi@0
|
183 *
|
danielebarchiesi@0
|
184 * @param $term
|
danielebarchiesi@0
|
185 * The term that is being assembled for rendering.
|
danielebarchiesi@0
|
186 * @param $view_mode
|
danielebarchiesi@0
|
187 * The $view_mode parameter from taxonomy_term_view().
|
danielebarchiesi@0
|
188 * @param $langcode
|
danielebarchiesi@0
|
189 * The language code used for rendering.
|
danielebarchiesi@0
|
190 *
|
danielebarchiesi@0
|
191 * @see hook_entity_view()
|
danielebarchiesi@0
|
192 */
|
danielebarchiesi@0
|
193 function hook_taxonomy_term_view($term, $view_mode, $langcode) {
|
danielebarchiesi@0
|
194 $term->content['my_additional_field'] = array(
|
danielebarchiesi@0
|
195 '#markup' => $additional_field,
|
danielebarchiesi@0
|
196 '#weight' => 10,
|
danielebarchiesi@0
|
197 '#theme' => 'mymodule_my_additional_field',
|
danielebarchiesi@0
|
198 );
|
danielebarchiesi@0
|
199 }
|
danielebarchiesi@0
|
200
|
danielebarchiesi@0
|
201 /**
|
danielebarchiesi@0
|
202 * Alter the results of taxonomy_term_view().
|
danielebarchiesi@0
|
203 *
|
danielebarchiesi@0
|
204 * This hook is called after the content has been assembled in a structured
|
danielebarchiesi@0
|
205 * array and may be used for doing processing which requires that the complete
|
danielebarchiesi@0
|
206 * taxonomy term content structure has been built.
|
danielebarchiesi@0
|
207 *
|
danielebarchiesi@0
|
208 * If the module wishes to act on the rendered HTML of the term rather than the
|
danielebarchiesi@0
|
209 * structured content array, it may use this hook to add a #post_render
|
danielebarchiesi@0
|
210 * callback. Alternatively, it could also implement
|
danielebarchiesi@0
|
211 * hook_preprocess_taxonomy_term(). See drupal_render() and theme()
|
danielebarchiesi@0
|
212 * documentation respectively for details.
|
danielebarchiesi@0
|
213 *
|
danielebarchiesi@0
|
214 * @param $build
|
danielebarchiesi@0
|
215 * A renderable array representing the node content.
|
danielebarchiesi@0
|
216 *
|
danielebarchiesi@0
|
217 * @see hook_entity_view_alter()
|
danielebarchiesi@0
|
218 */
|
danielebarchiesi@0
|
219 function hook_taxonomy_term_view_alter(&$build) {
|
danielebarchiesi@0
|
220 if ($build['#view_mode'] == 'full' && isset($build['an_additional_field'])) {
|
danielebarchiesi@0
|
221 // Change its weight.
|
danielebarchiesi@0
|
222 $build['an_additional_field']['#weight'] = -10;
|
danielebarchiesi@0
|
223 }
|
danielebarchiesi@0
|
224
|
danielebarchiesi@0
|
225 // Add a #post_render callback to act on the rendered HTML of the term.
|
danielebarchiesi@0
|
226 $build['#post_render'][] = 'my_module_node_post_render';
|
danielebarchiesi@0
|
227 }
|
danielebarchiesi@0
|
228
|
danielebarchiesi@0
|
229 /**
|
danielebarchiesi@0
|
230 * @} End of "addtogroup hooks".
|
danielebarchiesi@0
|
231 */
|