function comment_form_submit
comment_form_submit($form, &$form_state)
Process comment form submissions; prepare the comment, store it, and set a redirection target.
File
- modules/comment/comment.module, line 2239
- Enables users to comment on published content.
Code
function comment_form_submit($form, &$form_state) { $node = node_load($form_state['values']['nid']); $comment = comment_form_submit_build_comment($form, $form_state); if (user_access('post comments') && (user_access('administer comments') || $node->comment == COMMENT_NODE_OPEN)) { // Save the anonymous user information to a cookie for reuse. if (user_is_anonymous()) { user_cookie_save(array_intersect_key($form_state['values'], array_flip(array('name', 'mail', 'homepage')))); } comment_save($comment); $form_state['values']['cid'] = $comment->cid; // Add an entry to the watchdog log. watchdog('content', 'Comment posted: %subject.', array('%subject' => $comment->subject), WATCHDOG_NOTICE, l(t('view'), 'comment/' . $comment->cid, array('fragment' => 'comment-' . $comment->cid))); // Explain the approval queue if necessary. if ($comment->status == COMMENT_NOT_PUBLISHED) { if (!user_access('administer comments')) { drupal_set_message(t('Your comment has been queued for review by site administrators and will be published after approval.')); } } else { drupal_set_message(t('Your comment has been posted.')); } $query = array(); // Find the current display page for this comment. $page = comment_get_display_page($comment->cid, $node->type); if ($page > 0) { $query['page'] = $page; } // Redirect to the newly posted comment. $redirect = array('node/' . $node->nid, array('query' => $query, 'fragment' => 'comment-' . $comment->cid)); } else { watchdog('content', 'Comment: unauthorized comment submitted or comment submitted to a closed post %subject.', array('%subject' => $comment->subject), WATCHDOG_WARNING); drupal_set_message(t('Comment: unauthorized comment submitted or comment submitted to a closed post %subject.', array('%subject' => $comment->subject)), 'error'); // Redirect the user to the node they are commenting on. $redirect = 'node/' . $node->nid; } $form_state['redirect'] = $redirect; // Clear the block and page caches so that anonymous users see the comment // they have posted. cache_clear_all(); }
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/modules!comment!comment.module/function/comment_form_submit/7.x