From 9458867d4df57a0e234f6613e74db5bd791fc30a Mon Sep 17 00:00:00 2001 From: Alexander Bocken Date: Fri, 15 May 2026 15:32:30 +0200 Subject: [PATCH] One-shot bilingual intro paragraph with markdown + author avatar MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Admin can set a per-locale intro paragraph for the next issue on the preferences page; cleared automatically after a successful send. Stored in module_setting (longText) so multi-paragraph notes fit. - Intro is rendered via webtrees' CommonMark factory (same flavour as notes) with raw HTML escaped, supports {{first_name}}, {{last_name}}, {{username}}, {{email}} substitution per recipient. - Two-column intro layout: tree contact user's linked Individual becomes the editorial portrait on the left. Their avatar is added to the per-recipient embed set so the inline image always resolves rather than falling through to a tree-page login link. - Masthead now shows the tree URL under the title. - Avatar source dimensions bumped 96→192 px and JPEG quality 75→88 so portraits stay crisp at retina display ratios. --- resources/views/admin.phtml | 32 ++++++ resources/views/email.phtml | 53 ++++++++- src/Configuration.php | 52 +++++++++ src/Module.php | 11 ++ src/Services/NewsletterDispatchService.php | 121 +++++++++++++++++++-- 5 files changed, 258 insertions(+), 11 deletions(-) diff --git a/resources/views/admin.phtml b/resources/views/admin.phtml index 4ff126f..b92d64c 100644 --- a/resources/views/admin.phtml +++ b/resources/views/admin.phtml @@ -167,6 +167,38 @@ use Illuminate\Support\Collection; +
+ + + +
+ + +
+ **bold**', '[label](https://example.org)') ?> +
+ + {{first_name}}, + {{last_name}}, + {{username}}, + {{email}} +
+ $label) : ?> + +
+ + +
+ +
+
+