/** * Retourne un tableau formaté contenant les élements des filtres * @param array $parsed_filters Structure parsée des filtres * @return array Tableau formaté contenant les élements des filtres */ private function parse_filters($parsed_filters) { foreach ($parsed_filters as $filter) { $filters[] = array('name' => $filter['NAME'], 'label' => get_msg_to_display($filter['LABEL']), 'field' => $filter['FIELD'][0]['value'], 'type' => $filter['TYPE'], 'marcname' => $filter['MARCNAME'][0]['value'], 'class' => $filter['CLASS'][0]['value'], 'method' => $filter['METHOD'][0]['value']); } return $filters; }
protected function get_human_field($field, $values) { global $msg, $charset; switch ($field["INPUT_TYPE"]) { case "list": $options = $field["INPUT_OPTIONS"]["OPTIONS"][0]; $opt = array(); for ($j = 0; $j < count($options["OPTION"]); $j++) { if (substr($options["OPTION"][$j]["value"], 0, 4) == "msg:") { $opt[$options["OPTION"][$j]["VALUE"]] = $msg[substr($options["OPTION"][$j]["value"], 4, strlen($options["OPTION"][$j]["value"]) - 4)]; } else { $opt[$options["OPTION"][$j]["VALUE"]] = $options["OPTION"][$j]["value"]; } } for ($j = 0; $j < count($values); $j++) { $field_aff[$j] = $opt[$values[$j]]; } break; case "query_list": $requete = $field["INPUT_OPTIONS"]["QUERY"][0]["value"]; if ($field["FILTERING"] == "yes") { $requete = str_replace("!!acces_j!!", "", $requete); $requete = str_replace("!!statut_j!!", "", $requete); $requete = str_replace("!!statut_r!!", "", $requete); } if ($field["INPUT_OPTIONS"]["QUERY"][0]["USE_GLOBAL"]) { $use_global = explode(",", $field["INPUT_OPTIONS"]["QUERY"][0]["USE_GLOBAL"]); for ($j = 0; $j < count($use_global); $j++) { $var_global = $use_global[$j]; global ${$var_global}; $requete = str_replace("!!" . $var_global . "!!", ${$var_global}, $requete); } } $resultat = pmb_mysql_query($requete); $opt = array(); while ($r_ = @pmb_mysql_fetch_row($resultat)) { $opt[$r_[0]] = $r_[1]; } for ($j = 0; $j < count($values); $j++) { $field_aff[$j] = $opt[$values[$j]]; } break; case "marc_list": $opt = new marc_list($field["INPUT_OPTIONS"]["NAME"][0]["value"]); for ($j = 0; $j < count($values); $j++) { $field_aff[$j] = $opt->table[$values[$j]]; } break; case "date": $field_aff[0] = format_date($values[0]); break; case "authoritie": for ($j = 0; $j < sizeof($values); $j++) { if (is_numeric($values[$j]) && ${$op} == "AUTHORITY") { switch ($field['INPUT_OPTIONS']['SELECTOR']) { case "categorie": $thes = thesaurus::getByEltId($values[$j]); $values[$j] = categories::getlibelle($values[$j], $lang) . " [" . $thes->libelle_thesaurus . "]"; if (isset($fieldvar["id_thesaurus"])) { unset($fieldvar["id_thesaurus"]); } break; case "auteur": $aut = new auteur($values[$j]); if ($aut->rejete) { $values[$j] = $aut->name . ', ' . $aut->rejete; } else { $values[$j] = $aut->name; } if ($aut->date) { $values[$j] .= " ({$aut->date})"; } break; case "editeur": $ed = new editeur($values[$j]); $values[$j] = $ed->name; if ($ed->ville) { if ($ed->pays) { $values[$j] .= " ({$ed->ville} - {$ed->pays})"; } else { $values[$j] .= " ({$ed->ville})"; } } break; case "collection": $coll = new collection($values[$j]); $values[$j] = $coll->name; break; case "subcollection": $coll = new subcollection($values[$j]); $values[$j] = $coll->name; break; case "serie": $serie = new serie($values[$j]); $values[$j] = $serie->name; break; case "indexint": $indexint = new indexint($values[$j]); if ($indexint->comment) { $values[$j] = $indexint->name . " - " . $indexint->comment; } else { $values[$j] = $indexint->name; } if ($thesaurus_classement_mode_pmb != 0) { $values[$j] = "[" . $indexint->name_pclass . "] " . $values[$j]; } break; case "titre_uniforme": $tu = new titre_uniforme($values[$j]); $values[$j] = $tu->name; break; case "notice": $requete = "select if(serie_name is not null,if(tnvol is not null,concat(serie_name,', ',tnvol,'. ',tit1),concat(serie_name,'. ',tit1)),tit1) AS tit from notices left join series on serie_id=tparent_id where notice_id='" . $field[$j] . "' "; $res = pmb_mysql_query($requete); if ($res && pmb_mysql_num_rows($res)) { $values[$j] = pmb_mysql_result($res, 0, 0); } break; } } } $field_aff = $values; break; default: $field_aff[0] = $values[0]; break; } return '<b>' . get_msg_to_display($field['TITLE']) . '</b> ' . implode(' ', $field_aff); }
/** * Renvoie le formulaire de la vedette composée * * @param $property onto_common_property * @param $restrictions onto_restriction * @param $datas * @param $instance_name * * @return string * @access public */ public function get_form($property, $order, $instance_name) { global $dbh, $base_path, $charset, $lang; global $vedette_tpl; //TODO Retirer le style brut $form_html = $vedette_tpl['css'] . $vedette_tpl['form_body']; if (!count($this->vedette_composee->get_elements())) { $form_html = str_replace("!!vedette_composee_apercu!!", "", $form_html); } else { $form_html = str_replace("!!vedette_composee_apercu!!", $this->vedette_composee->get_label(), $form_html); } $form_html = str_replace("!!vedette_composee_id!!", $this->vedette_composee->get_id(), $form_html); $form_html = str_replace("!!vedette_composee_type!!", $property->range[0], $form_html); //les champs disponibles $available_fields_html = ''; $available_fields_scripts = ""; $get_vedette_element_switchcases = ""; foreach ($this->vedette_composee->get_available_fields() as $key => $available_field) { $vedette_element_ui_class_name = vedette_element::search_vedette_element_ui_class_name($available_field["class_name"]); if ($available_field['params']) { $available_fields_scripts .= $vedette_element_ui_class_name::get_create_box_js($available_field['params']); } else { $available_fields_scripts .= $vedette_element_ui_class_name::get_create_box_js(); } $get_vedette_element_switchcases .= str_replace("!!vedette_type!!", $available_field["class_name"], $vedette_tpl["vedette_composee_get_vedette_element_switchcase"]); $tmp_html = $vedette_tpl['vedette_composee_available_field']; $tmp_html = str_replace("!!available_field_id!!", $key, $tmp_html); $tmp_html = str_replace("!!available_field_type!!", $available_field["class_name"], $tmp_html); $tmp_html = str_replace("!!vedette_composee_available_field_label!!", get_msg_to_display($available_field['name']), $tmp_html); $available_fields_html .= $tmp_html; } $form_html = str_replace("!!available_fields_scripts!!", $available_fields_scripts, $form_html); $form_html = str_replace("!!vedette_composee_available_fields!!", $available_fields_html, $form_html); $form_html = str_replace("!!get_vedette_element_switchcases!!", $get_vedette_element_switchcases, $form_html); //les zones de subdivision $subdivisions_html = ''; $tab_vedette_elements = array(); //On parcourt les subdivisions foreach ($this->vedette_composee->get_subdivisions() as $key => $subdivision) { $tmp_html = $vedette_tpl['vedette_composee_subdivision']; $tab_vedette_elements[$subdivision["order"]] = array(); if ($subdivision["min"]) { $tmp_html = str_replace("!!vedette_composee_subdivision_cardmin!!", $subdivision["min"], $tmp_html); } else { $tmp_html = str_replace("!!vedette_composee_subdivision_cardmin!!", "", $tmp_html); } if ($subdivision["max"]) { $tmp_html = str_replace("!!vedette_composee_subdivision_cardmax!!", $subdivision["max"], $tmp_html); } else { $tmp_html = str_replace("!!vedette_composee_subdivision_cardmax!!", "", $tmp_html); } $tmp_html = str_replace("!!vedette_composee_subdivision_order!!", $subdivision["order"], $tmp_html); $elements_html = ''; if ($elements = $this->vedette_composee->get_at_elements_subdivision($subdivision['code'])) { // tableau pour la gestion de l'ordre à l'intérieur d'une subdivision $elements_order = array(); // On parcourt les éléments de la subdivision foreach ($elements as $position => $element) { $current_element_html = $vedette_tpl['vedette_composee_element']; $elements_order[] = $position; $tab_vedette_elements[$subdivision["order"]][$position] = $element->get_isbd(); $element_ui_class_name = vedette_element::search_vedette_element_ui_class_name(get_class($element)); if ($element->params) { $current_element_html = str_replace("!!vedette_composee_element_form!!", $element_ui_class_name::get_form($element->params), $current_element_html); } else { $current_element_html = str_replace("!!vedette_composee_element_form!!", $element_ui_class_name::get_form(), $current_element_html); } $current_element_html = str_replace("!!vedette_composee_element_order!!", $position, $current_element_html); $current_element_html = str_replace("!!vedette_composee_element_type!!", get_class($element), $current_element_html); $current_element_html = str_replace("!!vedette_element_rawlabel!!", $element->get_isbd(), $current_element_html); $field_class_name = $this->vedette_composee->get_at_available_field_class_name(get_class($element)); $autority_type = get_msg_to_display($field_class_name["name"]); $current_element_html = str_replace("!!vedette_element_label!!", "[" . $autority_type . "] " . $element->get_isbd(), $current_element_html); $current_element_html = str_replace("!!vedette_element_id!!", $element->get_id(), $current_element_html); $elements_html .= $current_element_html; } $tmp_html = str_replace("!!vedette_composee_subdivision_elements!!", $elements_html, $tmp_html); $tmp_html = str_replace("!!elements_order!!", implode(",", $elements_order), $tmp_html); } else { $tmp_html = str_replace("!!vedette_composee_subdivision_elements!!", "", $tmp_html); $tmp_html = str_replace("!!elements_order!!", "", $tmp_html); } $tmp_html = str_replace("!!vedette_composee_subdivision_label!!", get_msg_to_display($subdivision['name']), $tmp_html); $tmp_html = str_replace("!!vedette_composee_subdivision_id!!", $subdivision['code'], $tmp_html); $subdivisions_html .= $tmp_html; } $form_html = str_replace("!!vedette_composee_subdivisions!!", $subdivisions_html, $form_html); $form_html = str_replace("!!caller!!", $instance_name, $form_html); $form_html = str_replace("!!vedette_composee_order!!", $order, $form_html); $form_html = str_replace("!!property_name!!", $property->pmb_name . "_composed", $form_html); $form_html = str_replace("!!tab_vedette_elements!!", encoding_normalize::json_encode($tab_vedette_elements), $form_html); $form_html = str_replace("!!vedette_separator!!", htmlentities($this->vedette_composee->get_separator(), ENT_QUOTES), $form_html); return $form_html; }
public function create_ajax_table_facettes() { global $opac_compare_notice_active; global $base_path; global $charset; global $mode; global $msg; $arrayFacettesNotClicked = array(); $facette_plus = array(); if ($opac_compare_notice_active * 1 == "1") { //les parametres nécéssaires global $pmb_compare_notice_template; global $pmb_compare_notice_nb; $facette_compare = new facette_search_compare($pmb_compare_notice_template, $pmb_compare_notice_nb); } foreach ($this->tab_facettes_opac as $keyFacette => $vTabFacette) { $affiche = true; foreach ($vTabFacette['value'] as $keyValue => $vLibelle) { $clicked = false; if (count($_SESSION['facette'])) { foreach ($_SESSION['facette'] as $vSessionFacette) { foreach ($vSessionFacette as $vDetail) { if ($vDetail[2] == $vTabFacette['code_champ'] && $vDetail[3] == $vTabFacette['code_ss_champ'] && in_array($vLibelle, $vDetail[1])) { $clicked = true; break; } } } } if (!$clicked) { $key = $vTabFacette['name'] . "_" . $this->tab_facettes_record[$keyFacette]['id']; if ($vTabFacette['size_to_display'] != '0') { if (count($arrayFacettesNotClicked[$key]) >= $vTabFacette['size_to_display']) { $tmpArray = array(); $tmpArray['see_more'] = true; $arrayFacettesNotClicked[$key][] = $tmpArray; $affiche = false; } } if ($affiche) { $tmpArray = array(); $tmpArray['libelle'] = $vLibelle; $tmpArray['code_champ'] = $vTabFacette['code_champ']; $tmpArray['code_ss_champ'] = $vTabFacette['code_ss_champ']; $tmpArray['nb_result'] = $vTabFacette['nb_result'][$keyValue]; $arrayFacettesNotClicked[$key][] = $tmpArray; } else { $facette_plus[$this->tab_facettes_record[$keyFacette]['id']]['facette'][] = $vLibelle . " " . "(" . $vTabFacette['nb_result'][$keyValue] . ")"; $facette_plus[$this->tab_facettes_record[$keyFacette]['id']]['value'][] = $vLibelle; $facette_plus[$this->tab_facettes_record[$keyFacette]['id']]['nb_result'][] = $vTabFacette['nb_result'][$keyValue]; $facette_plus[$this->tab_facettes_record[$keyFacette]['id']]['code_champ'] = $vTabFacette['code_champ']; $facette_plus[$this->tab_facettes_record[$keyFacette]['id']]['code_ss_champ'] = $vTabFacette['code_ss_champ']; $facette_plus[$this->tab_facettes_record[$keyFacette]['id']]['name'] = $vTabFacette['name']; if ($opac_compare_notice_active * 1 == "1") { $id = facette_search_compare::gen_compare_id($vTabFacette['name'], $vLibelle, $vTabFacette['code_champ'], $vTabFacette['code_ss_champ'], $vTabFacette['nb_result'][$keyValue]); if ($facette_compare->facette_compare[$id]) { $facette_compare->set_available_compare($id, true); } } } } } } if (count($_SESSION['facette'])) { $table_facette_clicked = "<table id='active_facette'>"; $tr_surbrillance = "onmouseover=\"this.className='surbrillance'\" onmouseout=\"this.className='" . $pair_impair . "'\" "; $n = 0; foreach ($_SESSION['facette'] as $k => $v) { $n % 2 ? $pair_impair = "odd" : ($pair_impair = "even"); $n++; if (count($_SESSION['facette']) == 1) { $link = "index.php?lvl=more_results&get_last_query=1&reinit_facette=1"; } else { $link = "index.php?lvl=more_results&mode=extended&facette_test=1¶m_delete_facette=" . $k; } $table_facette_clicked .= "\n\t\t\t\t\t\t<tr class='" . $pair_impair . "' onmouseover=\"this.className='surbrillance'\" onmouseout=\"this.className='" . $pair_impair . "'\">\n\t\t\t\t\t\t\t<td>"; $tmp = 0; foreach ($v as $vDetail) { foreach ($vDetail[1] as $vDetailLib) { if ($tmp) { $table_facette_clicked .= "<br>"; } $table_facette_clicked .= $vDetail[0] . " : " . (substr($vDetailLib, 0, 4) == "msg:" ? $msg[substr($vDetailLib, 4)] : $vDetailLib); $tmp++; } } $table_facette_clicked .= "\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<a href='" . $link . "'>\n\t\t\t\t\t\t\t\t\t<img src='./images/cross.png'/>\n\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>"; } $table_facette_clicked .= "</table>"; } if (count($arrayFacettesNotClicked)) { foreach ($arrayFacettesNotClicked as $tmpName => $facette) { $flagSeeMore = false; $tmpArray = explode("_", $tmpName); $idfacette = array_pop($tmpArray); $name = get_msg_to_display(implode($tmpArray)); $currentFacette = current($facette); $idGroupBy = facette_search_compare::gen_groupby_id($name, $currentFacette['code_champ'], $currentFacette['code_ss_champ']); $groupBy = facette_search_compare::gen_groupby($name, $currentFacette['code_champ'], $currentFacette['code_ss_champ'], $idGroupBy); $table_facette .= "<table id='facette_list_" . $idfacette . "'>"; $table_facette .= "<tr>"; if ($opac_compare_notice_active * 1 == "1" && count($facette_compare->facette_compare)) { $table_facette .= "\n\t\t\t\t\t\t<th style='width=\"90%\\' onclick='javascript:test(\"facette_list_" . $idfacette . "\");' colspan='2'>\n\t\t\t\t\t\t\t" . htmlentities($name, ENT_QUOTES, $charset) . "\n\t\t\t\t\t\t</th>"; $table_facette .= facette_search_compare::get_groupby_row($facette_compare, $groupBy, $idGroupBy); if ($facette_compare->facette_groupby[$idGroupBy]) { $facette_compare->set_available_groupby($idGroupBy, true); } } else { $table_facette .= "\r\n\t\t\t\t\t\t<th onclick='javascript:test(\"facette_list_" . $idfacette . "\");'>\r\n\t\t\t\t\t\t\t" . htmlentities($name, ENT_QUOTES, $charset) . "\r\n\t\t\t\t\t\t</th>"; } $table_facette .= "</tr>"; $j = 0; foreach ($facette as $detailFacette) { $link = "./index.php?lvl=more_results&mode=extended&facette_test=1"; $link .= "&name=" . rawurlencode($name) . "&value=" . rawurlencode($detailFacette['libelle']) . "&champ=" . $detailFacette['code_champ'] . "&ss_champ=" . $detailFacette['code_ss_champ'] . ""; $id = facette_search_compare::gen_compare_id($name, $detailFacette['libelle'], $detailFacette['code_champ'], $detailFacette['code_ss_champ'], $detailFacette['nb_result']); if ($charset != 'utf-8') { $cacValue = json_encode(array(utf8_encode($name), utf8_encode($detailFacette['libelle']), $detailFacette['code_champ'], $detailFacette['code_ss_champ'], $id, $detailFacette['nb_result'])); } else { $cacValue = json_encode(array($name, $detailFacette['libelle'], $detailFacette['code_champ'], $detailFacette['code_ss_champ'], $id, $detailFacette['nb_result'])); } if (!isset($detailFacette['see_more'])) { if ($opac_compare_notice_active * 1 == "1") { if (!sizeof($facette_compare->facette_compare[$id])) { $onclick = 'select_compare_facette(\'' . htmlentities($cacValue, ENT_QUOTES, $charset) . '\')'; $img = 'double_section_arrow_16.png'; } else { $facette_compare->set_available_compare($id, true); $onclick = ''; $img = 'vide.png'; } } $table_facette .= "\n\t\t\t\t\t\t\t<tr style='display: block;'>\n\t\t\t\t\t\t\t\t<td class='facette_col_coche'>\n\t\t\t\t\t\t\t\t\t<span class='facette_coche'>\n\t\t\t\t\t\t\t\t\t\t<input type='checkbox' name='check_facette[]' value='" . htmlentities($cacValue, ENT_QUOTES, $charset) . "'>\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td class='facette_col_info'>\n\t\t\t\t\t\t\t\t\t<a href='" . $link . "'>\n\t\t\t\t\t\t\t\t\t\t<span class='facette_libelle'>\n\t\t\t\t\t\t\t\t\t\t\t" . htmlentities(substr($detailFacette['libelle'], 0, 4) == "msg:" ? $msg[substr($detailFacette['libelle'], 4)] : $detailFacette['libelle'], ENT_QUOTES, $charset) . "\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t<span class='facette_number'>\n\t\t\t\t\t\t\t\t\t\t\t[" . htmlentities($detailFacette['nb_result'], ENT_QUOTES, $charset) . "]\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>"; $j++; } elseif (!$flagSeeMore) { $table_facette .= "\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td colspan='3'>\n\t\t\t\t\t\t\t\t\t<a href='javascript:facette_see_more(" . $idfacette . "," . json_encode(pmb_utf8_array_encode($facette_plus[$idfacette]), JSON_HEX_APOS | JSON_HEX_QUOT) . ");'>" . $msg["facette_plus_link"] . "</a>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>"; $flagSeeMore = true; } } $table_facette .= "</table>"; } $table_facette .= "<input type='hidden' value='' id='filtre_compare_facette' name='filtre_compare'>"; $table_facette .= "<input class='bouton' type='button' value='" . htmlentities($msg["facette_filtre"], ENT_QUOTES, $charset) . "' name='filtre' onClick='valid_facettes_multi()'>"; if ($opac_compare_notice_active * 1 == "1") { $table_facette .= "<input class='bouton' type='button' value='" . htmlentities($msg["facette_compare"], ENT_QUOTES, $charset) . "' name='compare' onClick='valid_facettes_compare()'>"; } } $table = "<form name='facettes_multi' class='facettes_multis' method='POST' action='./index.php?lvl=more_results&mode=extended&facette_test=1'>"; if (count($_SESSION['facette'])) { $table .= "<h3>" . htmlentities($msg['facette_active'], ENT_QUOTES, $charset) . "</h3>" . $table_facette_clicked . "<br/>"; } if ($opac_compare_notice_active * 1 == "1") { //Le tableau des critères de comparaisons if (count($facette_compare->facette_compare)) { $table_compare = $facette_compare->gen_table_compare(); $table .= "<h3 class='facette_compare_MainTitle'><table><tr><td style='width:90%;'>" . htmlentities($msg['facette_list_compare_crit'], ENT_QUOTES, $charset) . "</td>\n\t\t\t\t<td><a href='{$base_path}/index.php?lvl=more_results&get_last_query=1&reinit_compare=1' class='facette_compare_raz'><img alt='" . htmlentities($msg['facette_compare_reinit'], ENT_QUOTES, $charset) . "' title='" . htmlentities($msg['facette_compare_reinit'], ENT_QUOTES, $charset) . "' width='18px' height='18px' src='{$base_path}/images/cross.png'/></a></td></tr></table>\n\t\t\t\t</h3><table id='facette_compare'>" . $table_compare . "</table><br/>"; //Le tableau des critères de comparaisons if (count($facette_compare->facette_groupby)) { $table_groupby = $facette_compare->gen_table_groupby(); } $table .= "<h3 class='facette_compare_SubTitle'><img id='facette_compare_not_clickable' src='" . get_url_icon('group_by.png') . "'/> " . htmlentities($msg['facette_list_groupby_crit'], ENT_QUOTES, $charset) . "</h3><table id='facette_groupby'>" . $table_groupby . "</table><br/>"; } //le bouton de retour if ($_SESSION['filtre_compare'] == 'compare') { $table .= "<input type='button' class='bouton backToResults' value='" . htmlentities($msg['facette_compare_search_result'], ENT_QUOTES, $charset) . "' onclick='document.location.href=\"{$base_path}/index.php?lvl=more_results&get_last_query=1\"'/><br /><br />"; } elseif ($_SESSION['filtre_compare'] != 'compare' && count($facette_compare->facette_compare)) { $table .= "<input type='button' class='bouton' value='" . htmlentities($msg['facette_compare_search_compare'], ENT_QUOTES, $charset) . "' onclick='valid_compare();'/><br /><br />"; } } if (count($arrayFacettesNotClicked)) { if ($opac_compare_notice_active * 1 == "1") { $table .= "<div id='facettes_help'></div>"; $table .= "<h3 class='facette_compare_listTitle'>" . htmlentities($msg['facette_list_compare'], ENT_QUOTES, $charset) . " <img onclick='open_popup(document.getElementById(\"facettes_help\"),\"" . htmlentities($msg['facette_compare_helper_message'], ENT_QUOTES, $charset) . "\");' height='18px' width='18px' title='" . htmlentities($msg['facette_compare_helper'], ENT_QUOTES, $charset) . "' alt='" . htmlentities($msg['facette_compare_helper'], ENT_QUOTES, $charset) . "' src='" . get_url_icon('quest.png') . "'/></h3>" . $table_facette . "<br/>"; } else { $table .= "<h3 class='facette_compare_listTitle'>" . htmlentities($msg['facette_list'], ENT_QUOTES, $charset) . "</h3>" . $table_facette . "<br/>"; } } $table .= "</form>"; return $table; }