1
0
Fork 0

Switch to new dated email format

master
Lukas Bestle 3 years ago
parent bf2468b8c6
commit c384c7369a
Signed by: lukas
GPG Key ID: 692037D104550FC9

@ -23,7 +23,7 @@ USt-IdNr.: DE 300 983 590
<h2 id="contact">Kontakt</h2> <h2 id="contact">Kontakt</h2>
(qdated:) (dated:)
Diese E-Mail-Adresse ist eine Woche lang gültig und verfällt anschließend. E-Mails an diese Adresse erreichen mich persönlich und werden schnellstmöglich beantwortet. Mit der Antwort erhältst du meine dauerhaft gültige E-Mail-Adresse. Diese E-Mail-Adresse ist eine Woche lang gültig und verfällt anschließend. E-Mails an diese Adresse erreichen mich persönlich und werden schnellstmöglich beantwortet. Mit der Antwort erhältst du meine dauerhaft gültige E-Mail-Adresse.
Durch dieses Verfahren wird die E-Mail-Adresse vor automatisiertem Spam geschützt. Vielen Dank für dein Verständnis. Durch dieses Verfahren wird die E-Mail-Adresse vor automatisiertem Spam geschützt. Vielen Dank für dein Verständnis.

@ -21,7 +21,7 @@ USt-IdNr.: DE 300 983 590
<h2 id="contact">Contact</h2> <h2 id="contact">Contact</h2>
(qdated:) (dated:)
This email address is valid for one week, after which it expires. Emails to this address are received by me personally and are responded to as fast as possible. Together with my reply, you will get my permanently valid email address. This email address is valid for one week, after which it expires. Emails to this address are received by me personally and are responded to as fast as possible. Together with my reply, you will get my permanently valid email address.
This process protects the email address against automated spam. Thank you for your understanding. This process protects the email address against automated spam. Thank you for your understanding.

@ -20,7 +20,7 @@ return function($site, $pages, $page) {
if(r::is('POST')) { if(r::is('POST')) {
$form->emailAction([ $form->emailAction([
'to' => qdated(), 'to' => dated(),
'from' => 'codesignd form <no-reply@codesignd.de>', 'from' => 'codesignd form <no-reply@codesignd.de>',
'subject' => 'Message from the contact form (' . $site->title() . ')', 'subject' => 'Message from the contact form (' . $site->title() . ')',
'snippet' => 'email-templates/contact' 'snippet' => 'email-templates/contact'

@ -23,5 +23,3 @@ l::set('contact.heading.email', 'E-Mail');
l::set('contact.message.name-invalid', 'Bitte gebe deinen Namen ein.'); l::set('contact.message.name-invalid', 'Bitte gebe deinen Namen ein.');
l::set('contact.message.email-invalid', 'Bitte gebe eine gültige E-Mail-Adresse ein.'); l::set('contact.message.email-invalid', 'Bitte gebe eine gültige E-Mail-Adresse ein.');
l::set('contact.message.success', 'Danke für deine Nachricht, ich melde mich bald bei dir.'); l::set('contact.message.success', 'Danke für deine Nachricht, ich melde mich bald bei dir.');
l::set('qdated.error', 'Bei der Anzeige der E-Mail-Adresse ist ein Fehler aufgetreten. Bitte kontaktiere mich über <a href="https://twitter.com/lukasbestle">Twitter</a> und mache mich darauf aufmerksam. Danke!');

@ -23,5 +23,3 @@ l::set('contact.heading.email', 'Email');
l::set('contact.message.name-invalid', 'Please enter your name.'); l::set('contact.message.name-invalid', 'Please enter your name.');
l::set('contact.message.email-invalid', 'Please enter a valid email address.'); l::set('contact.message.email-invalid', 'Please enter a valid email address.');
l::set('contact.message.success', 'Thank you for your message, I will get back to you soon.'); l::set('contact.message.success', 'Thank you for your message, I will get back to you soon.');
l::set('qdated.error', 'An error occured while displaying the email address. Please contact me via <a href="https://twitter.com/lukasbestle">Twitter</a> and tell me about this. Thank you!');

@ -1,42 +1,59 @@
<?php <?php
/** /**
* Returns the current qdated address * Returns the current dated address
* If qdated is not available, returns null
* *
* @return string * @return string
*/ */
function qdated() { function dated(): string {
$path = $_SERVER['HOME'] . '/.config/qdated/cddmail2/current'; // date in seven days
if(!is_file($path)) return null; $date = modifiedJulianDate(time() + 7 * 24 * 60 * 60);
return 'dated-' . trim(f::read($path)) . '@' . url::host(); return 'dated-' . $date . '@' . url::host();
} }
/** /**
* Returns an HTML a mailto tag with the current qdated address * Returns an HTML a mailto tag with the current dated address
* If qdated is not available, returns an HTML error message * If dated is not available, returns an HTML error message
* *
* @param mixed $text Optional text for the link * @param mixed $text Optional text for the link
* Can also be true to use the email * Can also be true to use the email
* address but put a line break in it * address but put a line break in it
* @return string HTML code * @return string HTML code
*/ */
function qdatedHtml($text = false) { function datedHtml($text = false) {
$email = qdated(); $email = dated();
if(!$email) return '<p><strong>' . l::get('qdated.error') . '</strong></p>';
if($text === true) $text = str_replace('@', '<br>@', $email); if($text === true) $text = str_replace('@', '<br>@', $email);
return str::email($email, $text); return str::email($email, $text);
} }
/** /**
* qdated Kirbytag * Returns the Modified Julian Date,
* which is the Julian Date with the first two digits stripped
* and with an offset of one day to compensate for the Julian Date
* starting at noon instead of at midnight
*
* @param int $timestamp Timestamp to calculate from, defaults to the current date
* @return int
*/
function modifiedJulianDate(?int $timestamp = null): int {
$timestamp = $timestamp ?? time();
return gregoriantojd(
date('m', $timestamp),
date('d', $timestamp),
date('Y', $timestamp)
) - 2400001;
}
/**
* dated Kirbytag
* *
* Usage: (qdated: Optional link text) * Usage: (dated: Optional link text)
*/ */
kirby()->set('tag', 'qdated', [ kirby()->set('tag', 'dated', [
'html' => function($tag) { 'html' => function($tag) {
return qdatedHtml($tag->attr('qdated')); return datedHtml($tag->attr('dated'));
} }
]); ]);

@ -40,7 +40,7 @@
<aside class="contact__sidebar"> <aside class="contact__sidebar">
<div class="contact__detail"> <div class="contact__detail">
<h2 class="contact__heading"><?= l::get('contact.heading.email', 'Email') ?></h2> <h2 class="contact__heading"><?= l::get('contact.heading.email', 'Email') ?></h2>
<div class="contact__email"><?= qdatedHtml(true) ?> <a href="<?= url('legal') ?>#contact">?</a></div> <div class="contact__email"><?= datedHtml(true) ?> <a href="<?= url('legal') ?>#contact">?</a></div>
<small><a href="<?= url('pgp.asc') ?>" rel="pgpkey" type="application/pgp-keys">PGP: 2E2A DD32 FE50 61C1</a></small> <small><a href="<?= url('pgp.asc') ?>" rel="pgpkey" type="application/pgp-keys">PGP: 2E2A DD32 FE50 61C1</a></small>
</div> </div>

Loading…
Cancel
Save