Skip to content
Snippets Groups Projects
Verified Commit 1ceffc16 authored by Lee Rowlands's avatar Lee Rowlands
Browse files

Issue #3322894 by Akhil Babu, Juanjol, micnap, larowlan, quietone, catch,...

Issue #3322894 by Akhil Babu, Juanjol, micnap, larowlan, quietone, catch, alexpott:  Comment form gives deprecated warnings on PHP 8.1 when comment is empty
parent 33630ea5
No related branches found
No related tags found
No related merge requests found
...@@ -320,7 +320,7 @@ public function buildEntity(array $form, FormStateInterface $form_state) { ...@@ -320,7 +320,7 @@ public function buildEntity(array $form, FormStateInterface $form_state) {
// Validate the comment's subject. If not specified, extract from comment // Validate the comment's subject. If not specified, extract from comment
// body. // body.
if (trim($comment->getSubject()) == '') { if (trim($comment->getSubject()) == '') {
if ($comment->hasField('comment_body')) { if ($comment->hasField('comment_body') && !$comment->comment_body->isEmpty()) {
// The body may be in any format, so: // The body may be in any format, so:
// 1) Filter it into HTML // 1) Filter it into HTML
// 2) Strip out all HTML tags // 2) Strip out all HTML tags
...@@ -330,7 +330,7 @@ public function buildEntity(array $form, FormStateInterface $form_state) { ...@@ -330,7 +330,7 @@ public function buildEntity(array $form, FormStateInterface $form_state) {
} }
// Edge cases where the comment body is populated only by HTML tags will // Edge cases where the comment body is populated only by HTML tags will
// require a default subject. // require a default subject.
if ($comment->getSubject() == '') { if (trim($comment->getSubject()) == '') {
$comment->setSubject($this->t('(No subject)')); $comment->setSubject($this->t('(No subject)'));
} }
} }
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
use Drupal\comment\Entity\Comment; use Drupal\comment\Entity\Comment;
use Drupal\Core\Entity\Entity\EntityViewDisplay; use Drupal\Core\Entity\Entity\EntityViewDisplay;
use Drupal\Core\Entity\Entity\EntityViewMode; use Drupal\Core\Entity\Entity\EntityViewMode;
use Drupal\field\Entity\FieldConfig;
use Drupal\user\RoleInterface; use Drupal\user\RoleInterface;
use Drupal\filter\Entity\FilterFormat; use Drupal\filter\Entity\FilterFormat;
...@@ -238,6 +239,16 @@ public function testAutoFilledSubject() { ...@@ -238,6 +239,16 @@ public function testAutoFilledSubject() {
$body_text2 = 'AQuickBrownFoxJumpedOverTheLazyDog'; $body_text2 = 'AQuickBrownFoxJumpedOverTheLazyDog';
$comment2 = $this->postComment(NULL, $body_text2, '', TRUE); $comment2 = $this->postComment(NULL, $body_text2, '', TRUE);
$this->assertEquals('AQuickBrownFoxJumpedOverTheL…', $comment2->getSubject()); $this->assertEquals('AQuickBrownFoxJumpedOverTheL…', $comment2->getSubject());
// Make the body field non required.
$comment_body_field = FieldConfig::loadByName('comment', 'comment', 'comment_body');
$comment_body_field->setRequired(FALSE)->save();
// Try to post a comment without any value in body and subject fields.
$this->drupalGet('node/' . $this->node->id());
// Ensure that there are no PHP errors or warnings when automatically
// generating the subject. This occurs when the comment body is empty.
$comment2 = $this->postComment(NULL, '', '', TRUE);
$this->assertEquals('(No subject)', $comment2->getSubject());
} }
/** /**
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment