source: pmb4.2/trunk/fuentes/pmb/includes/explnum.inc.php @ 828

Last change on this file since 828 was 815, checked in by jrpelegrina, 4 years ago

Initial release of pmb 4.2

  • Property svn:executable set to *
File size: 39.9 KB
Line 
1<?php
2// +-------------------------------------------------+
3// © 2002-2004 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net)
4// +-------------------------------------------------+
5// $Id: explnum.inc.php,v 1.88.2.2 2015-12-04 10:05:15 jpermanne Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) die("no access");
8
9require_once("$class_path/curl.class.php");
10require_once("$class_path/indexation_docnum.class.php");
11require_once("$class_path/upload_folder.class.php");
12require_once("$class_path/explnum.class.php");
13require_once("$class_path/acces.class.php");
14
15if (!function_exists('file_put_contents')) {
16    function file_put_contents($filename, $data) {
17        $f = @fopen($filename, 'w');
18        if (!$f) {
19            return false;
20        } else {
21            $bytes = fwrite($f, $data);
22            fclose($f);
23            return $bytes;
24        }
25    }
26}
27
28
29// charge le tableau des extensions/mimetypes, on en a besoin en maj comme en affichage
30function create_tableau_mimetype() {
31       
32        global $lang;
33        global $include_path;
34        global $_mimetypes_bymimetype_, $_mimetypes_byext_ ;
35       
36        if (sizeof($_mimetypes_bymimetype_)) return;
37        $_mimetypes_bymimetype_ = array();
38        $_mimetypes_byext_ = array();
39
40        require_once ("$include_path/parser.inc.php") ;
41       
42        if (file_exists($include_path."/mime_types/".$lang."_subst.xml"))
43                $fic_mime_types = $include_path."/mime_types/".$lang."_subst.xml";
44        else
45                $fic_mime_types = $include_path."/mime_types/".$lang.".xml";   
46
47        $fonction = array ("MIMETYPE" => "__mimetype__");
48        _parser_($fic_mime_types, $fonction, "MIMETYPELIST" ) ;
49}
50
51
52function __mimetype__($param) {
53       
54        global $_mimetypes_bymimetype_, $_mimetypes_byext_ ;
55       
56        $mimetype_rec = array() ;
57        $mimetype_rec["plugin"] = $param["PLUGIN"] ;
58        $mimetype_rec["icon"] = $param["ICON"] ;
59        $mimetype_rec["label"] = $param["LABEL"] ;
60        $mimetype_rec["embeded"] = $param["EMBEDED"] ;
61       
62        $_mimetypes_bymimetype_[$param["NAME"]] = $mimetype_rec ;
63       
64        for ($i=0; $i<count($param["EXTENSION"]) ; $i++  ) {
65                $mimetypeext_rec = array() ;
66                $mimetypeext_rec = $mimetype_rec ;
67                $mimetypeext_rec["mimetype"] = $param["NAME"] ;
68                if ($param["EXTENSION"][$i]["LABEL"]) {
69                        $mimetypeext_rec["label"] =  $param["EXTENSION"][$i]["LABEL"] ;
70                }
71                $_mimetypes_byext_[$param["EXTENSION"][$i]["value"]] = $mimetypeext_rec ;
72        }
73}
74
75
76function extension_fichier($fichier) {
77       
78        $f = strrev($fichier);
79        $ext = substr($f, 0, strpos($f,"."));
80        return strtolower(strrev($ext));
81}
82
83
84function icone_mimetype ($mimetype, $ext) {
85       
86        global $_mimetypes_bymimetype_, $_mimetypes_byext_ ;
87        // trouve l'icone associee au mimetype
88        // sinon trouve l'icone associee a l'extension
89        if ($_mimetypes_bymimetype_[$mimetype]["icon"]) return $_mimetypes_bymimetype_[$mimetype]["icon"] ;
90        if ($_mimetypes_byext_[$ext]["icon"]) return $_mimetypes_byext_[$ext]["icon"] ;
91        return "unknown.gif" ;
92}
93
94
95function trouve_mimetype ($fichier, $ext='') {
96       
97        global $_mimetypes_byext_ ;
98       
99        if ($ext!='') {
100                // chercher le mimetype associe a l'extension : si trouvee nickel, sinon : ""
101                if ($_mimetypes_byext_[$ext]["mimetype"]) return $_mimetypes_byext_[$ext]["mimetype"] ;
102        }
103        if (extension_loaded('mime_magic')) {
104                $mime_type = mime_content_type($fichier) ;
105                if ($mime_type) return $mime_type ;
106        }
107        return '';
108}
109
110
111function reduire_image ($userfile_name) {
112
113        global $pmb_vignette_x ;
114        global $pmb_vignette_y ;
115        global $base_path;
116        global $pmb_curl_available;
117       
118        if (!$pmb_vignette_x) $pmb_vignette_x=100 ;
119        if (!$pmb_vignette_y) $pmb_vignette_y=100 ;
120        $src_image='';
121       
122        if(file_exists("$base_path/temp/$userfile_name")){
123                $bidon = "$base_path/temp/$userfile_name";
124                $source_file = $bidon."[0]";
125        } else {
126                $bidon = $userfile_name;
127                //Il s'agit d'une url, on copie le fichier en local
128                $nom_temp = session_id().microtime();
129                $nom_temp = str_replace(' ','_',$nom_temp);
130                $nom_temp = str_replace('.','_',$nom_temp);
131                $fichier_tmp = "$base_path/temp/".$nom_temp;
132                if ($pmb_curl_available) {
133                        $aCurl = new Curl();
134                        $aCurl->save_file_name=$fichier_tmp; 
135                        $aCurl->get($userfile_name);
136                } else {
137                        $handle = fopen($userfile_name, "rb");
138                        $filecontent = stream_get_contents($handle);
139                        fclose($handle);
140                        $fd = fopen($fichier_tmp,"w");
141                        fwrite($fd,$filecontent);
142                        fclose($fd);
143                }
144                $source_file = $fichier_tmp."[0]";
145        }
146        $error = true;
147        if(extension_loaded('imagick')) {
148                mysql_set_wait_timeout(3600);
149                $error=false;
150                try {           
151                        $img = new Imagick();
152                        $img->readImage($source_file);
153                        if(($img->getImageWidth() > $pmb_vignette_x) || ($img->getImageHeight() > $pmb_vignette_y)){// Si l'image est trop grande on la réduit
154                                $img->thumbnailimage($pmb_vignette_x,$pmb_vignette_y,true);
155                        }
156                        $img->setImageFormat( "png" );
157                        $img->setCompression(Imagick::COMPRESSION_LZW);
158                        $img->setCompressionQuality(90);
159                        $contenu_vignette = $img->getImageBlob();                       
160                } catch(Exception $ex) {
161                        $error=true;
162                }               
163                unlink($fichier_tmp);
164        }
165        if ($error) {
166                $size =@getimagesize($bidon);
167                /*   ".gif"=>"1",
168                 ".jpg"=>"2",
169                 ".jpeg"=>"2",
170                 ".png"=>"3",
171                 ".swf"=>"4",
172                 ".psd"=>"5",
173                 ".bmp"=>"6");
174                */     
175                switch ($size[2]) {
176                        case 1:
177                                $src_img = imagecreatefromgif($bidon);
178                                break;
179                        case 2:
180                                $src_img = imagecreatefromjpeg($bidon);
181                                break;
182                        case 3:
183                                $src_img = imagecreatefrompng($bidon);
184                                break;
185                        case 6:
186                                $src_img = imagecreatefromwbmp($bidon);
187                                break;
188                        default:
189                                break;
190                }
191                $erreur_vignette = 0 ;
192                if ($src_img) {
193                        $rs=$pmb_vignette_x/$pmb_vignette_y;
194                        $taillex=imagesx($src_img);
195                        $tailley=imagesy($src_img);
196                        if (!$taillex || !$tailley) return "" ;
197                        if (($taillex>$pmb_vignette_x)||($tailley>$pmb_vignette_y)) {
198                                $r=$taillex/$tailley;
199                                if (($r<1)&&($rs<1)) {
200                                        //Si x plus petit que y et taille finale portrait
201                                        //Si le format final est plus large en proportion
202                                        if ($rs>$r) {
203                                                $new_h=$pmb_vignette_y; 
204                                                $new_w=$new_h*$r; 
205                                        } else {
206                                                $new_w=$pmb_vignette_x;
207                                                $new_h=$new_w/$r;
208                                        }
209                                } else if (($r<1)&&($rs>=1)){ 
210                                        //Si x plus petit que y et taille finale paysage
211                                        $new_h=$pmb_vignette_y;
212                                        $new_w=$new_h*$r; 
213                                } else if (($r>1)&&($rs<1)) {
214                                        //Si x plus grand que y et taille finale portrait
215                                        $new_w=$pmb_vignette_x;
216                                        $new_h=$new_w/$r;
217                                } else {
218                                        //Si x plus grand que y et taille finale paysage
219                                        if ($rs<$r) {
220                                                $new_w=$pmb_vignette_x;
221                                                $new_h=$new_w/$r;
222                                        } else {
223                                                $new_h=$pmb_vignette_y;
224                                                $new_w=$new_h*$r;
225                                        }
226                                }
227                        } else {
228                                $new_h = $tailley ;
229                                $new_w = $taillex ;
230                        }
231                        $dst_img=imagecreatetruecolor($pmb_vignette_x,$pmb_vignette_y);
232                        ImageSaveAlpha($dst_img, true);
233                        ImageAlphaBlending($dst_img, false);
234                        imagefilledrectangle($dst_img,0,0,$pmb_vignette_x,$pmb_vignette_y,imagecolorallocatealpha($dst_img, 0, 0, 0, 127));
235                        imagecopyresized($dst_img,$src_img,round(($pmb_vignette_x-$new_w)/2),round(($pmb_vignette_y-$new_h)/2),0,0,$new_w,$new_h,ImageSX($src_img),ImageSY($src_img));
236                        imagepng($dst_img, "$base_path/temp/".SESSid);
237                        $fp = fopen("$base_path/temp/".SESSid , "r" ) ;
238                        $contenu_vignette = fread ($fp, filesize("$base_path/temp/".SESSid));
239                        if (!$fp || $contenu_vignette=="") $erreur_vignette++ ;
240                        fclose ($fp) ;
241                        unlink("$base_path/temp/".SESSid);
242                } else {
243                        $contenu_vignette = '' ;
244                }
245        }
246        return $contenu_vignette ;
247}
248
249
250function construire_vignette($vignette_name='', $userfile_name='', $url='') {
251        if ($vignette_name) {
252                $contenu_vignette = reduire_image($vignette_name);
253        } elseif ($userfile_name) {
254                $contenu_vignette = reduire_image($userfile_name);
255        } elseif ($url) {
256                $contenu_vignette = reduire_image($url);
257        } else {
258                $contenu_vignette = "";
259        }
260        return $contenu_vignette ;
261}
262
263
264function explnum_update($f_explnum_id, $f_notice, $f_bulletin, $f_nom, $f_url, $retour, $conservervignette=0, $f_statut_chk=0) {
265       
266        global $dbh, $msg,$scanned_image,$scanned_image_ext ;
267        global $current_module, $pmb_explnum_statut;
268        global $ck_index, $scanned_texte, $up_place, $path, $id_rep;
269       
270        create_tableau_mimetype() ;
271       
272        if ($f_explnum_id) {
273                $requete = "UPDATE explnum SET ";
274                $limiter = " WHERE explnum_id='$f_explnum_id' ";
275        } else {
276                $requete = "INSERT INTO explnum SET ";
277                $limiter = "";
278        }
279        print "<div class=\"row\"><h1>$msg[explnum_doc_associe]</h1>";
280       
281        $erreur=0;
282        $userfile_name = $_FILES['f_fichier']['name'] ;
283        $userfile_temp = $_FILES['f_fichier']['tmp_name'] ;
284        $userfile_moved = basename($userfile_temp);
285       
286        $vignette_name = $_FILES['f_vignette']['name'] ;
287        $vignette_temp = $_FILES['f_vignette']['tmp_name'] ;
288        $vignette_moved = basename($vignette_temp);
289       
290        $userfile_name = preg_replace("/ |'|\\|\"|\//m", "_", $userfile_name);
291        $vignette_name = preg_replace("/ |'|\\|\"|\//m", "_", $vignette_name);
292       
293        $userfile_ext = '';
294        if ($userfile_name) {
295                $userfile_ext = extension_fichier($userfile_name);
296        }
297       
298        if ($f_explnum_id) {
299                // modification
300                // si $userfile_name est vide on ne fera pas la maj du data
301                if (($scanned_image)||($userfile_name)) {
302                        //Avant tout, y-a-t-il une image extérieure ?
303                        if ($scanned_image) {
304                                //Si oui !
305                                $tmpid=str_replace(" ","_",microtime());
306                                $fp=@fopen("./temp/scanned_$tmpid.".$scanned_image_ext,"w+");
307                                if ($fp) {
308                                        fwrite($fp,base64_decode($scanned_image));
309                                        $nf=1;
310                                        $part_name="scanned_image_".$nf;
311                                        global $$part_name;
312                                        while ($$part_name) {
313                                                fwrite($fp,base64_decode($$part_name));
314                                                $nf++;
315                                                $part_name="scanned_image_".$nf;
316                                                global $$part_name;
317                                        }
318                                        fclose($fp);
319                                        $fic=1;
320                                        $maj_data = 1;
321                                        $userfile_name="scanned_$tmpid.".$scanned_image_ext;
322                                        $userfile_ext=$scanned_image_ext;
323                                        $userfile_moved = $userfile_name;
324                                        $f_url="";
325                                } else $erreur++;
326                        } else if ($userfile_name) {
327                                if (move_uploaded_file($userfile_temp,'./temp/'.$userfile_moved)) {                                     
328                                        $fic=1;
329                                        $f_url="";
330                                        $maj_data = 1;
331                                        move_uploaded_file($vignette_temp,'./temp/'.$vignette_moved) ;
332                                       
333                                } else {
334                                        $erreur++;
335                                }
336                        }
337                        $contenu_vignette = construire_vignette($vignette_moved, $userfile_moved) ;
338                        $maj_vignette = 1 ;
339                        $mimetype = trouve_mimetype($userfile_moved, $userfile_ext) ;
340                        if (!$mimetype) $mimetype="application/data";
341                        $maj_mimetype = 1 ;
342                } else {
343                        if ($vignette_name) {
344                                move_uploaded_file($vignette_temp,'./temp/'.$vignette_moved) ;
345                                $contenu_vignette = construire_vignette($vignette_moved, $userfile_moved) ;
346                                $maj_vignette = 1 ;
347                        }
348                        if ($f_url) {
349                                move_uploaded_file($vignette_temp,'./temp/'.$vignette_moved) ;
350                                $contenu_vignette = construire_vignette($vignette_moved, $userfile_moved) ;
351                                $maj_vignette = 1 ;
352                                $mimetype="URL";
353                                $maj_mimetype = 1 ;
354                                $contenu="";
355                                $maj_data=1 ;
356                        }
357                }
358        } else {
359                // creation
360                //Y-a-t-il une image exterieure ?
361                if ($scanned_image) {
362                        //Si oui !
363                        $tmpid=str_replace(" ","_",microtime());
364                        $fp=@fopen("./temp/scanned_$tmpid.".$scanned_image_ext,"w+");
365                        if ($fp) {
366                                fwrite($fp,base64_decode($scanned_image));
367                                $nf=1;
368                                $part_name="scanned_image_".$nf;
369                                global $$part_name;
370                                while ($$part_name) {
371                                        fwrite($fp,base64_decode($$part_name));
372                                        $nf++;
373                                        $part_name="scanned_image_".$nf;
374                                        global $$part_name;
375                                }
376                                fclose($fp);
377                                $fic=1;
378                                $maj_data = 1;
379                                $userfile_name="scanned_$tmpid.".$scanned_image_ext;
380                                $userfile_ext=$scanned_image_ext;
381                                $userfile_moved = $userfile_name;
382                                $f_url="";
383                        } else $erreur++;
384                } else if (move_uploaded_file($userfile_temp,'./temp/'.$userfile_moved)) {
385                        $fic=1;
386                        $f_url="";
387                        $maj_data = 1;
388                } elseif (!$f_url) $erreur++;
389       
390                move_uploaded_file($vignette_temp,'./temp/'.$vignette_moved) ;
391                $contenu_vignette = construire_vignette($vignette_moved, $userfile_moved);
392                $maj_vignette = 1 ;
393               
394                if (!$f_url && !$fic) $erreur++ ; 
395                if ($f_url) {
396                        $mimetype = "URL" ;
397                } else {
398                        $mimetype = trouve_mimetype($userfile_moved,$userfile_ext) ;
399                        if (!$mimetype) $mimetype="application/data";
400                }
401                $maj_mimetype = 1 ;
402        }
403       
404       
405       
406        $upfolder = new upload_folder($id_rep);
407        if ($fic) {
408                $is_upload = false;
409                if(!$f_explnum_id && ($path && $up_place)){
410                        if($upfolder->isHashing()){
411                                $rep = $upfolder->hachage($userfile_name);
412                                @mkdir($rep);
413                                $path = $upfolder->formate_path_to_nom($rep);
414                                $file_name = $rep.$userfile_name;                               
415                        } else {                                 
416                                $file_name = $upfolder->formate_nom_to_path($path).$userfile_name;
417                        }
418                        $path = $upfolder->formate_path_to_save($path);
419                        $file_name = $upfolder->encoder_chaine($file_name);
420                        rename('./temp/'.$userfile_moved,$file_name);
421                        $is_upload = true;
422                } else $file_name = './temp/'.$userfile_moved;
423                $fp = fopen($file_name , "r" ) ;
424                $contenu = fread ($fp, filesize($file_name));
425                if (!$fp || $contenu=="") $erreur++ ;
426                fclose ($fp) ;
427        }
428       
429        //Dans le cas d'une modification, on regarde si il y a eu un déplacement du stockage
430        if ($f_explnum_id){     
431                $explnum = new explnum($f_explnum_id);         
432                if($explnum->isEnBase() && ($up_place && $path)){
433                        $explnum->remove_from_base($path,$id_rep);
434                        $contenu="";
435                        $is_upload = false;
436                } elseif($explnum->isEnUpload() && (!$up_place)){
437                        $contenu = $explnum->remove_from_upload();
438                        $id_rep=0;
439                        $path="";
440                } elseif($explnum->isEnUpload() && ($up_place && $path)){
441                        $path = $explnum->change_rep_upload($upfolder, $upfolder->formate_nom_to_path($path));
442                        $path = $upfolder->formate_path_to_save($upfolder->formate_path_to_nom($path));
443                }
444        }
445               
446        if (!$f_nom) {
447                if ($userfile_name) $f_nom = $userfile_name ;
448                elseif ($f_url) $f_nom = $f_url ;
449                else $f_nom = "-x-x-x-x-" ;
450        }
451
452        if ($userfile_name && !$is_upload) unlink($file_name);
453        if ($vignette_name) unlink('./temp/'.$vignette_moved);
454               
455        if (!$erreur) {
456                $requete .= " explnum_notice='$f_notice'";
457                $requete .= ", explnum_bulletin='$f_bulletin'";
458                $requete .= ", explnum_nom='$f_nom'";
459                $requete .= ", explnum_url='$f_url'";
460                if ($maj_mimetype)
461                        $requete .= ", explnum_mimetype='".$mimetype. "' ";
462                if ($maj_data ) {
463                        if(!$is_upload ) $requete .= ", explnum_data='".addslashes($contenu)."'";
464                        $requete .= ", explnum_nomfichier='".addslashes($userfile_name)."'";
465                        $requete .= ", explnum_extfichier='".addslashes($userfile_ext)."'";
466                }
467                if ($maj_vignette && !$conservervignette) {
468                        $requete .= ", explnum_vignette='".addslashes($contenu_vignette)."'";
469                }
470                if ($pmb_explnum_statut=='1') {
471                        $requete.= ", explnum_statut='".$f_statut_chk."'";
472                }       
473                $requete.= ", explnum_repertoire='".$id_rep."'";
474                $requete.= ", explnum_path='".$path."'";
475               
476                $requete .= $limiter;
477                pmb_mysql_query($requete, $dbh) ;
478               
479               
480                //Indexation du document
481                global $pmb_indexation_docnum;
482                                                       
483                if($pmb_indexation_docnum){                                                                             
484                        if(!$f_explnum_id && $ck_index){                       
485                                $id_explnum = pmb_mysql_insert_id();
486                                $indexation = new indexation_docnum($id_explnum, $scanned_texte);
487                                $indexation->indexer();
488                        } elseif($f_explnum_id && $ck_index){
489                                $indexation = new indexation_docnum($f_explnum_id, $scanned_texte);
490                                $indexation->indexer();                         
491                        } elseif($f_explnum_id && !$ck_index){
492                                $indexation = new indexation_docnum($f_explnum_id);
493                                $indexation->desindexer();     
494                        }                       
495                }               
496               
497                // on reaffiche l'ISBD
498                print "<div class='row'><div class='msg-perio'>".$msg['maj_encours']."</div></div>";
499                $id_form = md5(microtime());
500                if (pmb_mysql_error()) {
501                        echo "MySQL error : ".pmb_mysql_error() ;
502                        print "
503                                <form class='form-$current_module' name=\"dummy\" method=\"post\" action=\"$retour\" >
504                                        <input type='submit' class='bouton' name=\"id_form\" value=\"Ok\">
505                                        </form>";
506                        print "</div>";
507                        exit ;
508                }
509                print "
510                <form class='form-$current_module' name=\"dummy\" method=\"post\" action=\"$retour\" style=\"display:none\">
511                        <input type=\"hidden\" name=\"id_form\" value=\"$id_form\">
512                        </form>";
513                print "<script type=\"text/javascript\">document.dummy.submit();</script>";
514
515        } else {
516                eval("\$bid=\"".$msg['explnum_erreurupload']."\";");
517                print "<div class='row'><div class='msg-perio'>".$bid."</div></div>";
518                print "
519                        <form class='form-$current_module' name=\"dummy\" method=\"post\" action=\"$retour\" >
520                                <input type='submit' class='bouton' name=\"id_form\" value=\"Ok\">
521                        </form>";
522        }
523               
524        print "</div>";
525}
526
527
528function explnum_add_from_url($f_notice_id, $f_bulletin_id, $f_nom, $f_url, $overwrite=true, $source_id=0, $filename='', $f_path='', $f_statut) {
529       
530        global $dbh, $base_path;
531       
532        if($f_bulletin_id){
533                $f_notice_id = 0;
534        }else if (!$f_bulletin_id && $f_notice_id){
535                $f_bulletin_id = 0;
536        }
537        if (!$overwrite) {
538                $sql_find = "SELECT count(*) FROM explnum WHERE explnum_notice = ".$f_notice_id." AND explnum_nom = '".addslashes($f_nom)."'";
539                $res = pmb_mysql_query($sql_find, $dbh);
540                $count = pmb_mysql_result($res, 0, 0);
541                if ($count)
542                        return;         
543        }
544       
545        $sql_delete = "DELETE FROM explnum WHERE explnum_notice = ".$f_notice_id." AND explnum_nom = '".addslashes($f_nom)."' ";
546        pmb_mysql_query($sql_delete, $dbh);
547       
548        $original_filename = basename($f_url);
549        $extension = substr($original_filename,strripos($original_filename,'.')*1+1);
550        $tmp_filename = explnum::static_rename($extension);
551        if ($filename) {
552                $new_filename=$filename;
553        } else {
554                $new_filename=$tmp_filename;
555        }
556        //copie en répertoire temporaire
557        $r=false;
558        if (file_exists($f_url) && filesize($f_url)) {  //document en repertoire
559                $r = copy($f_url, $base_path.'/temp/'.$tmp_filename);
560        } else {        //url
561                $aCurl = new Curl();
562                $content = $aCurl->get($f_url);
563                $content = $content->body;
564                $r = file_put_contents("$base_path/temp/".$tmp_filename, $content);
565        }
566
567        if ($r) {
568               
569                //construction vignette
570                $vignette = construire_vignette('', $tmp_filename);
571                create_tableau_mimetype();
572                $mimetype = trouve_mimetype("$base_path/temp/".$tmp_filename, $extension);     
573               
574                //si la source du connecteur est précisée, on regarde si on a pas un répertoire associé
575                $rep_upload=0;
576                if ($source_id){
577                        $check_rep = "select rep_upload from connectors_sources where source_id = ".$source_id;
578                        $res = pmb_mysql_query($check_rep);
579                        if(pmb_mysql_num_rows($res)){
580                                $rep_upload = pmb_mysql_result($res,0,0);
581                        }
582                }
583                if($rep_upload != 0){
584                        $upload_folder = new upload_folder($rep_upload);
585                        $rep_path = $upload_folder->get_path($new_filename);
586                        if ($f_path && file_exists($rep_path.$f_path)) {
587                                $rep_path=$rep_path.$f_path.'/';
588                        }
589
590                        if(file_exists($upload_folder->encoder_chaine($rep_path.$new_filename))){
591                                $suffix=1;
592                                $ext = extension_fichier($new_filename);
593                                $file = str_replace(".".$ext,"",basename($new_filename));
594                                while (file_exists($upload_folder->encoder_chaine($rep_path.$file."_".$suffix.".".$ext))){
595                                        $suffix++;
596                                }
597                                $new_filename = $file."_".$suffix.".".$ext;
598                        }
599                        rename("$base_path/temp/".$tmp_filename,$upload_folder->encoder_chaine($rep_path.$new_filename));
600                        $path =$upload_folder->formate_path_to_save($upload_folder->formate_path_to_nom($rep_path));
601                        $insert_sql = "INSERT INTO explnum (explnum_notice, explnum_bulletin, explnum_nom, explnum_nomfichier, explnum_mimetype, explnum_extfichier, explnum_vignette, explnum_repertoire, explnum_path, explnum_docnum_statut) VALUES (";
602                        $insert_sql .= $f_notice_id.",";
603                        $insert_sql .= $f_bulletin_id.",";
604                        $insert_sql .= "'".addslashes($f_nom)."',";
605                        $insert_sql .= "'".addslashes($new_filename)."',";
606                        $insert_sql .= "'".addslashes($mimetype)."',";
607                        $insert_sql .= "'".addslashes($extension)."',";
608                        $insert_sql .= "'".addslashes($vignette)."',";
609                        $insert_sql .= "'".addslashes($rep_upload)."',";
610                        $insert_sql .= "'".addslashes($path)."',";
611                        $insert_sql .= $f_statut;
612                        $insert_sql .= ")";             
613                } else {                       
614                        $insert_sql = "INSERT INTO explnum (explnum_notice, explnum_bulletin, explnum_nom, explnum_nomfichier, explnum_mimetype, explnum_extfichier, explnum_data, explnum_vignette, explnum_docnum_statut) VALUES (";
615                        $insert_sql .= $f_notice_id.",";
616                        $insert_sql .= $f_bulletin_id.",";
617                        $insert_sql .= "'".addslashes($f_nom)."',";
618                        $insert_sql .= "'".addslashes($new_filename)."',";
619                        $insert_sql .= "'".addslashes($mimetype)."',";
620                        $insert_sql .= "'".addslashes($extension)."',";
621                        $insert_sql .= "'".addslashes($content)."',";
622                        $insert_sql .= "'".addslashes($vignette)."',";
623                        $insert_sql .= $f_statut;
624                        $insert_sql .= ")";
625                }
626                if(pmb_mysql_query($insert_sql, $dbh)){
627                        $docnum_id = pmb_mysql_insert_id($dbh);
628                        if($docnum_id){
629                                $index = new indexation_docnum($docnum_id);
630                                $index->indexer();
631                        }
632                }
633               
634/*
635                $aCurl = new Curl();
636                $content = $aCurl->get($f_url);
637                $content = $content->body;
638               
639                $origine=str_replace(" ","",microtime());
640                $origine=str_replace("0.","",$origine);
641                $original_filename = basename($f_url);
642                if( $filename != "") $afilename = $filename;
643                else $afilename = $origine.$original_filename;
644                if (!$original_filename)
645                        $original_filename = $afilename;
646                       
647                file_put_contents("$base_path/temp/".$afilename, $content);
648*/
649/*             
650                $vignette = construire_vignette('', $afilename);
651                create_tableau_mimetype();
652                $afilename_ext=extension_fichier($afilename);
653                $mimetype = trouve_mimetype("$base_path/temp/".$afilename, $afilename_ext);
654                $extension = strrchr($afilename, '.');
655               
656                //si la source du connecteur est précisée, on regarde si on a pas un répertoire associé
657                if ($source_id){
658                        $check_rep = "select rep_upload from connectors_sources where source_id = ".$source_id;
659                        $res = pmb_mysql_query($check_rep);
660                        if(pmb_mysql_num_rows($res)){
661                                $rep_upload = pmb_mysql_result($res,0,0);
662                        }
663                }
664*/
665                /*
666                        if($rep_upload != 0){
667                        $upload_folder = new upload_folder($rep_upload);
668                        $rep_path = $upload_folder->get_path($afilename);
669                        if ($f_path && file_exists($rep_path.$f_path)) {
670                                $rep_path=$rep_path.$f_path.'/';
671                        }
672                       
673                        copy("$base_path/temp/".$afilename,$rep_path.$afilename);
674                        $path =$upload_folder->formate_path_to_save($upload_folder->formate_path_to_nom($rep_path));
675                        $insert_sql = "INSERT INTO explnum (explnum_notice, explnum_nom, explnum_nomfichier, explnum_mimetype, explnum_extfichier, explnum_vignette, explnum_repertoire, explnum_path) VALUES (";
676                        $insert_sql .= $f_notice_id.",";
677                        $insert_sql .= "'".addslashes($f_nom)."',";
678                        $insert_sql .= "'".addslashes($afilename)."',";
679                        $insert_sql .= "'".addslashes($mimetype)."',";
680                        $insert_sql .= "'".addslashes($extension)."',";
681                        $insert_sql .= "'".addslashes($vignette)."',";
682                        $insert_sql .= "'".addslashes($rep_upload)."',";
683                        $insert_sql .= "'".addslashes($path)."'";
684                        $insert_sql .= ")";             
685                }else{
686                        $insert_sql = "INSERT INTO explnum (explnum_notice, explnum_nom, explnum_nomfichier, explnum_mimetype, explnum_extfichier, explnum_data, explnum_vignette) VALUES (";
687                        $insert_sql .= $f_notice_id.",";
688                        $insert_sql .= "'".addslashes($f_nom)."',";
689                        $insert_sql .= "'".addslashes($afilename)."',";
690                        $insert_sql .= "'".addslashes($mimetype)."',";
691                        $insert_sql .= "'".addslashes($extension)."',";
692                        $insert_sql .= "'".addslashes($content)."',";
693                        $insert_sql .= "'".addslashes($vignette)."'";
694                        $insert_sql .= ")";
695                }
696                pmb_mysql_query($insert_sql, $dbh);
697               
698                unlink("$base_path/temp/".$afilename); 
699*/
700        }
701}
702
703
704function explnum_add_url($f_notice_id, $f_bulletin_id, $f_nom, $f_url, $overwrite=true, $f_statut=0) {
705       
706        global $dbh;
707        if($f_bulletin_id){
708                $f_notice_id = 0;
709        }else if (!$f_bulletin_id && $f_notice_id){
710                $f_bulletin_id = 0;
711        }
712        if (!$overwrite) {
713                $sql_find = "SELECT count(*) FROM explnum WHERE explnum_notice = ".$f_notice_id." AND explnum_nom = ".addslashes($f_nom);
714                $res = pmb_mysql_query($sql_find, $dbh);
715                $count = pmb_mysql_result($res, 0, 0);
716                if ($count)
717                        return;         
718        }
719        $sql_delete = "DELETE FROM explnum WHERE explnum_notice = ".$f_notice_id." AND explnum_nom = ".addslashes($f_nom);
720        pmb_mysql_query($sql_delete, $dbh);
721       
722        $original_filename = basename($f_url);
723        $extension = strrchr($original_filename, '.');
724        $insert_sql = "INSERT INTO explnum (explnum_notice, explnum_bulletin, explnum_nom, explnum_nomfichier, explnum_url, explnum_mimetype, explnum_extfichier, explnum_docnum_statut) VALUES (";
725        $insert_sql .= $f_notice_id.",";
726        $insert_sql .= $f_bulletin_id.",";
727        $insert_sql .= "'".addslashes($f_nom)."',";
728        $insert_sql .= "'".addslashes($original_filename)."',";
729        $insert_sql .= "'".addslashes($f_url)."',";
730        $insert_sql .= "'"."URL"."',";
731        $insert_sql .= "'".addslashes($extension)."',";
732        $insert_sql .= $f_statut;
733        $insert_sql .= ")";
734       
735        if(pmb_mysql_query($insert_sql, $dbh)){
736                $docnum_id = pmb_mysql_insert_id($dbh);
737                if($docnum_id){
738                        $index = new indexation_docnum($docnum_id);
739                        $index->indexer();
740                }
741        }
742}
743
744
745// fonction retournant les infos d'exemplaires numeriques pour une notice ou un bulletin donne
746function show_explnum_per_notice($no_notice, $no_bulletin, $link_expl='',$param_aff=array(),$return_count = false) {
747       
748        // params :
749        // $link_expl= lien associe a l'exemplaire avec !!explnum_id!! a mettre a jour
750        global $dbh;
751        global $charset;
752        global $use_dsi_diff_mode;
753        global $base_path,$msg;
754       
755        if (!$no_notice && !$no_bulletin) return "";
756
757        if(($use_dsi_diff_mode == 1) && !explnum_allow_opac($no_notice, $no_bulletin)){//Si je suis en dsi je regarde les droits opac sur les explnum
758                return "";
759        }
760
761        global $_mimetypes_bymimetype_, $_mimetypes_byext_ ;
762        create_tableau_mimetype() ;
763
764        // recuperation du nombre d'exemplaires
765        $requete = "SELECT explnum_id, explnum_notice, explnum_bulletin, explnum_nom, explnum_mimetype, explnum_url, explnum_vignette, explnum_nomfichier, explnum_extfichier, explnum_docnum_statut
766                        FROM explnum WHERE ";
767        if ($no_notice) $requete .= "explnum_notice='$no_notice' ";
768                else $requete .= "explnum_bulletin='$no_bulletin' ";
769        if($no_notice)
770                $requete .= "union SELECT explnum_id, explnum_notice, explnum_bulletin, explnum_nom, explnum_mimetype, explnum_url, explnum_vignette, explnum_nomfichier, explnum_extfichier, explnum_docnum_statut
771                        FROM explnum, bulletins
772                        WHERE bulletin_id = explnum_bulletin
773                        AND bulletins.num_notice='".$no_notice."'";
774        $requete .= " order by explnum_mimetype, explnum_id ";
775        $res = pmb_mysql_query($requete, $dbh) or die ($requete." ".pmb_mysql_error());
776        $nb_ex = pmb_mysql_num_rows($res);
777       
778        if ($return_count) {
779                return $nb_ex;
780        }
781        if($nb_ex) {
782                // on recupere les donnees des exemplaires
783                $i = 1 ;
784                while (($expl = pmb_mysql_fetch_object($res))) {
785                       
786                        // couleur de l'img en fonction du statut
787                        if ($expl->explnum_docnum_statut) {
788                                $rqt_st = "SELECT * FROM explnum_statut WHERE  id_explnum_statut='".$expl->explnum_docnum_statut."' ";
789                                $Query_statut = pmb_mysql_query($rqt_st, $dbh)or die ($rqt_st. " ".pmb_mysql_error()) ;
790                                $r_statut = pmb_mysql_fetch_object($Query_statut);
791                                $class_img = " class='docnum_".$r_statut->class_html."' ";
792                                if ($expl->explnum_docnum_statut>1) {
793                                        $txt = $r_statut->opac_libelle;
794                                }else $txt="";
795                               
796                                $statut_libelle_div="
797                                        <div id='zoom_statut_docnum".$expl->explnum_id."' style='border: 2px solid rgb(85, 85, 85); background-color: rgb(255, 255, 255); position: absolute; z-index: 2000; display: none;'>
798                                                <b>$txt</b>
799                                        </div>
800                                ";
801                               
802                        } else {
803                                $class_img = " class='docnum_statutnot1' " ;
804                                $txt = "" ;
805                        }
806                       
807                        if ($i==1) $ligne="<tr><td class='docnum' width='25%'>!!1!!</td><td class='docnum' width='25%'>!!2!!</td><td class='docnum' width='25%'>!!3!!</td><td class='docnum' width='25%'>!!4!!</td></tr>" ;
808                        if ($link_expl) {
809                                $tlink = str_replace("!!explnum_id!!", $expl->explnum_id, $link_expl);
810                                $tlink = str_replace("!!notice_id!!", $expl->explnum_notice, $tlink);                                   
811                                $tlink = str_replace("!!bulletin_id!!", $expl->explnum_bulletin, $tlink);                                       
812                        } 
813                        $alt = htmlentities($expl->explnum_nom." - ".$expl->explnum_mimetype,ENT_QUOTES, $charset) ;
814                       
815                        global $prefix_url_image ;
816                        if ($prefix_url_image) $tmpprefix_url_image = $prefix_url_image; 
817                                else $tmpprefix_url_image = "./" ;
818       
819                        if ($expl->explnum_vignette) $obj="<img src='".$tmpprefix_url_image."vig_num.php?explnum_id=$expl->explnum_id' alt='$alt' title='$alt' border='0'>";
820                                else // trouver l'icone correspondant au mime_type
821                                $obj="<img src='".$tmpprefix_url_image."images/mimetype/".icone_mimetype($expl->explnum_mimetype, $expl->explnum_extfichier)."' alt='$alt' title='$alt' border='0'>";
822                               
823                        $obj_suite="$statut_libelle_div
824                                <a  href='#' onmouseout=\"z=document.getElementById('zoom_statut_docnum".$expl->explnum_id."'); z.style.display='none'; \" onmouseover=\"z=document.getElementById('zoom_statut_docnum".$expl->explnum_id."'); z.style.display=''; \">
825                                        <div class='vignette_doc_num' ><img $class_img width='10' height='10' src='./images/spacer.gif'></div>
826                                </a>
827                        ";                     
828                        $expl_liste_obj = "<center>";
829                        $expl_liste_obj .= "<a href='".$tmpprefix_url_image."doc_num.php?explnum_id=$expl->explnum_id' alt='$alt' title='$alt' target='_blank'>".$obj."</a>$obj_suite<br />" ;
830                       
831                        if ($_mimetypes_byext_[$expl->explnum_extfichier]["label"]) $explmime_nom = $_mimetypes_byext_[$expl->explnum_extfichier]["label"] ;
832                        elseif ($_mimetypes_bymimetype_[$expl->explnum_mimetype]["label"]) $explmime_nom = $_mimetypes_bymimetype_[$expl->explnum_mimetype]["label"] ;
833                        else $explmime_nom = $expl->explnum_mimetype ;
834                        if($param_aff["mine_type"]) $explmime_nom="";
835                        if ($tlink) {
836                                $expl_liste_obj .= "<a href='$tlink'>";
837                                $expl_liste_obj .= htmlentities($expl->explnum_nom,ENT_QUOTES, $charset)."</a><div class='explnum_type'>".htmlentities($explmime_nom,ENT_QUOTES, $charset)."</div>";
838                        } else {
839                                $expl_liste_obj .= htmlentities($expl->explnum_nom,ENT_QUOTES, $charset)."<div class='explnum_type'>".htmlentities($explmime_nom,ENT_QUOTES, $charset)."</div>";
840                        }
841                        //recherche des concepts...
842                        $query = "select num_concept,value from index_concept join skos_fields_global_index on num_concept = id_item and code_champ = 1  where num_object = ".$expl->explnum_id." and type_object = 11 order by order_concept";
843                        $result = pmb_mysql_query($query,$dbh);
844                        $concept= "";
845                        if(pmb_mysql_num_rows($result)){
846                                while($row = pmb_mysql_fetch_object($result)){
847                                        if($concept){
848                                                $concept.=" / ";
849                                        }
850                                        if (SESSrights & AUTORITES_AUTH){
851                                                $concept.="<a href='".$base_path."/autorites.php?categ=concepts&sub=concept&action=edit&id=".$row->num_concept."' title='".addslashes($msg['concept_menu'].": ".htmlentities($row->value,ENT_QUOTES,$charset))."'>".htmlentities($row->value,ENT_QUOTES,$charset)."</a>";
852                                        }else{
853                                                $concept.="<span title='".addslashes($msg['concept_menu'].": ".htmlentities($row->value,ENT_QUOTES,$charset))."'>".htmlentities($row->value,ENT_QUOTES,$charset)."</span>";
854                                        }
855                                }
856                        }
857                       
858                        $expl_liste_obj .= $concept."</center>";
859                        $ligne = str_replace("!!$i!!", $expl_liste_obj, $ligne);
860                        $i++;
861                        if ($i==5) {
862                                $ligne_finale .= $ligne ;
863                                $i=1;
864                        }
865                }
866                if (!$ligne_finale) $ligne_finale = $ligne ;
867                elseif ($i!=1) $ligne_finale .= $ligne ;
868               
869                $ligne_finale = str_replace('!!2!!', "&nbsp;", $ligne_finale);
870                $ligne_finale = str_replace('!!3!!', "&nbsp;", $ligne_finale);
871                $ligne_finale = str_replace('!!4!!', "&nbsp;", $ligne_finale);
872               
873        } else return "";
874        $entry .= "<table class='docnum'>$ligne_finale</table>";
875        return $entry;
876}
877
878function extract_metas($filename,$mimetype,$tmp = false){
879        global $base_path,$class_path;
880        global $charset;
881        //$metas = array();
882        switch($mimetype){
883                //EPub
884                case "application/epub+zip" :
885                        //Exiftool ne donnerait rien, mais un Epub contient toutes les infos qui nous faut !
886                        require_once($class_path."/epubData.class.php");
887                        $epub = new epubData($filename);
888                        $metas = $epub->metas;
889                        break;
890                case "application/pdf" :
891//                      exec("exiftool -struct -J -q ".$filename,$metas);
892//                      $metas = json_decode(implode("\n",$metas),true);
893                        exec("exiftool ".$filename,$tab);
894                        $metas = array();
895                        foreach($tab as $row){
896                                $elem = explode(":",$row);
897                                $key = trim(str_replace(" ","",array_shift($elem)));
898                                $value = trim(implode(":",$elem));
899                                if($charset != "utf-8"){
900                                        $key = utf8_decode($key);
901                                        $value = utf8_decode($value);
902                                }
903                                $metas[$key] = $value;
904                        }
905                        break;
906                default :
907                        $type = substr($mimetype,0,strpos($mimetype,"/"));
908                        switch ($type){
909                                case "image" :
910                                case "video" :
911                                case "audio" :
912                                        exec("exiftool ".$filename,$tab);
913                                        $metas = array();
914                                        foreach($tab as $row){
915                                                $elem = explode(":",$row);
916                                                $key = trim(str_replace(" ","",array_shift($elem)));
917                                                $value = trim(implode(":",$elem));
918                                                if($charset != "utf-8" && mb_detect_encoding($value) == 'UTF-8'){
919                                                        $key = utf8_decode($key);
920                                                        $value = utf8_decode($value);
921                                                }
922                                                $metas[$key] = $value;
923                                        }
924                                        break;
925                                       
926                                case "text" :
927                                        //pas de métas pertinantes sur une fichier texte...
928                                        break;
929                                default :
930                                        if(!extension_fichier(basename($filename))){
931                                                $new_name=basename($filename)."temp";//Pour éviter que si pas d'extension on perde le fichier
932                                        }else{
933                                                $new_name = str_replace(extension_fichier(basename($filename)),"pdf",basename($filename));
934                                        }
935                                        $new_path = dirname($filename)."/".$new_name;
936                                        exec("curl http://localhost:8080/converter/converted/".$new_name." -F \"inputDocument=@$filename\" > ".$new_path);//Ne doit marcher que dans un cas très précis, pas vrai Arnaud
937                                        $metas = extract_metas($new_path,"application/pdf",true);
938                                        break;
939                        }
940
941                        break;
942        }
943        if($tmp) unlink($filename);
944        return $metas;
945}
946
947// fonction qui permet de savoir si les exemplaires numériques pour une notice ou un bulletin donné sont affichable à l'OPAC
948function explnum_allow_opac($no_notice, $no_bulletin) {
949        // params :
950        global $dbh;
951        global $gestion_acces_active,$gestion_acces_empr_notice;
952       
953        if (!$no_notice && !$no_bulletin) return false;
954       
955        $docnum_visible = true;
956        $id_for_right = $no_notice;
957        if($no_bulletin){
958                $query = "select num_notice,bulletin_notice from bulletins where bulletin_id = ".$no_bulletin;
959                $result = pmb_mysql_query($query);
960                if(pmb_mysql_num_rows($result)){
961                        $infos = pmb_mysql_fetch_object($result);
962                        if($infos->num_notice){
963                                $id_for_right = $infos->num_notice;
964                        }else{
965                                $id_for_right = $infos->bulletin_notice;       
966                        }
967                }
968        }
969        if ($gestion_acces_active==1 && $gestion_acces_empr_notice==1) {
970                $ac= new acces();
971                $dom_2= $ac->setDomain(2);
972                $docnum_visible = $dom_2->getRights(0,$id_for_right,16);
973        } else {
974                $requete = "SELECT explnum_visible_opac, explnum_visible_opac_abon FROM notices, notice_statut WHERE notice_id ='".$id_for_right."' and id_notice_statut=statut ";
975                $myQuery = pmb_mysql_query($requete, $dbh);
976                if(pmb_mysql_num_rows($myQuery)) {
977                        $statut_temp = pmb_mysql_fetch_object($myQuery);
978                        if(!$statut_temp->explnum_visible_opac) $docnum_visible=false;
979                        if($statut_temp->explnum_visible_opac_abon)     $docnum_visible=false;
980                } else  $docnum_visible=false;
981        }
982        return $docnum_visible;
983}
984
985// fonction retournant les infos d'exemplaires numeriques en relation avec une notice donne
986function show_explnum_in_relation($no_notice, $link_expl='',$param_aff=array()) {
987        global $dbh;
988        global $charset;
989        global $base_path,$msg;
990        global $_mimetypes_bymimetype_, $_mimetypes_byext_ ;
991        global $prefix_url_image ;
992       
993        if (!$no_notice) return "";
994       
995        create_tableau_mimetype() ;
996
997        // recuperation du nombre d'exemplaires
998        $requete = "SELECT explnum_id, explnum_notice, explnum_bulletin, explnum_nom, explnum_mimetype, explnum_url, explnum_vignette, explnum_nomfichier, explnum_extfichier, explnum_docnum_statut
999                        FROM explnum 
1000                        JOIN index_concept on index_concept.num_object = explnum_id AND index_concept.type_object=11
1001                        JOIN vedette_link on vedette_link.num_object=index_concept.num_concept AND vedette_link.type_object=1
1002                        JOIN vedette_object on vedette_object.num_vedette=vedette_link.num_vedette AND vedette_object.object_type=10 and vedette_object.object_id='$no_notice'
1003                        ORDER BY explnum_mimetype, explnum_id ";
1004        $res = pmb_mysql_query($requete, $dbh) or die ($requete." ".pmb_mysql_error());
1005        $nb_ex = pmb_mysql_num_rows($res);
1006
1007        if($nb_ex) {
1008                // on recupere les donnees des exemplaires
1009                $i = 1 ;
1010                while (($expl = pmb_mysql_fetch_object($res))) {
1011                               
1012                        // couleur de l'img en fonction du statut
1013                        if ($expl->explnum_docnum_statut) {
1014                                $rqt_st = "SELECT * FROM explnum_statut WHERE  id_explnum_statut='".$expl->explnum_docnum_statut."' ";
1015                                $Query_statut = pmb_mysql_query($rqt_st, $dbh)or die ($rqt_st. " ".pmb_mysql_error()) ;
1016                                $r_statut = pmb_mysql_fetch_object($Query_statut);
1017                                $class_img = " class='docnum_".$r_statut->class_html."' ";
1018                                if ($expl->explnum_docnum_statut>1) {
1019                                        $txt = $r_statut->opac_libelle;
1020                                } else $txt="";
1021
1022                                $statut_libelle_div="
1023                                        <div id='zoom_statut_docnum".$expl->explnum_id."' style='border: 2px solid rgb(85, 85, 85); background-color: rgb(255, 255, 255); position: absolute; z-index: 2000; display: none;'>
1024                                        <b>$txt</b>
1025                                        </div>
1026                                        ";
1027                        } else {
1028                                $class_img = " class='docnum_statutnot1' " ;
1029                                $txt = "" ;
1030                        }
1031                               
1032                        if ($i==1) $ligne="<tr><td class='docnum' width='25%'>!!1!!</td><td class='docnum' width='25%'>!!2!!</td><td class='docnum' width='25%'>!!3!!</td><td class='docnum' width='25%'>!!4!!</td></tr>" ;
1033                        if ($link_expl) {
1034                                $tlink = str_replace("!!explnum_id!!", $expl->explnum_id, $link_expl);
1035                                $tlink = str_replace("!!notice_id!!", $expl->explnum_notice, $tlink);
1036                                $tlink = str_replace("!!bulletin_id!!", $expl->explnum_bulletin, $tlink);
1037                        }
1038                        $alt = htmlentities($expl->explnum_nom." - ".$expl->explnum_mimetype,ENT_QUOTES, $charset) ;
1039                               
1040                        if ($prefix_url_image) $tmpprefix_url_image = $prefix_url_image;
1041                        else $tmpprefix_url_image = "./" ;
1042
1043                        if ($expl->explnum_vignette) $obj="<img src='".$tmpprefix_url_image."vig_num.php?explnum_id=$expl->explnum_id' alt='$alt' title='$alt' border='0'>";
1044                        else // trouver l'icone correspondant au mime_type
1045                                $obj="<img src='".$tmpprefix_url_image."images/mimetype/".icone_mimetype($expl->explnum_mimetype, $expl->explnum_extfichier)."' alt='$alt' title='$alt' border='0'>";
1046
1047                        $obj_suite="$statut_libelle_div
1048                        <a  href='#' onmouseout=\"z=document.getElementById('zoom_statut_docnum".$expl->explnum_id."'); z.style.display='none'; \" onmouseover=\"z=document.getElementById('zoom_statut_docnum".$expl->explnum_id."'); z.style.display=''; \">
1049                        <div class='vignette_doc_num' ><img $class_img width='10' height='10' src='./images/spacer.gif'></div>
1050                        </a>
1051                        ";
1052                        $expl_liste_obj = "<center>";
1053                        $expl_liste_obj .= "<a href='".$tmpprefix_url_image."doc_num.php?explnum_id=$expl->explnum_id' alt='$alt' title='$alt' target='_blank'>".$obj."</a>$obj_suite<br />" ;
1054                                       
1055                        if ($_mimetypes_byext_[$expl->explnum_extfichier]["label"]) $explmime_nom = $_mimetypes_byext_[$expl->explnum_extfichier]["label"] ;
1056                        elseif ($_mimetypes_bymimetype_[$expl->explnum_mimetype]["label"]) $explmime_nom = $_mimetypes_bymimetype_[$expl->explnum_mimetype]["label"] ;
1057                        else $explmime_nom = $expl->explnum_mimetype ;
1058                        if($param_aff["mine_type"]) $explmime_nom="";
1059                        if ($tlink) {
1060                                $expl_liste_obj .= "<a href='$tlink'>";
1061                                $expl_liste_obj .= htmlentities($expl->explnum_nom,ENT_QUOTES, $charset)."</a><div class='explnum_type'>".htmlentities($explmime_nom,ENT_QUOTES, $charset)."</div>";
1062                        } else {
1063                                $expl_liste_obj .= htmlentities($expl->explnum_nom,ENT_QUOTES, $charset)."<div class='explnum_type'>".htmlentities($explmime_nom,ENT_QUOTES, $charset)."</div>";
1064                        }
1065                        //recherche des concepts...
1066                        $query = "select num_concept,value from index_concept join skos_fields_global_index on num_concept = id_item and code_champ = 1  where num_object = ".$expl->explnum_id." and type_object = 11 order by order_concept";
1067                        $result = pmb_mysql_query($query,$dbh);
1068                        $concept= "";
1069                        if(pmb_mysql_num_rows($result)){
1070                                while($row = pmb_mysql_fetch_object($result)){
1071                                        if($concept){
1072                                                $concept.=" / ";
1073                                        }       
1074                                        if (SESSrights & AUTORITES_AUTH){
1075                                                $concept.="<a href='".$base_path."/autorites.php?categ=concepts&sub=concept&action=edit&id=".$row->num_concept."' title='".addslashes($msg['concept_menu'].": ".htmlentities($row->value,ENT_QUOTES,$charset))."'>".htmlentities($row->value,ENT_QUOTES,$charset)."</a>";
1076                                        }else{
1077                                                $concept.="<span title='".addslashes($msg['concept_menu'].": ".htmlentities($row->value,ENT_QUOTES,$charset))."'>".htmlentities($row->value,ENT_QUOTES,$charset)."</span>";
1078                                        }
1079                                }
1080                        }       
1081               
1082                        $expl_liste_obj .= $concept."</center>";
1083                        $ligne = str_replace("!!$i!!", $expl_liste_obj, $ligne);
1084                        $i++;
1085                        if ($i==5) {
1086                                $ligne_finale .= $ligne ;
1087                                $i=1;
1088                        }
1089                }
1090                if (!$ligne_finale) $ligne_finale = $ligne ;
1091                elseif ($i!=1) $ligne_finale .= $ligne ;
1092
1093                $ligne_finale = str_replace('!!2!!', "&nbsp;", $ligne_finale);
1094                $ligne_finale = str_replace('!!3!!', "&nbsp;", $ligne_finale);
1095                $ligne_finale = str_replace('!!4!!', "&nbsp;", $ligne_finale);
1096
1097        } else return "";
1098        $entry .= "<table class='docnum'>$ligne_finale</table>";
1099        return $entry;
1100}
1101?>
Note: See TracBrowser for help on using the repository browser.