fxEscape($modClef) . "' AND doc_prg IN ('" . $objDatabase->fxEscape($prg) . "', 'global') ORDER BY doc_tri, doc_page_clef, doc_langue DESC"; $rows = $objDatabase->fxGetResults($sql); $grouped = array(); if (!is_array($rows)) { return $grouped; } for ($i = 1; $i <= count($rows); $i++) { $row = $rows[$i]; $pageClef = $row['doc_page_clef'] ?? ''; if ($pageClef === '') { continue; } if (!isset($grouped[$pageClef])) { $grouped[$pageClef] = array( 'doc_page_clef' => $pageClef, 'doc_tri' => (int)($row['doc_tri'] ?? 0), 'fr' => null, 'en' => null, ); } $lang = $row['doc_langue'] ?? 'fr'; if ($lang === 'fr' || $lang === 'en') { $grouped[$pageClef][$lang] = $row; } } uasort($grouped, function ($a, $b) { if ($a['doc_tri'] === $b['doc_tri']) { return strcmp($a['doc_page_clef'], $b['doc_page_clef']); } return $a['doc_tri'] <=> $b['doc_tri']; }); return $grouped; } $anchor = trim($_GET['anchor'] ?? $_POST['anchor'] ?? ''); $modClef = trim($_GET['mod'] ?? $_POST['mod'] ?? ''); $prg = trim($_GET['prg'] ?? $_POST['prg'] ?? 'compte.php'); $page = trim($_GET['page'] ?? $_POST['page'] ?? ''); $bd = trim(strtolower($_GET['bd'] ?? $_POST['bd'] ?? 'client')); $blnSaved = false; if ($modClef === '' && $anchor !== '') { $modClef = fxDocResolveModClef($anchor, 0); } if ($anchor === '' && $modClef !== '') { $anchor = $modClef; } if (isset($_POST['btn_mod']) && !empty($_POST['pages']) && is_array($_POST['pages'])) { foreach ($_POST['pages'] as $pageClef => $langs) { if (!is_array($langs)) { continue; } foreach ($langs as $lang => $tabPosted) { if (!is_array($tabPosted) || empty($tabPosted['doc_langue'])) { continue; } $tabPosted['doc_page_clef'] = $pageClef; $tabPosted['doc_mod_clef'] = $modClef; $tabPosted['doc_prg'] = $prg; if (!empty($tabPosted['pk_doc_page'])) { fxSetDocPage('mod', $tabPosted, $tabPosted['pk_doc_page']); } else { fxSetDocPage('add', $tabPosted); } } } if (!empty($_POST['doc_mod']) && is_array($_POST['doc_mod']) && !empty($_POST['doc_mod']['pk_doc_mod'])) { fxSetDocMod('mod', $_POST['doc_mod'], $_POST['doc_mod']['pk_doc_mod']); } $blnSaved = true; } $sqlMod = "SELECT * FROM doc_mod WHERE doc_mod_clef = '" . $objDatabase->fxEscape($modClef) . "' AND doc_mod_prg IN ('" . $objDatabase->fxEscape($prg) . "', 'global') ORDER BY FIELD(doc_mod_prg, '" . $objDatabase->fxEscape($prg) . "', 'global') LIMIT 1"; $tabMod = $objDatabase->fxGetRow($sqlMod); $tabPages = docEdLoadModulePages($modClef, $prg); $tabLangMeta = array( 'fr' => 'Français', 'en' => 'English', ); ?>