Skip to content

Commit 4e4c6a1

Browse files
authored
Merge pull request #538 from dotkernel/issue537
moved email message to & cc names to config file
2 parents dbacf71 + 2d13d4c commit 4e4c6a1

File tree

8 files changed

+47
-54
lines changed

8 files changed

+47
-54
lines changed

config/autoload/local.php.dist

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,20 @@ return [
4545
],
4646
],
4747
'contact' => [
48-
'notification_receivers' => [],
49-
'message_receivers' => [
50-
'to' => [
48+
'subject' => 'Dotkernel Contact',
49+
'message_sender' => [
50+
'from_name' => '',
51+
'from_email' => '',
52+
],
53+
'message_recipients' => [
54+
'name' => 'Dotkernel Team',
55+
'to' => [
56+
57+
],
58+
'cc' => [
5159
5260
],
53-
'cc' => [
61+
'bcc' => [
5462
5563
],
5664
],

src/Contact/src/Controller/ContactController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ public function formAction(): ResponseInterface
6565
$this->messenger->addError('Missing recaptcha');
6666
return new RedirectResponse($request->getUri(), 303);
6767
}
68-
$data['subject'] = $data['subject'] ?: $this->config['application']['name'] . ' Contact';
68+
6969
$form->setData($data);
7070
if ($form->isValid()) {
7171
/** @var array $dataForm */

src/Contact/src/Form/ContactForm.php

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
use Frontend\Contact\InputFilter\ContactInputFilter;
99
use Laminas\Form\Element\Csrf;
1010
use Laminas\Form\Element\Email;
11-
use Laminas\Form\Element\Hidden;
1211
use Laminas\Form\Element\Text;
1312
use Laminas\Form\Element\Textarea;
1413
use Laminas\Form\Form;
@@ -62,18 +61,6 @@ public function init(): void
6261
'type' => Text::class,
6362
]);
6463

65-
$this->add([
66-
'name' => 'subject',
67-
'options' => [
68-
'label' => 'Subject',
69-
],
70-
'attributes' => [
71-
'placeholder' => 'Subject...',
72-
'class' => 'form-control',
73-
],
74-
'type' => Hidden::class,
75-
]);
76-
7764
$this->add([
7865
'name' => 'message',
7966
'options' => [

src/Contact/src/InputFilter/ContactInputFilter.php

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -53,20 +53,6 @@ public function init(): void
5353
], true);
5454
$this->add($name);
5555

56-
$subject = new Input('subject');
57-
$subject->setRequired(false);
58-
$subject->getFilterChain()
59-
->attachByName(StringTrim::class)
60-
->attachByName(StripTags::class);
61-
$subject->getValidatorChain()
62-
->attachByName(NotEmpty::class, [
63-
'message' => '<b>Subject</b> is required and cannot be empty',
64-
], true)
65-
->attachByName(StringLength::class, [
66-
'max' => 500,
67-
], true);
68-
$this->add($subject);
69-
7056
$message = new Input('message');
7157
$message->setRequired(true);
7258
$message->getFilterChain()

src/Contact/src/Service/MessageService.php

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,13 @@ public function getRepository(): MessageRepository
3434

3535
public function processMessage(array $data): bool
3636
{
37+
$subject = $this->config['contact']['subject'] ?? $this->config['dot_mail']['message_options']['subject']
38+
?: $this->config['application']['name'] . ' Contact';
39+
3740
$message = new Message(
3841
$data['email'],
3942
$data['name'],
40-
$data['subject'],
43+
$subject,
4144
$data['message'],
4245
Message::PLATFORM_WEBSITE
4346
);
@@ -57,18 +60,28 @@ public function sendContactMail(Message $message): bool
5760
);
5861

5962
$this->mailService->setSubject($message->getSubject());
60-
$this->mailService->getMessage()->addFrom(
61-
$this->config['dot_mail']['default']['message_options']['from'],
62-
$this->config['dot_mail']['default']['message_options']['from_name']
63+
64+
$messageConfig = $this->config['dot_mail']['default']['message_options'];
65+
$contactSender = $this->config['contact']['message_sender'];
66+
$contactRecipients = $this->config['contact']['message_recipients'];
67+
68+
$this->mailService->getMessage()->setFrom(
69+
$contactSender['from_email'] ?: $messageConfig['from'],
70+
$contactSender['from_name'] ?: $messageConfig['from_name']
6371
);
64-
$this->mailService->getMessage()->addTo(
65-
$this->config['contact']['message_receivers']['to'],
66-
'Dotkernel Team'
72+
73+
$this->mailService->getMessage()->setTo(
74+
$contactRecipients['to'] ?: $messageConfig['to'],
75+
$contactRecipients['name'] ?: null
6776
);
68-
$this->mailService->getMessage()->addCC(
69-
$this->config['contact']['message_receivers']['cc'],
70-
'Dotkernel Team'
77+
78+
$this->mailService->getMessage()->setCc(
79+
$contactRecipients['cc'] ?: $messageConfig['cc'],
80+
$contactRecipients['name'] ?: null
7181
);
82+
83+
$this->mailService->getMessage()->setBcc($contactRecipients['bcc'] ?: $messageConfig['bcc']);
84+
7285
$this->mailService->getMessage()->setReplyTo($message->getEmail(), $message->getName());
7386

7487
return $this->mailService->send()->isValid();

src/Contact/templates/contact/contact-form.html.twig

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,6 @@
3737
</div>
3838
</div>
3939

40-
<div class="row">
41-
<div class="col-md-12">
42-
{{ formElement(form.get('subject')) }}
43-
</div>
44-
</div>
45-
4640
<div class="row">
4741
<div class="col-md-12">
4842
{{ formElement(form.get('message')) }}

test/Unit/Contact/Form/ContactFormTest.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ public function testFormHasElements(): void
2222
$this->formHasElements(new ContactForm(), [
2323
'email',
2424
'name',
25-
'subject',
2625
'message',
2726
'contactCsrf',
2827
]);
@@ -33,7 +32,6 @@ public function testFormHasInputFilter(): void
3332
$this->formHasInputFilter((new ContactForm())->getInputFilter(), [
3433
'email',
3534
'name',
36-
'subject',
3735
'message',
3836
'contactCsrf',
3937
]);

test/Unit/Contact/Service/MessageServiceTest.php

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public function testProcessMessage(): void
4444
$result = $this->createMock(ResultInterface::class);
4545
$mail = $this->createMock(Email::class);
4646

47-
$mail->expects($this->once())->method('addFrom')->willReturn($mail);
47+
$mail->expects($this->once())->method('setFrom')->willReturn($mail);
4848
$result->expects($this->once())->method('isValid')->willReturn(true);
4949
$mailService->expects($this->once())->method('send')->willReturn($result);
5050
$mailService->expects($this->any())->method('getMessage')->willReturn($mail);
@@ -54,9 +54,16 @@ public function testProcessMessage(): void
5454
$template,
5555
[
5656
'contact' => [
57-
'message_receivers' => [
58-
'to' => '[email protected]',
59-
'cc' => '[email protected]',
57+
'subject' => 'test',
58+
'message_sender' => [
59+
'from_name' => 'Contact',
60+
'from_email' => '[email protected]',
61+
],
62+
'message_recipients' => [
63+
'name' => 'Dotkernel Team',
64+
'to' => '[email protected]',
65+
'cc' => '[email protected]',
66+
'bcc' => '[email protected]',
6067
],
6168
],
6269
'dot_mail' => [

0 commit comments

Comments
 (0)