Hooks provided by the Comment module.
Functions & methods
| Name | Description |
|---|---|
| hook_comment_delete | Respond to comment deletion. |
| hook_comment_insert | Respond to creation of a new comment. |
| hook_comment_load | Act on comments being loaded from the database. |
| hook_comment_predelete | Act before comment deletion. |
| hook_comment_presave | Act on a comment being inserted or updated. |
| hook_comment_publish | Respond to a comment being published by a moderator. |
| hook_comment_unpublish | Respond to a comment being unpublished by a moderator. |
| hook_comment_update | Respond to updates to a comment. |
| hook_comment_view | Act on a comment that is being assembled before rendering. |
| hook_comment_view_alter | Alter the results of comment_view(). |
File
core/modules/comment/comment.api.phpView source
- <?php
-
- /**
- * @file
- * Hooks provided by the Comment module.
- */
-
- /**
- * @addtogroup hooks
- * @{
- */
-
- /**
- * Act on a comment being inserted or updated.
- *
- * This hook is invoked from comment_save() before the comment is saved to the
- * database.
- *
- * @param Drupal\comment\Comment $comment
- * The comment object.
- */
- function hook_comment_presave(DrupalcommentComment $comment) {
- // Remove leading & trailing spaces from the comment subject.
- $comment->subject = trim($comment->subject);
- }
-
- /**
- * Respond to creation of a new comment.
- *
- * @param Drupal\comment\Comment $comment
- * The comment object.
- */
- function hook_comment_insert(DrupalcommentComment $comment) {
- // Reindex the node when comments are added.
- search_touch_node($comment->nid);
- }
-
- /**
- * Respond to updates to a comment.
- *
- * @param Drupal\comment\Comment $comment
- * The comment object.
- */
- function hook_comment_update(DrupalcommentComment $comment) {
- // Reindex the node when comments are updated.
- search_touch_node($comment->nid);
- }
-
- /**
- * Act on comments being loaded from the database.
- *
- * @param array $comments
- * An array of comment objects indexed by cid.
- */
- function hook_comment_load(DrupalcommentComment $comments) {
- $result = db_query('SELECT cid, foo FROM {mytable} WHERE cid IN (:cids)', array(':cids' => array_keys($comments)));
- foreach ($result as $record) {
- $comments[$record->cid]->foo = $record->foo;
- }
- }
-
- /**
- * Act on a comment that is being assembled before rendering.
- *
- * @param Drupal\comment\Comment $comment
- * Passes in the comment the action is being performed on.
- * @param $view_mode
- * View mode, e.g. 'full', 'teaser'...
- * @param $langcode
- * The language code used for rendering.
- *
- * @see hook_entity_view()
- */
- function hook_comment_view(DrupalcommentComment $comment, $view_mode, $langcode) {
- // how old is the comment
- $comment->time_ago = time() - $comment->changed;
- }
-
- /**
- * Alter the results of comment_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
- * comment content structure has been built.
- *
- * If the module wishes to act on the rendered HTML of the comment rather than
- * the structured content array, it may use this hook to add a #post_render
- * callback. Alternatively, it could also implement hook_preprocess_HOOK() for
- * comment.tpl.php. See drupal_render() and theme() documentation respectively
- * for details.
- *
- * @param $build
- * A renderable array representing the comment.
- *
- * @see comment_view()
- * @see hook_entity_view_alter()
- */
- function hook_comment_view_alter(&$build) {
- // Check for the existence of a field added by another module.
- 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 comment.
- $build['#post_render'][] = 'my_module_comment_post_render';
- }
-
- /**
- * Respond to a comment being published by a moderator.
- *
- * @param Drupal\comment\Comment $comment
- * The comment the action is being performed on.
- */
- function hook_comment_publish(DrupalcommentComment $comment) {
- drupal_set_message(t('Comment: @subject has been published', array('@subject' => $comment->subject)));
- }
-
- /**
- * Respond to a comment being unpublished by a moderator.
- *
- * @param Drupal\comment\Comment $comment
- * The comment the action is being performed on.
- */
- function hook_comment_unpublish(DrupalcommentComment $comment) {
- drupal_set_message(t('Comment: @subject has been unpublished', array('@subject' => $comment->subject)));
- }
-
- /**
- * Act before comment deletion.
- *
- * This hook is invoked from comment_delete_multiple() before
- * field_attach_delete() is called and before the comment is actually removed
- * from the database.
- *
- * @param Drupal\comment\Comment $comment
- * The comment object for the comment that is about to be deleted.
- *
- * @see hook_comment_delete()
- * @see comment_delete_multiple()
- * @see entity_delete_multiple()
- */
- function hook_comment_predelete(DrupalcommentComment $comment) {
- // Delete a record associated with the comment in a custom table.
- db_delete('example_comment_table')
- ->condition('cid', $comment->cid)
- ->execute();
- }
-
- /**
- * Respond to comment deletion.
- *
- * This hook is invoked from comment_delete_multiple() after
- * field_attach_delete() has called and after the comment has been removed from
- * the database.
- *
- * @param Drupal\comment\Comment $comment
- * The comment object for the comment that has been deleted.
- *
- * @see hook_comment_predelete()
- * @see comment_delete_multiple()
- * @see entity_delete_multiple()
- */
- function hook_comment_delete(DrupalcommentComment $comment) {
- drupal_set_message(t('Comment: @subject has been deleted', array('@subject' => $comment->subject)));
- }
-
- /**
- * @} End of "addtogroup hooks".
- */
-