public function get_datas()
 {
     global $opac_url_base;
     global $opac_show_book_pics;
     global $opac_book_pics_url;
     global $dbh;
     //on commence par récupérer le type et le sous-type de page...
     $type_page_opac = cms_module_common_datasource_typepage_opac::get_type_page();
     $subtype_page_opac = cms_module_common_datasource_typepage_opac::get_subtype_page();
     if ($type_page_opac && $subtype_page_opac) {
         $group_metadatas = parent::get_group_metadatas();
         $datas = array();
         $query = $this->get_query();
         if ($query) {
             $post = $_POST;
             $get = $_GET;
             if ($post['lvl']) {
                 $niveau = $post['lvl'];
             } elseif ($get['lvl']) {
                 $niveau = $get['lvl'];
             } else {
                 $niveau = '';
             }
             $result = pmb_mysql_query($query, $dbh);
             while ($row = pmb_mysql_fetch_object($result)) {
                 $datas["id"] = $row->id;
                 $datas["title"] = $row->title;
                 $datas["resume"] = $row->resume;
                 if ($opac_show_book_pics == '1' && ($opac_book_pics_url || $row->logo_url)) {
                     $code_chiffre = pmb_preg_replace('/-|\\.| /', '', $row->code);
                     $url_image = $opac_book_pics_url;
                     $url_image = $opac_url_base . "getimage.php?url_image=" . urlencode($url_image) . "&noticecode=!!noticecode!!&vigurl=" . urlencode($row->logo_url);
                     if ($row->logo_url) {
                         $url_vign = $row->logo_url;
                     } else {
                         if ($code_chiffre) {
                             $url_vign = str_replace("!!noticecode!!", $code_chiffre, $url_image);
                         } else {
                             $url_vign = $opac_url_base . "images/vide.png";
                         }
                     }
                 }
                 $datas["logo_url"] = $url_vign;
                 $datas["link"] = $opac_url_base . "index.php?lvl=" . $niveau . "&id=" . $row->id;
                 $datas["type"] = $row->type;
             }
         }
         $datas["details"] = array('type_page' => cms_module_common_datasource_typepage_opac::get_label($type_page_opac), 'subtype_page' => cms_module_common_datasource_typepage_opac::get_label($subtype_page_opac));
         $datas = array_merge($datas, parent::get_datas());
         foreach ($group_metadatas as $i => $metadatas) {
             if (is_array($metadatas["metadatas"])) {
                 foreach ($metadatas["metadatas"] as $key => $value) {
                     try {
                         $group_metadatas[$i]["metadatas"][$key] = H2o::parseString($value)->render($datas);
                     } catch (Exception $e) {
                     }
                 }
             }
         }
         return $group_metadatas;
     }
     return false;
 }
 public function get_datas()
 {
     global $dbh;
     global $user_query;
     global $opac_autolevel2, $mode, $get_last_query;
     if (!$this->datas) {
         $selector = $this->get_selected_selector();
         if ($selector) {
             $query = "select managed_module_box from cms_managed_modules join cms_cadres on id_cadre = " . $this->cadre_parent . " and cadre_object = managed_module_name";
             $result = pmb_mysql_query($query);
             if (pmb_mysql_num_rows($result)) {
                 $box = pmb_mysql_result($result, 0, 0);
                 $infos = unserialize($box);
                 $server = $infos['module']['servers'][$selector->get_value()];
             }
             $type_page = cms_module_common_datasource_typepage_opac::get_type_page();
             $server['page']['type'] = cms_module_common_datasource_typepage_opac::get_label($type_page);
             $ss_type_page = cms_module_common_datasource_typepage_opac::get_subtype_page();
             $server['page']['subtype'] = cms_module_common_datasource_typepage_opac::get_label($ss_type_page);
             if ($_SESSION['id_empr_session']) {
                 //récupération des informations liés au lecteur
                 $query = "select empr_year, empr_sexe, empr_categ.libelle as categ, empr_codestat.libelle as codestat, location_libelle as location , empr_ville from empr join empr_categ on id_categ_empr = empr_categ join empr_codestat on idcode = empr_codestat join docs_location on idlocation = empr_location where id_empr = " . $_SESSION['id_empr_session'];
                 $result = pmb_mysql_query($query, $dbh);
                 if (pmb_mysql_num_rows($result)) {
                     while ($row = pmb_mysql_fetch_object($result)) {
                         $server['visitor']['year'] = $row->year;
                         $server['visitor']['categ'] = $row->categ;
                         $server['visitor']['codestat'] = $row->codestat;
                         $server['visitor']['location'] = $row->location ? $row->location : $row->empr_ville;
                         $server['visitor']['sexe'] = $row->empr_sexe;
                     }
                 }
             }
             //tracking de recherche
             switch ($type_page) {
                 //recherche
                 case "1":
                     break;
                     //résultats
                 //résultats
                 case "2":
                     switch ($ss_type_page) {
                         case "204":
                             //recherche externe
                             global $nb_result_partial;
                             $server['search']['user_query'] = $user_query;
                             $server['search']['type'] = $_SESSION['search_type'];
                             $server['search']['count'] = $nb_result_partial;
                             break;
                         case "202":
                         case "206":
                             //RMC - Prédéfinie
                             global $searcher_extended;
                             $server['search']['user_query'] = strip_tags($_SESSION['human_query' . $_SESSION['nb_queries']]);
                             $server['search']['type'] = $_SESSION['search_type' . $_SESSION['nb_queries']];
                             $server['search']['count'] = $searcher_extended->get_nb_results();
                             break;
                         case "201":
                         case "207":
                         default:
                             //simple
                             if (isset($user_query) && $user_query) {
                                 if (!$_SESSION['level1' . $_SESSION['nb_queries']]) {
                                     $server['search']['user_query'] = $user_query;
                                     $server['search']['type'] = $_SESSION['search_type'];
                                     $server['search']['count'] = 0;
                                 } else {
                                     $server['search']['user_query'] = $user_query;
                                     if (count($_SESSION['level1']) > 1) {
                                         $server['search']['type'] = $_SESSION['search_type'] . " / tous";
                                         $server['search']['count'] = $_SESSION['level1']['tous']['count'];
                                     } else {
                                         if (count($_SESSION['level1']) == 1) {
                                             foreach ($_SESSION['level1'] as $lvl => $level1) {
                                                 $server['search']['type'] = $_SESSION['search_type'] . " / " . $lvl;
                                                 $server['search']['count'] = $_SESSION['level1'][$lvl]['count'];
                                             }
                                         } else {
                                             $server['search']['type'] = $_SESSION['search_type'] . " / tous";
                                             $server['search']['count'] = $_SESSION['level1']['tous']['count'];
                                         }
                                     }
                                 }
                             }
                             break;
                     }
                     break;
                     //résultats notices
                 //résultats notices
                 case "3":
                     if ($opac_autolevel2 == 2 && !$get_last_query) {
                         switch ($ss_type_page) {
                             //simple
                             case "301":
                             case "302":
                             default:
                                 if (isset($user_query) && $user_query && !isset($_GET['page']) && !isset($_POST['page'])) {
                                     if (!$_SESSION['level1' . $_SESSION['nb_queries']]) {
                                         $server['search']['user_query'] = $user_query;
                                         $server['search']['type'] = $_SESSION['search_type'];
                                         $server['search']['count'] = 0;
                                     } else {
                                         $server['search']['user_query'] = $user_query;
                                         $server['search']['type'] = $_SESSION['search_type'] . " / " . $mode;
                                         $server['search']['count'] = $_SESSION['level1' . $_SESSION['nb_queries']][$mode]['count'];
                                     }
                                 }
                                 break;
                         }
                     }
                     break;
                     //résultats autorités
                 //résultats autorités
                 case "4":
                     global $count;
                     switch ($ss_type_page) {
                         case "408":
                             //recherche par tag
                             if (!isset($_GET['page']) && !isset($_POST['page'])) {
                                 $server['search']['type'] = $_SESSION['search_type'];
                                 $server['search']['user_query'] = $user_query;
                                 $server['search']['count'] = $count;
                             }
                     }
                     break;
             }
             $this->datas = $server;
         }
     }
     return $this->datas;
 }
 public static function get_label($type)
 {
     global $lang, $include_path;
     global $dbh;
     if (!count(self::$liste_libelle_type)) {
         if (file_exists($include_path . "/interpreter/statopac/{$lang}.xml")) {
             $liste_libelle = new XMLlist($include_path . "/interpreter/statopac/{$lang}.xml");
         } else {
             $liste_libelle = new XMLlist($include_path . "/interpreter/statopac/fr_FR.xml");
         }
         $liste_libelle->analyser();
         self::$liste_libelle_type = $liste_libelle->table;
         $query = "select id_page, page_name from cms_pages";
         $result = pmb_mysql_query($query, $dbh);
         if (pmb_mysql_num_rows($result)) {
             while ($row = pmb_mysql_fetch_object($result)) {
                 self::$liste_libelle_type["25" . str_pad($row->id_page, 2, "0", STR_PAD_LEFT)] = $row->page_name;
             }
         }
     }
     return self::$liste_libelle_type[$type];
 }