$check_facette[] = json_encode(array($name, $value, $champ, $ss_champ)); } } else { //le tableau est addslashé automatiquement foreach ($check_facette as $k => $v) { $check_facette[$k] = stripslashes($v); } } facettes::checked_facette_search($check_facette); $_SESSION["lq_facette"] = $_SESSION["facette"]; $_SESSION["lq_facette_search"]["lq_search"] = search::serialize_search(); } else { if ($from_see == 1 && $filtre_compare == "compare") { //from_see est un élément posté dans un formulaire d'une page d'autorité //il flage l'origine qui nécessite une reconstruction de l'environnement de la multi-critère pour faire les filtres multiples ou le comparateur facettes::make_facette_search_env(); } } $lib_recherche = $es->make_human_query(); $searcher = new searcher_extended(); if ($opac_visionneuse_allow) { $nbexplnum_to_photo = $searcher->get_nb_explnums(); } $count = $searcher->get_nb_results(); $l_typdoc = implode(",", $searcher->get_typdocs()); // La variable global $l_typdoc est utilisée pour la photothèque //Enregistrement des stats if ($pmb_logs_activate) { global $nb_results_tab; $nb_results_tab['extended'] = $count; }
public static function checked_facette_search($check_facette) { global $param_delete_facette, $charset; if (!is_array($_SESSION['facette'])) { $_SESSION['facette'] = array(); } //Suppression facette if ($param_delete_facette != "") { //On évite le rafraichissement de la page if (isset($_SESSION['facette'][$param_delete_facette])) { unset($_SESSION['facette'][$param_delete_facette]); $_SESSION['facette'] = array_values($_SESSION['facette']); } } else { $tmpArray = array(); foreach ($check_facette as $k => $v) { $check_facette[$k] = json_decode($v); //json_encode/decode ne fonctionne qu'avec des données utf-8 if ($charset != 'utf-8') { foreach ($check_facette[$k] as $key => $value) { $check_facette[$k][$key] = utf8_decode($check_facette[$k][$key]); } } foreach ($check_facette[$k] as $key => $value) { $check_facette[$k][$key] = stripslashes($check_facette[$k][$key]); } } foreach ($check_facette as $k => $v) { $ajout = true; if (count($tmpArray)) { foreach ($tmpArray as $k2 => $v2) { if ($v2[2] == $v[2] && $v2[3] == $v[3]) { $tmpArray[$k2][1][] = $v[1]; $ajout = false; break; } } } if ($ajout) { $tmpItem = array(); $tmpItem[0] = $v[0]; $tmpItem[1] = array($v[1]); $tmpItem[2] = $v[2]; $tmpItem[3] = $v[3]; $tmpArray[] = $tmpItem; } } //ajout facette : on vérifie qu'elle n'est pas déjà en session (rafraichissement page) if (count($_SESSION['facette'])) { foreach ($_SESSION['facette'] as $k => $v) { if ($tmpArray == $v) { $trouve = true; break; } } } if (!$trouve) { $_SESSION['facette'][] = $tmpArray; } } facettes::make_facette_search_env(); }