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.
This commit is contained in:
2026-06-16 18:16:09 -04:00
parent 5816a53b11
commit 02bbca628f

View File

@ -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 '<a href="' . fxAdminEsc(fxAdminTradUrl($clef, $strInfoPrg, $mem_global)) . '"'
. ' target="_blank" rel="noopener"'
. ' class="btn-admin-trad btn-aide-bib btn-aide-trad ms1-trad-link"'
. ' class="' . fxAdminTradLinkClass() . '"'
. ' title="Modifier textes FR/EN"'
. ' aria-label="Modifier textes">'
. '<i class="fa fa-pencil" aria-hidden="true"></i>'
@ -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 = \'<i class="fa fa-pencil" aria-hidden="true"></i>\';