From ddfd9264c247b1c285d1a5e6e3eb946c249da6a5 Mon Sep 17 00:00:00 2001 From: "Beau Beauchamp, WebTigers" Date: Tue, 25 Aug 2026 15:03:15 -0400 Subject: [PATCH] chore(release): 1.2.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The shared transactional email layout — every email Tiger sends now renders through one branded template instead of six hand-concatenated strings. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01WXgMENcwa4Q8yCJaHpjHpf --- CHANGELOG.md | 33 +++++++++++++++++++++++++++++++++ library/Tiger/Version.php | 2 +- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 38bbd1a..b327c47 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,39 @@ All notable changes to **Tiger Core** (`webtigers/tiger-core`). Format follows ## [Unreleased] +## [1.2.0] — 2026-08-25 + +Every transactional email now renders through one shared, branded layout. + +### Added +- **A shared email layout** — `Tiger_Mail::template($name, $vars)` renders a content template into + `layout.phtml`. Tiger had **no** email templates before this: six bodies were hand-concatenated PHP + strings, and they had drifted badly — password reset and the sign-in code were styled inline, the + backup report barely, and **signup verification, site registration and the SMTP test were bare + `

` tags**. The signup verification is the first email a new customer ever receives. +- **Template path cascade** — core → app → registered modules → **active theme**. An operator + rebrands every transactional email by dropping `emails/*.phtml` into their theme, with no code + change; `Tiger_Mail::addTemplatePath()` lets a third-party module ship its own. +- Templates for all six: `reset`, `otp`, `verify`, `register-verify`, `backup`, `test`. + +### Changed +- The layout is built to **email** constraints, deliberately: presentational tables (flex/grid are + unusable in Outlook's Word renderer), **inline** styles (Gmail strips `