diff --git a/core/modules/config_translation/lib/Drupal/config_translation/Tests/ConfigTranslationUiTest.php b/core/modules/config_translation/lib/Drupal/config_translation/Tests/ConfigTranslationUiTest.php index ed4b1e2..61b7099 100644 --- a/core/modules/config_translation/lib/Drupal/config_translation/Tests/ConfigTranslationUiTest.php +++ b/core/modules/config_translation/lib/Drupal/config_translation/Tests/ConfigTranslationUiTest.php @@ -304,8 +304,8 @@ public function testContactConfigEntityTranslation() { // Submit feedback. $edit = array( - 'subject' => 'Test subject', - 'message' => 'Test message', + 'subject[0][value]' => 'Test subject', + 'message[0][value]' => 'Test message', ); $this->drupalPostForm(NULL, $edit, t('Send message')); } diff --git a/core/modules/contact/contact.info.yml b/core/modules/contact/contact.info.yml index 647bc15..65c7151 100644 --- a/core/modules/contact/contact.info.yml +++ b/core/modules/contact/contact.info.yml @@ -4,4 +4,6 @@ description: 'Enables the use of both personal and site-wide contact forms.' package: Core version: VERSION core: 8.x +dependencies: + - text configure: contact.category_list diff --git a/core/modules/contact/contact.module b/core/modules/contact/contact.module index a3246a3..a56fa90 100644 --- a/core/modules/contact/contact.module +++ b/core/modules/contact/contact.module @@ -142,27 +142,11 @@ function contact_field_extra_fields() { 'weight' => -30, ); } - $fields['contact_message'][$bundle]['form']['subject'] = array( - 'label' => t('Subject'), - 'description' => t('Text'), - 'weight' => -10, - ); - $fields['contact_message'][$bundle]['form']['message'] = array( - 'label' => t('Message'), - 'description' => t('Long text'), - 'weight' => 0, - ); $fields['contact_message'][$bundle]['form']['copy'] = array( 'label' => t('Send copy to sender'), 'description' => t('Option'), 'weight' => 50, ); - - $fields['contact_message'][$bundle]['display']['message'] = array( - 'label' => t('Message'), - 'description' => t('The main contact message'), - 'weight' => 0, - ); } $fields['user']['user']['form']['contact'] = array( diff --git a/core/modules/contact/lib/Drupal/contact/Entity/Message.php b/core/modules/contact/lib/Drupal/contact/Entity/Message.php index 573b304..dbf529a 100644 --- a/core/modules/contact/lib/Drupal/contact/Entity/Message.php +++ b/core/modules/contact/lib/Drupal/contact/Entity/Message.php @@ -154,13 +154,42 @@ public static function baseFieldDefinitions($entity_type) { ->setLabel(t("The sender's email")) ->setDescription(t('The email of the person that is sending the contact message.')); - $fields['subject'] = FieldDefinition::create('string') - ->setLabel(t('The message subject')) - ->setDescription(t('The subject of the contact message.')); - - $fields['message'] = FieldDefinition::create('string') - ->setLabel(t('The message text')) - ->setDescription(t('The text of the contact message.')); + // The subject of the contact message. + $fields['subject'] = FieldDefinition::create('text') + ->setLabel(t('Subject')) + ->setRequired(TRUE) + ->setSettings(array( + 'default_value' => '', + 'max_length' => 100, + 'text_processing' => 0, + )) + ->setDisplayOptions('form', array( + 'type' => 'text_textfield', + 'weight' => -10, + )) + ->setDisplayConfigurable('form', TRUE); + + // The text of the contact message. + $fields['message'] = FieldDefinition::create('text_long') + ->setLabel(t('Message')) + ->setRequired(TRUE) + ->setSettings(array( + 'default_value' => '', + 'text_processing' => 0, + )) + ->setDisplayOptions('form', array( + 'type' => 'text_textarea', + 'weight' => 0, + 'settings' => array( + 'rows' => 12, + ), + )) + ->setDisplayConfigurable('form', TRUE) + ->setDisplayOptions('view', array( + 'type' => 'text_default', + 'weight' => 0, + )) + ->setDisplayConfigurable('view', TRUE); $fields['copy'] = FieldDefinition::create('boolean') ->setLabel(t('Copy')) diff --git a/core/modules/contact/lib/Drupal/contact/MessageFormController.php b/core/modules/contact/lib/Drupal/contact/MessageFormController.php index e7012b6..002d1a3 100644 --- a/core/modules/contact/lib/Drupal/contact/MessageFormController.php +++ b/core/modules/contact/lib/Drupal/contact/MessageFormController.php @@ -82,19 +82,6 @@ public function form(array $form, array &$form_state) { ); } - $form['subject'] = array( - '#type' => 'textfield', - '#title' => t('Subject'), - '#maxlength' => 100, - '#required' => TRUE, - ); - $form['message'] = array( - '#type' => 'textarea', - '#title' => t('Message'), - '#required' => TRUE, - '#rows' => 12, - ); - $form['copy'] = array( '#type' => 'checkbox', '#title' => t('Send yourself a copy.'), diff --git a/core/modules/contact/lib/Drupal/contact/Tests/ContactPersonalTest.php b/core/modules/contact/lib/Drupal/contact/Tests/ContactPersonalTest.php index c7056a7..58871b3 100644 --- a/core/modules/contact/lib/Drupal/contact/Tests/ContactPersonalTest.php +++ b/core/modules/contact/lib/Drupal/contact/Tests/ContactPersonalTest.php @@ -7,6 +7,7 @@ namespace Drupal\contact\Tests; +use Drupal\Core\Session\AccountInterface; use Drupal\simpletest\WebTestBase; /** @@ -78,13 +79,13 @@ function testSendPersonalContactMessage() { $this->assertEqual($mail['key'], 'user_mail'); $variables = array( '!site-name' => \Drupal::config('system.site')->get('name'), - '!subject' => $message['subject'], + '!subject' => $message['subject[0][value]'], '!recipient-name' => $this->contact_user->getUsername(), ); $this->assertEqual($mail['subject'], t('[!site-name] !subject', $variables), 'Subject is in sent message.'); $this->assertTrue(strpos($mail['body'], t('Hello !recipient-name,', $variables)) !== FALSE, 'Recipient name is in sent message.'); $this->assertTrue(strpos($mail['body'], $this->web_user->getUsername()) !== FALSE, 'Sender name is in sent message.'); - $this->assertTrue(strpos($mail['body'], $message['message']) !== FALSE, 'Message body is in sent message.'); + $this->assertTrue(strpos($mail['body'], $message['message[0][value]']) !== FALSE, 'Message body is in sent message.'); } /** @@ -212,18 +213,22 @@ function testPersonalContactFlood() { /** * Fills out a user's personal contact form and submits it. * - * @param $account + * @param \Drupal\Core\Session\AccountInterface $account * A user object of the user being contacted. - * @param $message + * @param array $message * (optional) An array with the form fields being used. Defaults to an empty * array. + * + * @return array + * An array with the form fields being used. */ - protected function submitPersonalContact($account, array $message = array()) { + protected function submitPersonalContact(AccountInterface $account, array $message = array()) { $message += array( - 'subject' => $this->randomName(16), - 'message' => $this->randomName(64), + 'subject[0][value]' => $this->randomName(16), + 'message[0][value]' => $this->randomName(64), ); $this->drupalPostForm('user/' . $account->id() . '/contact', $message, t('Send message')); return $message; } + } diff --git a/core/modules/contact/lib/Drupal/contact/Tests/ContactSitewideTest.php b/core/modules/contact/lib/Drupal/contact/Tests/ContactSitewideTest.php index b8ae287..f89fd08 100644 --- a/core/modules/contact/lib/Drupal/contact/Tests/ContactSitewideTest.php +++ b/core/modules/contact/lib/Drupal/contact/Tests/ContactSitewideTest.php @@ -257,14 +257,14 @@ function testSiteWideContact() { // Submit the contact form and verify the content. $edit = array( - 'subject' => $this->randomName(), - 'message' => $this->randomName(), + 'subject[0][value]' => $this->randomName(), + 'message[0][value]' => $this->randomName(), $field_name . '[0][value]' => $this->randomName(), ); $this->drupalPostForm(NULL, $edit, t('Send message')); $mails = $this->drupalGetMails(); $mail = array_pop($mails); - $this->assertEqual($mail['subject'], t('[@label] @subject', array('@label' => $label, '@subject' => $edit['subject']))); + $this->assertEqual($mail['subject'], t('[@label] @subject', array('@label' => $label, '@subject' => $edit['subject[0][value]']))); $this->assertTrue(strpos($mail['body'], $field_label)); $this->assertTrue(strpos($mail['body'], $edit[$field_name . '[0][value]'])); } @@ -381,8 +381,8 @@ function submitContact($name, $mail, $subject, $id, $message) { $edit = array(); $edit['name'] = $name; $edit['mail'] = $mail; - $edit['subject'] = $subject; - $edit['message'] = $message; + $edit['subject[0][value]'] = $subject; + $edit['message[0][value]'] = $message; if ($id == \Drupal::config('contact.settings')->get('default_category')) { $this->drupalPostForm('contact', $edit, t('Send message')); } diff --git a/core/modules/contact/lib/Drupal/contact/Tests/MessageEntityTest.php b/core/modules/contact/lib/Drupal/contact/Tests/MessageEntityTest.php index fd5300b..afe6457 100644 --- a/core/modules/contact/lib/Drupal/contact/Tests/MessageEntityTest.php +++ b/core/modules/contact/lib/Drupal/contact/Tests/MessageEntityTest.php @@ -21,7 +21,7 @@ class MessageEntityTest extends DrupalUnitTestBase { * * @var array */ - public static $modules = array('system', 'contact', 'field', 'user'); + public static $modules = array('system', 'contact', 'field', 'user', 'text'); public static function getInfo() { return array(