diff options
Diffstat (limited to 'modules/taxonomy')
-rw-r--r-- | modules/taxonomy/taxonomy.api.php | 28 | ||||
-rw-r--r-- | modules/taxonomy/taxonomy.module | 4 |
2 files changed, 32 insertions, 0 deletions
diff --git a/modules/taxonomy/taxonomy.api.php b/modules/taxonomy/taxonomy.api.php index 6ceab8f80..1527e487c 100644 --- a/modules/taxonomy/taxonomy.api.php +++ b/modules/taxonomy/taxonomy.api.php @@ -183,5 +183,33 @@ function hook_taxonomy_term_delete($term) { } /** + * Alter the results of taxonomy_term_view(). + * + * This hook is called after the content has been assembled in a structured + * array and may be used for doing processing which requires that the complete + * taxonomy term content structure has been built. + * + * If the module wishes to act on the rendered HTML of the term rather than the + * structured content array, it may use this hook to add a #post_render + * callback. Alternatively, it could also implement + * hook_preprocess_taxonomy_term(). See drupal_render() and theme() + * documentation respectively for details. + * + * @param $build + * A renderable array representing the node content. + * + * @see hook_entity_view_alter() + */ +function hook_taxonomy_term_view_alter(&$build) { + if ($build['#view_mode'] == 'full' && isset($build['an_additional_field'])) { + // Change its weight. + $build['an_additional_field']['#weight'] = -10; + } + + // Add a #post_render callback to act on the rendered HTML of the term. + $build['#post_render'][] = 'my_module_node_post_render'; +} + +/** * @} End of "addtogroup hooks". */ diff --git a/modules/taxonomy/taxonomy.module b/modules/taxonomy/taxonomy.module index b36bca9c3..1e0cf45ad 100644 --- a/modules/taxonomy/taxonomy.module +++ b/modules/taxonomy/taxonomy.module @@ -665,6 +665,10 @@ function taxonomy_term_view($term, $view_mode = 'full', $langcode = NULL) { $build['#attached']['css'][] = drupal_get_path('module', 'taxonomy') . '/taxonomy.css'; + // Allow modules to modify the structured term. + $type = 'taxonomy_term'; + drupal_alter(array('taxonomy_term_view', 'entity_view'), $build, $type); + return $build; } |