danielebarchiesi@0: fields('m', array('vid', 'foo')) danielebarchiesi@0: ->condition('m.vid', array_keys($vocabularies), 'IN') danielebarchiesi@0: ->execute(); danielebarchiesi@0: foreach ($result as $record) { danielebarchiesi@0: $vocabularies[$record->vid]->foo = $record->foo; danielebarchiesi@0: } danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * Act on taxonomy vocabularies before they are saved. danielebarchiesi@0: * danielebarchiesi@0: * Modules implementing this hook can act on the vocabulary object before it is danielebarchiesi@0: * inserted or updated. danielebarchiesi@0: * danielebarchiesi@0: * @param $vocabulary danielebarchiesi@0: * A taxonomy vocabulary object. danielebarchiesi@0: */ danielebarchiesi@0: function hook_taxonomy_vocabulary_presave($vocabulary) { danielebarchiesi@0: $vocabulary->foo = 'bar'; danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * Act on taxonomy vocabularies when inserted. danielebarchiesi@0: * danielebarchiesi@0: * Modules implementing this hook can act on the vocabulary object when saved danielebarchiesi@0: * to the database. danielebarchiesi@0: * danielebarchiesi@0: * @param $vocabulary danielebarchiesi@0: * A taxonomy vocabulary object. danielebarchiesi@0: */ danielebarchiesi@0: function hook_taxonomy_vocabulary_insert($vocabulary) { danielebarchiesi@0: if ($vocabulary->machine_name == 'my_vocabulary') { danielebarchiesi@0: $vocabulary->weight = 100; danielebarchiesi@0: } danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * Act on taxonomy vocabularies when updated. danielebarchiesi@0: * danielebarchiesi@0: * Modules implementing this hook can act on the vocabulary object when updated. danielebarchiesi@0: * danielebarchiesi@0: * @param $vocabulary danielebarchiesi@0: * A taxonomy vocabulary object. danielebarchiesi@0: */ danielebarchiesi@0: function hook_taxonomy_vocabulary_update($vocabulary) { danielebarchiesi@0: db_update('mytable') danielebarchiesi@0: ->fields(array('foo' => $vocabulary->foo)) danielebarchiesi@0: ->condition('vid', $vocabulary->vid) danielebarchiesi@0: ->execute(); danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * Respond to the deletion of taxonomy vocabularies. danielebarchiesi@0: * danielebarchiesi@0: * Modules implementing this hook can respond to the deletion of taxonomy danielebarchiesi@0: * vocabularies from the database. danielebarchiesi@0: * danielebarchiesi@0: * @param $vocabulary danielebarchiesi@0: * A taxonomy vocabulary object. danielebarchiesi@0: */ danielebarchiesi@0: function hook_taxonomy_vocabulary_delete($vocabulary) { danielebarchiesi@0: db_delete('mytable') danielebarchiesi@0: ->condition('vid', $vocabulary->vid) danielebarchiesi@0: ->execute(); danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * Act on taxonomy terms when loaded. danielebarchiesi@0: * danielebarchiesi@0: * Modules implementing this hook can act on the term objects returned by danielebarchiesi@0: * taxonomy_term_load_multiple(). danielebarchiesi@0: * danielebarchiesi@0: * For performance reasons, information to be added to term objects should be danielebarchiesi@0: * loaded in a single query for all terms where possible. danielebarchiesi@0: * danielebarchiesi@0: * Since terms are stored and retrieved from cache during a page request, avoid danielebarchiesi@0: * altering properties provided by the {taxonomy_term_data} table, since this danielebarchiesi@0: * may affect the way results are loaded from cache in subsequent calls. danielebarchiesi@0: * danielebarchiesi@0: * @param $terms danielebarchiesi@0: * An array of term objects, indexed by tid. danielebarchiesi@0: */ danielebarchiesi@0: function hook_taxonomy_term_load($terms) { danielebarchiesi@0: $result = db_select('mytable', 'm') danielebarchiesi@0: ->fields('m', array('tid', 'foo')) danielebarchiesi@0: ->condition('m.tid', array_keys($terms), 'IN') danielebarchiesi@0: ->execute(); danielebarchiesi@0: foreach ($result as $record) { danielebarchiesi@0: $terms[$record->tid]->foo = $record->foo; danielebarchiesi@0: } danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * Act on taxonomy terms before they are saved. danielebarchiesi@0: * danielebarchiesi@0: * Modules implementing this hook can act on the term object before it is danielebarchiesi@0: * inserted or updated. danielebarchiesi@0: * danielebarchiesi@0: * @param $term danielebarchiesi@0: * A term object. danielebarchiesi@0: */ danielebarchiesi@0: function hook_taxonomy_term_presave($term) { danielebarchiesi@0: $term->foo = 'bar'; danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * Act on taxonomy terms when inserted. danielebarchiesi@0: * danielebarchiesi@0: * Modules implementing this hook can act on the term object when saved to danielebarchiesi@0: * the database. danielebarchiesi@0: * danielebarchiesi@0: * @param $term danielebarchiesi@0: * A taxonomy term object. danielebarchiesi@0: */ danielebarchiesi@0: function hook_taxonomy_term_insert($term) { danielebarchiesi@0: db_insert('mytable') danielebarchiesi@0: ->fields(array( danielebarchiesi@0: 'tid' => $term->tid, danielebarchiesi@0: 'foo' => $term->foo, danielebarchiesi@0: )) danielebarchiesi@0: ->execute(); danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * Act on taxonomy terms when updated. danielebarchiesi@0: * danielebarchiesi@0: * Modules implementing this hook can act on the term object when updated. danielebarchiesi@0: * danielebarchiesi@0: * @param $term danielebarchiesi@0: * A taxonomy term object. danielebarchiesi@0: */ danielebarchiesi@0: function hook_taxonomy_term_update($term) { danielebarchiesi@0: db_update('mytable') danielebarchiesi@0: ->fields(array('foo' => $term->foo)) danielebarchiesi@0: ->condition('tid', $term->tid) danielebarchiesi@0: ->execute(); danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * Respond to the deletion of taxonomy terms. danielebarchiesi@0: * danielebarchiesi@0: * Modules implementing this hook can respond to the deletion of taxonomy danielebarchiesi@0: * terms from the database. danielebarchiesi@0: * danielebarchiesi@0: * @param $term danielebarchiesi@0: * A taxonomy term object. danielebarchiesi@0: */ danielebarchiesi@0: function hook_taxonomy_term_delete($term) { danielebarchiesi@0: db_delete('mytable') danielebarchiesi@0: ->condition('tid', $term->tid) danielebarchiesi@0: ->execute(); danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * Act on a taxonomy term that is being assembled before rendering. danielebarchiesi@0: * danielebarchiesi@0: * The module may add elements to $term->content prior to rendering. The danielebarchiesi@0: * structure of $term->content is a renderable array as expected by danielebarchiesi@0: * drupal_render(). danielebarchiesi@0: * danielebarchiesi@0: * @param $term danielebarchiesi@0: * The term that is being assembled for rendering. danielebarchiesi@0: * @param $view_mode danielebarchiesi@0: * The $view_mode parameter from taxonomy_term_view(). danielebarchiesi@0: * @param $langcode danielebarchiesi@0: * The language code used for rendering. danielebarchiesi@0: * danielebarchiesi@0: * @see hook_entity_view() danielebarchiesi@0: */ danielebarchiesi@0: function hook_taxonomy_term_view($term, $view_mode, $langcode) { danielebarchiesi@0: $term->content['my_additional_field'] = array( danielebarchiesi@0: '#markup' => $additional_field, danielebarchiesi@0: '#weight' => 10, danielebarchiesi@0: '#theme' => 'mymodule_my_additional_field', danielebarchiesi@0: ); danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * Alter the results of taxonomy_term_view(). danielebarchiesi@0: * danielebarchiesi@0: * This hook is called after the content has been assembled in a structured danielebarchiesi@0: * array and may be used for doing processing which requires that the complete danielebarchiesi@0: * taxonomy term content structure has been built. danielebarchiesi@0: * danielebarchiesi@0: * If the module wishes to act on the rendered HTML of the term rather than the danielebarchiesi@0: * structured content array, it may use this hook to add a #post_render danielebarchiesi@0: * callback. Alternatively, it could also implement danielebarchiesi@0: * hook_preprocess_taxonomy_term(). See drupal_render() and theme() danielebarchiesi@0: * documentation respectively for details. danielebarchiesi@0: * danielebarchiesi@0: * @param $build danielebarchiesi@0: * A renderable array representing the node content. danielebarchiesi@0: * danielebarchiesi@0: * @see hook_entity_view_alter() danielebarchiesi@0: */ danielebarchiesi@0: function hook_taxonomy_term_view_alter(&$build) { danielebarchiesi@0: if ($build['#view_mode'] == 'full' && isset($build['an_additional_field'])) { danielebarchiesi@0: // Change its weight. danielebarchiesi@0: $build['an_additional_field']['#weight'] = -10; danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: // Add a #post_render callback to act on the rendered HTML of the term. danielebarchiesi@0: $build['#post_render'][] = 'my_module_node_post_render'; danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * @} End of "addtogroup hooks". danielebarchiesi@0: */