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