2008-11-25 02:37:33 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @file
|
|
|
|
* Hooks provided by the Comment module.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @addtogroup hooks
|
|
|
|
* @{
|
|
|
|
*/
|
|
|
|
|
2009-08-17 13:10:45 +00:00
|
|
|
/**
|
|
|
|
* The comment passed validation and is about to be saved.
|
|
|
|
*
|
|
|
|
* Modules may make changes to the comment before it is saved to the database.
|
|
|
|
*
|
|
|
|
* @param $comment
|
|
|
|
* The comment object.
|
|
|
|
*/
|
|
|
|
function hook_comment_presave($comment) {
|
|
|
|
// Remove leading & trailing spaces from the comment subject.
|
|
|
|
$comment->subject = trim($comment->subject);
|
|
|
|
}
|
|
|
|
|
2008-11-25 02:37:33 +00:00
|
|
|
/**
|
2009-01-04 16:10:48 +00:00
|
|
|
* The comment is being inserted.
|
2008-11-25 02:37:33 +00:00
|
|
|
*
|
2009-07-01 20:39:20 +00:00
|
|
|
* @param $comment
|
|
|
|
* The comment object.
|
2009-01-04 16:10:48 +00:00
|
|
|
*/
|
2009-07-01 20:39:20 +00:00
|
|
|
function hook_comment_insert($comment) {
|
2009-03-13 14:32:07 +00:00
|
|
|
// Reindex the node when comments are added.
|
2009-07-01 20:39:20 +00:00
|
|
|
search_touch_node($comment->nid);
|
2009-01-04 16:10:48 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* The comment is being updated.
|
|
|
|
*
|
2009-07-01 20:39:20 +00:00
|
|
|
* @param $comment
|
|
|
|
* The comment object.
|
2009-01-04 16:10:48 +00:00
|
|
|
*/
|
2009-07-01 20:39:20 +00:00
|
|
|
function hook_comment_update($comment) {
|
2009-03-13 14:32:07 +00:00
|
|
|
// Reindex the node when comments are updated.
|
2009-07-01 20:39:20 +00:00
|
|
|
search_touch_node($comment->nid);
|
2008-11-25 02:37:33 +00:00
|
|
|
}
|
|
|
|
|
2009-07-10 05:50:08 +00:00
|
|
|
/**
|
|
|
|
* Comments are being loaded from the database.
|
|
|
|
*
|
|
|
|
* @param $comments
|
|
|
|
* An array of comment objects indexed by cid.
|
|
|
|
*/
|
|
|
|
function hook_comment_load($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;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2009-01-04 16:10:48 +00:00
|
|
|
/**
|
|
|
|
* The comment is being viewed. This hook can be used to add additional data to the comment before theming.
|
|
|
|
*
|
|
|
|
* @param $comment
|
|
|
|
* Passes in the comment the action is being performed on.
|
2010-10-03 01:15:34 +00:00
|
|
|
* @param $view_mode
|
|
|
|
* View mode, e.g. 'full', 'teaser'...
|
|
|
|
* @param $langcode
|
|
|
|
* The language code used for rendering.
|
2010-10-23 15:30:34 +00:00
|
|
|
*
|
|
|
|
* @see hook_entity_view()
|
2009-01-04 16:10:48 +00:00
|
|
|
*/
|
2010-10-03 01:15:34 +00:00
|
|
|
function hook_comment_view($comment, $view_mode, $langcode) {
|
2009-01-04 16:10:48 +00:00
|
|
|
// how old is the comment
|
2009-10-10 13:37:11 +00:00
|
|
|
$comment->time_ago = time() - $comment->changed;
|
2009-01-04 16:10:48 +00:00
|
|
|
}
|
|
|
|
|
2009-11-07 13:35:21 +00:00
|
|
|
/**
|
|
|
|
* The comment was built; the module may modify the structured content.
|
|
|
|
*
|
|
|
|
* 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_comment(). See
|
|
|
|
* drupal_render() and theme() documentation respectively for details.
|
|
|
|
*
|
|
|
|
* @param $build
|
|
|
|
* A renderable array representing the comment.
|
|
|
|
*
|
2009-12-21 13:47:32 +00:00
|
|
|
* @see comment_view()
|
2010-10-23 15:30:34 +00:00
|
|
|
* @see hook_entity_view_alter()
|
2009-11-07 13:35:21 +00:00
|
|
|
*/
|
2010-02-09 22:30:30 +00:00
|
|
|
function hook_comment_view_alter(&$build) {
|
2009-11-07 13:35:21 +00:00
|
|
|
// Check for the existence of a field added by another module.
|
2009-12-26 16:50:09 +00:00
|
|
|
if ($build['#view_mode'] == 'full' && isset($build['an_additional_field'])) {
|
2009-11-07 13:35:21 +00:00
|
|
|
// 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';
|
|
|
|
}
|
|
|
|
|
2009-01-04 16:10:48 +00:00
|
|
|
/**
|
|
|
|
* The comment is being published by the moderator.
|
|
|
|
*
|
2009-06-10 05:09:51 +00:00
|
|
|
* @param $comment
|
2009-06-03 06:52:29 +00:00
|
|
|
* Passes in the comment the action is being performed on.
|
2009-01-04 16:10:48 +00:00
|
|
|
* @return
|
|
|
|
* Nothing.
|
|
|
|
*/
|
2009-06-03 06:52:29 +00:00
|
|
|
function hook_comment_publish($comment) {
|
|
|
|
drupal_set_message(t('Comment: @subject has been published', array('@subject' => $comment->subject)));
|
2009-01-04 16:10:48 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* The comment is being unpublished by the moderator.
|
|
|
|
*
|
|
|
|
* @param $comment
|
|
|
|
* Passes in the comment the action is being performed on.
|
|
|
|
* @return
|
|
|
|
* Nothing.
|
|
|
|
*/
|
2009-06-03 06:52:29 +00:00
|
|
|
function hook_comment_unpublish($comment) {
|
2009-01-04 16:10:48 +00:00
|
|
|
drupal_set_message(t('Comment: @subject has been unpublished', array('@subject' => $comment->subject)));
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2011-12-17 12:43:37 +00:00
|
|
|
* 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.
|
2009-01-04 16:10:48 +00:00
|
|
|
*
|
|
|
|
* @param $comment
|
2011-12-17 12:43:37 +00:00
|
|
|
* 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($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 $comment
|
|
|
|
* The comment object for the comment that has been deleted.
|
|
|
|
*
|
|
|
|
* @see hook_comment_predelete()
|
|
|
|
* @see comment_delete_multiple()
|
|
|
|
* @see entity_delete_multiple()
|
2009-01-04 16:10:48 +00:00
|
|
|
*/
|
2009-06-03 06:52:29 +00:00
|
|
|
function hook_comment_delete($comment) {
|
2009-01-04 16:10:48 +00:00
|
|
|
drupal_set_message(t('Comment: @subject has been deleted', array('@subject' => $comment->subject)));
|
|
|
|
}
|
|
|
|
|
2008-11-25 02:37:33 +00:00
|
|
|
/**
|
|
|
|
* @} End of "addtogroup hooks".
|
|
|
|
*/
|