From 02bbca628f3005bb3b9368fef924a3da62ba39d7 Mon Sep 17 00:00:00 2001 From: stephan Date: Tue, 16 Jun 2026 18:16:09 -0400 Subject: [PATCH] Add fxAdminTradLinkClass function and update translation button handling This commit introduces the fxAdminTradLinkClass function to centralize CSS class management for translation links. The fxAdminTradButton function has been updated to utilize this new function, ensuring consistent styling. Additionally, a new JavaScript function is added to handle translation link clicks, opening a popup for editing translations. This enhances the user experience and maintains code clarity. --- php/inc_fonctions_sl.php | 39 ++++++++++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/php/inc_fonctions_sl.php b/php/inc_fonctions_sl.php index 01f0d52..fba1e4a 100644 --- a/php/inc_fonctions_sl.php +++ b/php/inc_fonctions_sl.php @@ -222,6 +222,11 @@ function fxAdminTradMarker($clef, $mem_global = 0) { return "\xE2\x80\x8B\xE2\x80\x8C" . $strPayload . "\xE2\x80\x8C\xE2\x80\x8B"; } +/** Classes CSS crayon traduction (sans btn-admin-trad — évite le handler bib sur data-trad-url). */ +function fxAdminTradLinkClass() { + return 'btn-aide-bib btn-aide-trad ms1-trad-link'; +} + /** Lien crayon traduction.php — superadm dev/préprod + switch « Textes » ON. */ function fxAdminTradButton($clef, $strInfoPrg = null, $mem_global = 0) { if (!fxAdminTextEditModeActive() || trim($clef) === '') { @@ -229,8 +234,7 @@ function fxAdminTradButton($clef, $strInfoPrg = null, $mem_global = 0) { } return '' . '' @@ -251,6 +255,33 @@ function fxAdminTradMarkerScriptHtml() { var re = /\u200B\u200C([A-Za-z0-9+/=]+)\u200C\u200B/g; var tradBase = ' . json_encode($vDomaine . '/php/traduction.php') . '; var pageDefault = ' . json_encode(!empty($vPage) ? $vPage : 'compte.php') . '; + var tradLinkClass = ' . json_encode(fxAdminTradLinkClass()) . '; + + function openTradPopup(url) { + var w = window.open( + url, + "ms1Trad" + Date.now(), + "width=960,height=640,scrollbars=yes,resizable=yes" + ); + if (w) { + var timer = setInterval(function () { + if (w.closed) { + clearInterval(timer); + window.location.reload(); + } + }, 400); + } + } + + document.addEventListener("click", function (e) { + var link = e.target.closest("a.ms1-trad-link"); + if (!link || !link.href) { + return; + } + e.preventDefault(); + e.stopPropagation(); + openTradPopup(link.href); + }, true); function skipParent(node) { var p = node.parentNode; @@ -296,9 +327,7 @@ function fxAdminTradMarkerScriptHtml() { var o = JSON.parse(atob(m[1])); var a = document.createElement("a"); a.href = buildUrl(o); - a.target = "_blank"; - a.rel = "noopener"; - a.className = "btn-admin-trad btn-aide-bib btn-aide-trad ms1-trad-link"; + a.className = tradLinkClass; a.title = "Modifier textes FR/EN"; a.setAttribute("aria-label", "Modifier textes"); a.innerHTML = \'\';