summaryrefslogtreecommitdiff
path: root/modules/comment
diff options
context:
space:
mode:
Diffstat (limited to 'modules/comment')
-rw-r--r--modules/comment/comment.api.php106
-rw-r--r--modules/comment/comment.module8
2 files changed, 88 insertions, 26 deletions
diff --git a/modules/comment/comment.api.php b/modules/comment/comment.api.php
index a486dd932..9b431e98d 100644
--- a/modules/comment/comment.api.php
+++ b/modules/comment/comment.api.php
@@ -12,37 +12,99 @@
*/
/**
- * Act on comments.
+ * The comment is being inserted.
*
- * This hook allows modules to extend the comments system.
+ * @param $form_values
+ * Passes in an array of form values submitted by the user.
+ * @return
+ * Nothing.
+ */
+function hook_comment_insert(&$form_values) {
+ $nid = $form_values['nid'];
+
+ cache_clear_all_like(drupal_url(array('id' => $nid)));
+}
+
+/**
+ * The user has just finished editing the comment and is trying to
+ * preview or submit it. This hook can be used to check or
+ * even modify the node. Errors should be set with form_set_error().
*
- * @param $a1
- * Dependent on the action being performed.
- * - For "validate","update","insert", passes in an array of form values submitted by the user.
- * - For all other operations, passes in the comment the action is being performed on.
- * @param $op
- * What kind of action is being performed. Possible values:
- * - "insert": The comment is being inserted.
- * - "update": The comment is being updated.
- * - "view": The comment is being viewed. This hook can be used to add additional data to the comment before theming.
- * - "validate": The user has just finished editing the comment and is
- * trying to preview or submit it. This hook can be used to check or
- * even modify the node. Errors should be set with form_set_error().
- * - "publish": The comment is being published by the moderator.
- * - "unpublish": The comment is being unpublished by the moderator.
- * - "delete": The comment is being deleted by the moderator.
+ * @param $form_values
+ * Passes in an array of form values submitted by the user.
* @return
- * Dependent on the action being performed.
- * - For all other operations, nothing.
+ * Nothing.
*/
-function hook_comment(&$a1, $op) {
- if ($op == 'insert' || $op == 'update') {
- $nid = $a1['nid'];
+function hook_comment_validate(&$form_values) {
+ // if the subject is the same as the comment.
+ if ($form_values['subject'] == $form_values['comment']) {
+ form_set_error('comment', t('you should write more text than in the subject'));
}
+}
+
+/**
+ * The comment is being updated.
+ *
+ * @param $form_values
+ * Passes in an array of form values submitted by the user.
+ * @return
+ * Nothing.
+ */
+function hook_comment_update(&$form_values) {
+ $nid = $form_values['nid'];
cache_clear_all_like(drupal_url(array('id' => $nid)));
}
/**
+ * 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.
+ * @return
+ * Nothing.
+ */
+function hook_comment_view(&$comment) {
+ // how old is the comment
+ $comment->time_ago = time() - $comment->timestamp;
+}
+
+/**
+ * The comment is being published by the moderator.
+ *
+ * @param $form_values
+ * Passes in an array of form values submitted by the user.
+ * @return
+ * Nothing.
+ */
+function hook_comment_publish($form_values) {
+ drupal_set_message(t('Comment: @subject has been published', array('@subject' => $form_values['subject'])));
+}
+
+/**
+ * The comment is being unpublished by the moderator.
+ *
+ * @param $comment
+ * Passes in the comment the action is being performed on.
+ * @return
+ * Nothing.
+ */
+function hook_comment_unpublish(&$comment) {
+ drupal_set_message(t('Comment: @subject has been unpublished', array('@subject' => $comment->subject)));
+}
+
+/**
+ * The comment is being deleted by the moderator.
+ *
+ * @param $comment
+ * Passes in the comment the action is being performed on.
+ * @return
+ * Nothing.
+ */
+function hook_comment_delete(&$comment) {
+ drupal_set_message(t('Comment: @subject has been deleted', array('@subject' => $comment->subject)));
+}
+
+/**
* @} End of "addtogroup hooks".
*/
diff --git a/modules/comment/comment.module b/modules/comment/comment.module
index bafb8059c..44f648ca3 100644
--- a/modules/comment/comment.module
+++ b/modules/comment/comment.module
@@ -1990,7 +1990,7 @@ function _comment_update_node_statistics($nid) {
}
/**
- * Invoke a hook_comment() operation in all modules.
+ * Invoke a hook_comment_[$op]() operation in all modules.
*
* @param &$comment
* A comment object.
@@ -2001,9 +2001,9 @@ function _comment_update_node_statistics($nid) {
*/
function comment_invoke_comment(&$comment, $op) {
$return = array();
- foreach (module_implements('comment') as $module) {
- $function = $module . '_comment';
- $result = $function($comment, $op);
+ foreach (module_implements('comment_' . $op) as $module) {
+ $function = $module . '_comment_' . $op;
+ $result = $function($comment);
if (isset($result) && is_array($result)) {
$return = array_merge($return, $result);
}