Added configuration for resend

This commit is contained in:
2025-07-15 16:52:47 +02:00
parent 7a4b8b7c32
commit 0c442bd797
3 changed files with 82 additions and 64 deletions
+64 -63
View File
@@ -1,71 +1,72 @@
<?php
return function($kirby, $pages, $page) {
$alert = null;
return function ($kirby, $pages, $page) {
if ($kirby->request()->is('POST') && get('submit')) {
$alert = null;
// check the honeypot
if (empty(get('website')) === false) {
go($page->url());
}
if ($kirby->request()->is('POST') && get('submit')) {
$data = [
'name' => get('name'),
'email' => get('email'),
'text' => get('text')
];
$rules = [
'name' => ['required', 'minLength' => 3],
'email' => ['required', 'email'],
'text' => ['required', 'minLength' => 3, 'maxLength' => 3000],
];
$messages = [
'name' => 'Bitte geben Sie einen Namen ein.',
'email' => 'Bitte geben Sie eine gültige E-Mail-Adresse ein.',
'text' => 'Bitte geben Sie einen Text ein, der zwischen 3 und 3000 Zeichen lang ist.'
];
// some of the data is invalid
if ($invalid = invalid($data, $rules, $messages)) {
$alert = $invalid;
// the data is fine, let's send the email
} else {
try {
$kirby->email([
'template' => 'email',
'from' => 'webmaster@schachfreunde-badsteben.de',
'replyTo' => $data['email'],
'to' => 'info@feigel.it',
'subject' => esc($data['name']) . ' hat eine Nachricht über das Kontaktformular gesendet',
'data' => [
'text' => esc($data['text']),
'sender' => esc($data['name'])
]
]);
} catch (Exception $error) {
if (option('debug')):
$alert['error'] = 'Beim Versenden ist ein Fehler aufgetreten:<br /> <strong>' . $error->getMessage() . '</strong>';
else:
$alert['error'] = 'Beim Versenden ist ein Fehler aufgetreten!';
endif;
}
// no exception occurred, let's send a success message
if (empty($alert) === true) {
$success = 'Ihre Nachricht wurde gesendet! Wir werden uns bald bei Ihnen melden.';
$data = [];
}
}
// check the honeypot
if (empty(get('website')) === false) {
go($page->url());
}
return [
'alert' => $alert,
'data' => $data ?? false,
'success' => $success ?? false
$data = [
'name' => get('name'),
'email' => get('email'),
'text' => get('text')
];
};
$rules = [
'name' => ['required', 'minLength' => 3],
'email' => ['required', 'email'],
'text' => ['required', 'minLength' => 3, 'maxLength' => 3000],
];
$messages = [
'name' => 'Bitte geben Sie einen Namen ein.',
'email' => 'Bitte geben Sie eine gültige E-Mail-Adresse ein.',
'text' => 'Bitte geben Sie einen Text ein, der zwischen 3 und 3000 Zeichen lang ist.'
];
// some of the data is invalid
if ($invalid = invalid($data, $rules, $messages)) {
$alert = $invalid;
// the data is fine, let's send the email
} else {
try {
$kirby->email([
'template' => 'email',
'from' => 'no-reply@fits-apps.net',
'replyTo' => $data['email'],
'to' => 'info@feigel.it',
'subject' => esc($data['name']) . ' hat eine Nachricht über das Kontaktformular gesendet',
'data' => [
'text' => esc($data['text']),
'sender' => esc($data['name'])
]
]);
} catch (Exception $error) {
if (option('debug')):
$alert['error'] = 'Beim Versenden ist ein Fehler aufgetreten:<br /> <strong>' . $error->getMessage() . '</strong>';
else:
$alert['error'] = 'Beim Versenden ist ein Fehler aufgetreten!';
endif;
}
// no exception occurred, let's send a success message
if (empty($alert) === true) {
$success = 'Ihre Nachricht wurde gesendet! Wir werden uns bald bei Ihnen melden.';
$data = [];
}
}
}
return [
'alert' => $alert,
'data' => $data ?? false,
'success' => $success ?? false
];
};