visionneuse_path = $visionneuse_path; //on instancie la bonne classe $this->classParam = new $driver($tab_params,$this->visionneuse_path); //on instancie également les messages localisés... $this->message = new message($this->visionneuse_path."/includes/message/$lang.xml"); switch ($lvl){ case "visionneuse" : $this->display(); $this->classParam->cleanCache(); break; case "afficheur" : $this->classParam->getDocById($tab_params["explnum"]); $this->renderDoc(); break; case "ajax" : $this->exec($tab_params['method']); break; } } function display(){ global $visionneuse; global $charset,$opac_url_base; if($this->classParam->getNbDocs()>0){ //on commence par remettre les champs cachés du formulaire... $hiddenFields = ""; foreach($this->classParam->params as $key => $value){ //sauf les paramètres qui n'ont pas été postés, mais créés à la main ou modifiés plus tard en javascript... if ($key != "position" && $key != "start"){ $hiddenFields .=" "; } } $visionneuse = str_replace("!!hiddenFields!!",$hiddenFields,$visionneuse); //et c'est parti //on s'occupe en premier du conteneur du document $visionneuse = str_replace("!!height!!",$this->classParam->getParam("maxY"),$visionneuse); //on insère le contenu propre au document; $docNum = new docNum($this->classParam->getCurrentDoc(),$this->classParam); $this->do_stat_opac($docNum->id); $url_download_explnum =$this->classParam->getDocumentUrl($docNum->id); $visionneuse = str_replace("!!expnum_download!!",$url_download_explnum,$visionneuse); $visionneuse = str_replace("!!expnum_download_lib!!",htmlentities($this->message->table['download_doc'],ENT_QUOTES,$charset),$visionneuse); $docToDisplay = $docNum->fetchDisplay(); foreach($docToDisplay as $key => $value){ //le cas ou le document n'est pas autorisé! if($key == "doc" && $value == false){ $visionneuse = str_replace("!!$key!!","


".htmlentities($this->message->table['forbidden_resources'],ENT_QUOTES,$charset)."



".$this->classParam->forbidden_callback(),$visionneuse); }else if($key != "post"){ $visionneuse = str_replace("!!$key!!",$value,$visionneuse); } } //maintenant le kit de survie du navigateur $visionneuse = str_replace("!!position!!",$this->classParam->current,$visionneuse); if($this->classParam->getNbDocs()==1){ $visionneuse = str_replace("!!previous_style!!","none;",$visionneuse); $visionneuse = str_replace("!!next_style!!","none;",$visionneuse); }elseif($this->classParam->current ==0){ $visionneuse = str_replace("!!previous_style!!","none;",$visionneuse); $visionneuse = str_replace("!!next_style!!","block-inline;",$visionneuse); }elseif($this->classParam->current == sizeof($this->classParam->listeDocs)-1){ $visionneuse = str_replace("!!previous_style!!","block-inline;",$visionneuse); $visionneuse = str_replace("!!next_style!!","none;",$visionneuse); }else{ $visionneuse = str_replace("!!previous_style!!","block-inline;",$visionneuse); $visionneuse = str_replace("!!next_style!!","block-inline;",$visionneuse); } $visionneuse = str_replace("!!max_pos!!",$this->classParam->getNbDocs()-1,$visionneuse); $visionneuse = str_replace("!!current_position!!",($this->classParam->current+1)." / ".$this->classParam->getNbDocs(),$visionneuse); //on localise les messages $visionneuse = str_replace("!!close!!",$this->message->table['close'],$visionneuse); $visionneuse = str_replace("!!fullscreen!!",$this->message->table['fullscreen'],$visionneuse); $visionneuse = str_replace("!!normal!!",$this->message->table['normal'],$visionneuse); //tout est bon, on affiche le tout... print $visionneuse; }else{ print htmlentities($this->message->table['nothing_to_display'],ENT_QUOTES,$charset); } } function renderDoc(){ $docNum = new docNum($this->classParam->getCurrentDoc(),$this->classParam); $docNum->render(); } function exec($method){ $docNum = new docNum($this->classParam->getCurrentDoc(),$this->classParam); $docNum->exec($method); } function do_stat_opac($id_explnum){ global $pmb_logs_activate; if($pmb_logs_activate){ global $infos_explnum,$log; $rqt_explnum = "SELECT explnum_id, explnum_notice, explnum_bulletin, IF(location_libelle IS null, '', location_libelle) AS location_libelle, explnum_nom, explnum_mimetype, explnum_url, explnum_extfichier, IF(explnum_nomfichier IS null, '', explnum_nomfichier) AS nomfichier, explnum_path, IF(rep.repertoire_nom IS null, '', rep.repertoire_nom) AS nomrepertoire from explnum ex_n LEFT JOIN explnum_location ex_l ON ex_n.explnum_id= ex_l.num_explnum LEFT JOIN docs_location dl ON ex_l.num_location= dl.idlocation LEFT JOIN upload_repertoire rep ON ex_n.explnum_repertoire= rep.repertoire_id where explnum_id='".$id_explnum."'"; $res_explnum=mysql_query($rqt_explnum); while(($explnum = mysql_fetch_array($res_explnum,MYSQL_ASSOC))){ $infos_explnum[]=$explnum; } $rqt= " select empr_prof,empr_cp, empr_ville as ville, empr_year, empr_sexe, empr_login, empr_date_adhesion, empr_date_expiration, count(pret_idexpl) as nbprets, count(resa.id_resa) as nbresa, code.libelle as codestat, es.statut_libelle as statut, categ.libelle as categ, gr.libelle_groupe as groupe,dl.location_libelle as location from empr e left join empr_codestat code on code.idcode=e.empr_codestat left join empr_statut es on e.empr_statut=es.idstatut left join empr_categ categ on categ.id_categ_empr=e.empr_categ left join empr_groupe eg on eg.empr_id=e.id_empr left join groupe gr on eg.groupe_id=gr.id_groupe left join docs_location dl on e.empr_location=dl.idlocation left join resa on e.id_empr=resa_idempr left join pret on e.id_empr=pret_idempr where e.empr_login='".addslashes($_SESSION['user_code'])."' group by resa_idempr, pret_idempr"; $res=mysql_query($rqt); if($res){ $empr_carac = mysql_fetch_array($res); $log->add_log('empr',$empr_carac); } $log->add_log('num_session',session_id()); $log->add_log('explnum',$infos_explnum); //Accessibilité des documents numériques aux abonnés en opac $id_notice_droit=0; if($infos_explnum[0]["explnum_notice"]){ $id_notice_droit=$infos_explnum[0]["explnum_notice"]; }else{ $requete="SELECT bulletin_notice, num_notice FROM bulletins WHERE bulletin_id='".$infos_explnum[0]["explnum_bulletin"]."'"; $res=mysql_query($requete); if($res && mysql_num_rows($res)){ if($id_noti_bull=mysql_result($res,0,1)){ $id_notice_droit=$id_noti_bull; }else{ $id_notice_droit=mysql_result($res,0,0); } } } if($id_notice_droit){ $req_restriction_abo = "SELECT explnum_visible_opac, explnum_visible_opac_abon FROM notices,notice_statut WHERE notice_id='".$id_notice_droit."' AND statut=id_notice_statut "; $result=mysql_query($req_restriction_abo); $expl_num=mysql_fetch_array($result,MYSQL_ASSOC); $infos_restriction_abo = array(); foreach ($expl_num as $key=>$value) { $infos_restriction_abo[$key] = $value; } $log->add_log('restriction_abo',$infos_restriction_abo); } $log->save(); } } } ?>