annotate modules/taxonomy/taxonomy.api.php @ 0:ff03f76ab3fe

initial version
author danieleb <danielebarchiesi@me.com>
date Wed, 21 Aug 2013 18:51:11 +0100
parents
children
rev   line source
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 */