Error message

You are browsing documentation for drupal 7.x, which is not supported anymore. Read the updated version of this page for drupal 11.x (the latest version).

function comment_submit

Prepare a comment for submission.

1 call to comment_submit()
comment_form_submit_build_comment in modules/comment/comment.module
Updates the form state's comment entity by processing this submission's values.

File

modules/comment/comment.module, line 2183

Code

function comment_submit ($comment) {
 // @todo Legacy support. Remove in Drupal 8.
 if (is_array ($comment)) {
 $comment += array(
 'subject' => '',
 );
 $comment = (object) $comment;
 }
 if (empty($comment->date)) {
 $comment->date = 'now';
 }
 $comment->created = strtotime ($comment->date, REQUEST_TIME );
 $comment->changed  = REQUEST_TIME ;
 // If the comment was posted by a registered user, assign the author's ID.
 // @todo Too fragile. Should be prepared and stored in comment_form() already.
 if (!$comment->is_anonymous && !empty($comment->name ) && $account = user_load_by_name ($comment->name )) {
 $comment->uid = $account->uid;
 }
 // If the comment was posted by an anonymous user and no author name was
 // required, use "Anonymous" by default.
 if ($comment->is_anonymous && (!isset($comment->name ) || $comment->name  === '')) {
 $comment->name  = variable_get ('anonymous', t ('Anonymous'));
 }
 // Validate the comment's subject. If not specified, extract from comment body.
 if (trim ($comment->subject) == '') {
 // The body may be in any format, so:
 // 1) Filter it into HTML
 // 2) Strip out all HTML tags
 // 3) Convert entities back to plain-text.
 $field = field_info_field ('comment_body');
 $langcode = field_is_translatable ('comment', $field) ? entity_language ('comment', $comment) : LANGUAGE_NONE ;
 $comment_body = $comment->comment_body[$langcode][0];
 if (isset($comment_body['format'])) {
 $comment_text = check_markup ($comment_body['value'], $comment_body['format']);
 }
 else {
 $comment_text = check_plain ($comment_body['value']);
 }
 $comment->subject = truncate_utf8 (trim (decode_entities (strip_tags ($comment_text))), 29, TRUE);
 // Edge cases where the comment body is populated only by HTML tags will
 // require a default subject.
 if ($comment->subject == '') {
 $comment->subject = t ('(No subject)');
 }
 }
 return $comment;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.