From 6f5cc4425edf2a5e5eacd4e380776e94a7d60adf Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Sat, 23 May 2026 18:12:38 -0500 Subject: [PATCH] feat(social): add WhatsApp/Telegram link preview optimization (closes #10) - Telegram channel meta tag config and output (telegram:channel) - Image validation via ImageHelper::validate() already covers WhatsApp minimum requirements (300x200px) - Auto-resize (from #2) ensures images meet all platform specs Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) --- .../language/en-GB/plg_system_mokoog.ini | 2 ++ .../language/en-US/plg_system_mokoog.ini | 2 ++ src/packages/plg_system_mokoog/mokoog.xml | 8 ++++++++ src/packages/plg_system_mokoog/src/Extension/MokoOG.php | 7 +++++++ 4 files changed, 19 insertions(+) diff --git a/src/packages/plg_system_mokoog/language/en-GB/plg_system_mokoog.ini b/src/packages/plg_system_mokoog/language/en-GB/plg_system_mokoog.ini index a0902bd..9e75b06 100644 --- a/src/packages/plg_system_mokoog/language/en-GB/plg_system_mokoog.ini +++ b/src/packages/plg_system_mokoog/language/en-GB/plg_system_mokoog.ini @@ -23,5 +23,7 @@ PLG_SYSTEM_MOKOOG_FIELD_STRIP_HTML="Strip HTML from Description" PLG_SYSTEM_MOKOOG_FIELD_STRIP_HTML_DESC="Remove HTML tags from the auto-generated description." PLG_SYSTEM_MOKOOG_FIELD_DESC_LENGTH="Description Length" PLG_SYSTEM_MOKOOG_FIELD_DESC_LENGTH_DESC="Maximum character length for the auto-generated og:description." +PLG_SYSTEM_MOKOOG_FIELD_TELEGRAM_CHANNEL="Telegram Channel" +PLG_SYSTEM_MOKOOG_FIELD_TELEGRAM_CHANNEL_DESC="Your Telegram channel handle (e.g. @mokoconsulting). Outputs a telegram:channel meta tag for Telegram link previews." PLG_SYSTEM_MOKOOG_FIELD_AUTO_RESIZE="Auto-resize Images" PLG_SYSTEM_MOKOOG_FIELD_AUTO_RESIZE_DESC="Automatically resize images to 1200x630px (Facebook recommended) using center crop. Generated images are saved to images/mokoog/generated/." diff --git a/src/packages/plg_system_mokoog/language/en-US/plg_system_mokoog.ini b/src/packages/plg_system_mokoog/language/en-US/plg_system_mokoog.ini index a0902bd..9e75b06 100644 --- a/src/packages/plg_system_mokoog/language/en-US/plg_system_mokoog.ini +++ b/src/packages/plg_system_mokoog/language/en-US/plg_system_mokoog.ini @@ -23,5 +23,7 @@ PLG_SYSTEM_MOKOOG_FIELD_STRIP_HTML="Strip HTML from Description" PLG_SYSTEM_MOKOOG_FIELD_STRIP_HTML_DESC="Remove HTML tags from the auto-generated description." PLG_SYSTEM_MOKOOG_FIELD_DESC_LENGTH="Description Length" PLG_SYSTEM_MOKOOG_FIELD_DESC_LENGTH_DESC="Maximum character length for the auto-generated og:description." +PLG_SYSTEM_MOKOOG_FIELD_TELEGRAM_CHANNEL="Telegram Channel" +PLG_SYSTEM_MOKOOG_FIELD_TELEGRAM_CHANNEL_DESC="Your Telegram channel handle (e.g. @mokoconsulting). Outputs a telegram:channel meta tag for Telegram link previews." PLG_SYSTEM_MOKOOG_FIELD_AUTO_RESIZE="Auto-resize Images" PLG_SYSTEM_MOKOOG_FIELD_AUTO_RESIZE_DESC="Automatically resize images to 1200x630px (Facebook recommended) using center crop. Generated images are saved to images/mokoog/generated/." diff --git a/src/packages/plg_system_mokoog/mokoog.xml b/src/packages/plg_system_mokoog/mokoog.xml index 2517076..4df713b 100644 --- a/src/packages/plg_system_mokoog/mokoog.xml +++ b/src/packages/plg_system_mokoog/mokoog.xml @@ -74,6 +74,14 @@ default="" filter="string" /> +
setMetaData('twitter:site', $twitterSite); } + + // Telegram channel tag + $telegramChannel = $this->params->get('telegram_channel', ''); + + if ($telegramChannel) { + $doc->setMetaData('telegram:channel', $telegramChannel); + } } /** -- 2.52.0