code || $notice->thumbnail_url) { if ($notice->thumbnail_url) $url_image_ok=$notice->thumbnail_url; else { $code_chiffre = pmb_preg_replace('/-|\.| /', '', $notice->code); $url_image = $opac_book_pics_url ; $url_image = $opac_url_base."getimage.php?url_image=".urlencode($url_image)."¬icecode=!!noticecode!!&vigurl=".urlencode($notice->thumbnail_url) ; $url_image_ok = str_replace("!!noticecode!!", $code_chiffre, $url_image) ; } } } else { $url_image_ok=$opac_url_base."images/vide.png"; } return $url_image_ok; } // ---------------------------------------------------------------------------- // fonctions de formatage de chaine // ---------------------------------------------------------------------------- // reg_diacrit : fonction pour traiter les caracteres accentues en recherche avec regex // choix de la classe à utiliser pour envoi en pdf if (!$fpdf) { if ($charset != 'utf-8') $fpdf = 'FPDF'; else $fpdf = 'UFPDF'; } function reg_diacrit($chaine) { // a priori inutile sauf dans selecteur emprunteur, mais devrait etre changee. global $charset; global $include_path; // preparation d'une chaine pour requete par REGEXP global $tdiac ; if (!$tdiac) { $tdiac = new XMLlist("$include_path/messages/diacritique$charset.xml"); $tdiac->analyser(); } foreach($tdiac->table as $wreplace => $wdiacritique) { if(pmb_preg_match("/$wdiacritique/", $chaine)) $chaine = pmb_preg_replace("/$wdiacritique/", $wreplace, $chaine); } $tab = pmb_split('/\s/', $chaine); // mise en forme de la chaine pour les alternatives // on fonctionne avec OU (pour l'instant) if(sizeof($tab) > 1) { foreach($tab as $dummykey=>$word) { if($word) $this->mots[] = "($word)"; } return join('|', $this->mots); } else { return $chaine; } } function convert_diacrit($string) { global $tdiac; global $charset; global $include_path; if(!$string) return; if (!$tdiac) { $tdiac = new XMLlist("$include_path/messages/diacritique$charset.xml"); $tdiac->analyser(); } foreach($tdiac->table as $wreplace => $wdiacritique) { if(pmb_preg_match("/$wdiacritique/", $string)) $string = pmb_preg_replace("/$wdiacritique/", $wreplace, $string); } return $string; } //strip_empty_chars : enleve tout ce qui n'est pas alphabetique ou numerique d'une chaine function strip_empty_chars($string) { // traitement des diacritiques $string = convert_diacrit($string); // Mis en commentaire : qu'en est-il des caracteres non latins ??? // SUPPRIME DU COMMENTAIRE : ER : 12/05/2004 : ça fait tout merder... // RECH_14 : Attention : ici suppression des eventuels " // les " ne sont plus supprimes $string = stripslashes($string) ; $string = pmb_alphabetic('^a-z0-9\s', ' ',pmb_strtolower($string)); // remplacement espace insécable 0xA0:   Non-breaking space $string = clean_nbsp($string); // espaces en debut et fin $string = pmb_preg_replace('/^\s+|\s+$/', '', $string); // espaces en double $string = pmb_preg_replace('/\s+/', ' ', $string); return $string; } // strip_empty_words : fonction enlevant les mots vides d'une chaine function strip_empty_words($string, $lg = 0) { // on inclut le tableau des mots-vides pour la langue par defaut si elle n'est pas precisee // c'est normalement la langue de catalogage... // sinon on inclut le tableau des mots vides pour la langue precisee // si apres nettoyage des mots vide la chaine est vide alors on garde la chaine telle quelle (sans les accents) global $pmb_indexation_lang; // global $lang; global $include_path; if (!$lg || $lg == $pmb_indexation_lang) { global $empty_word; } else { include("$include_path/marc_tables/$lg/empty_words"); } //echo "
";
	//print_r($empty_word);
	//echo "
"; // nettoyage de l'entree // traitement des diacritiques $string = convert_diacrit($string); // Mis en commentaire : qu'en est-il des caracteres non latins ??? // SUPPRIME DU COMMENTAIRE : ER : 12/05/2004 : ça fait tout merder... // RECH_14 : Attention : ici suppression des eventuels " // les " ne sont plus supprimes $string = stripslashes($string) ; $string = pmb_alphabetic('^a-z0-9\s', ' ',pmb_strtolower($string)); // remplacement espace insécable 0xA0:   Non-breaking space $string = clean_nbsp($string); // espaces en debut et fin $string = pmb_preg_replace('/^\s+|\s+$/', '', $string); // espaces en double $string = pmb_preg_replace('/\s+/', ' ', $string); $string_avant_mots_vides = $string ; // suppression des mots vides if(is_array($empty_word)) { foreach($empty_word as $dummykey=>$word) { $word = convert_diacrit($word); $string = pmb_preg_replace("/^${word}$|^${word}\s|\s${word}\s|\s${word}\$/i", ' ', $string); // RECH_14 : suppression des mots vides colles à des guillemets if (pmb_preg_match("/\"${word}\s/i",$string)) $string = pmb_preg_replace("/\"${word}\s/i", '"', $string); if (pmb_preg_match("/\s${word}\"/i",$string)) $string = pmb_preg_replace("/\s${word}\"/i", '"', $string); } } // re nettoyage des espaces generes // espaces en debut et fin $string = pmb_preg_replace('/^\s+|\s+$/', '', $string); // espaces en double $string = pmb_preg_replace('/\s+/', ' ', $string); if (!$string) { $string = $string_avant_mots_vides ; // re nettoyage des espaces generes // espaces en debut et fin $string = pmb_preg_replace('/^\s+|\s+$/', '', $string); // espaces en double $string = pmb_preg_replace('/\s+/', ' ', $string); } return $string; } // clean_string() : fonction de nettoyage d'une chaÓne function clean_string($string) { // on supprime les caractËres non-imprimables $string = pmb_preg_replace("/\\x0|[\x01-\x1f]/U","",$string); // suppression des caractËres de ponctuation indesirables // $string = pmb_preg_replace('/[\{\}\"]/', '', $string); // supression du point et des espaces de fin $string = pmb_preg_replace('/\s+\.$|\s+$/', '', $string); // nettoyage des espaces autour des parenthËses $string = pmb_preg_replace('/\(\s+/', '(', $string); $string = pmb_preg_replace('/\s+\)/', ')', $string); // idem pour les crochets $string = pmb_preg_replace('/\[\s+/', '[', $string); $string = pmb_preg_replace('/\s+\]/', ']', $string); // petit point de detail sur les apostrophes //$string = pmb_preg_replace('/\'\s+/', "'", $string); // 'trim' par regex $string = pmb_preg_replace('/^\s+|\s+$/', '', $string); // suppression des espaces doubles $string = pmb_preg_replace('/\s+/', ' ', $string); return $string; } //Corrections des caractères bizarres (voir pourris) de M$ function cp1252Toiso88591($str){ $cp1252_map = array( "\x80" => "EUR", /* EURO SIGN */ "\x82" => "\xab", /* SINGLE LOW-9 QUOTATION MARK */ "\x83" => "\x66", /* LATIN SMALL LETTER F WITH HOOK */ "\x84" => "\xab", /* DOUBLE LOW-9 QUOTATION MARK */ "\x85" => "...", /* HORIZONTAL ELLIPSIS */ "\x86" => "?", /* DAGGER */ "\x87" => "?", /* DOUBLE DAGGER */ "\x88" => "?", /* MODIFIER LETTER CIRCUMFLEX ACCENT */ "\x89" => "?", /* PER MILLE SIGN */ "\x8a" => "S", /* LATIN CAPITAL LETTER S WITH CARON */ "\x8b" => "\x3c", /* SINGLE LEFT-POINTING ANGLE QUOTATION */ "\x8c" => "OE", /* LATIN CAPITAL LIGATURE OE */ "\x8e" => "Z", /* LATIN CAPITAL LETTER Z WITH CARON */ "\x91" => "\x27", /* LEFT SINGLE QUOTATION MARK */ "\x92" => "\x27", /* RIGHT SINGLE QUOTATION MARK */ "\x93" => "\x22", /* LEFT DOUBLE QUOTATION MARK */ "\x94" => "\x22", /* RIGHT DOUBLE QUOTATION MARK */ "\x95" => "\b7", /* BULLET */ "\x96" => "\x20", /* EN DASH */ "\x97" => "\x20\x20", /* EM DASH */ "\x98" => "\x7e", /* SMALL TILDE */ "\x99" => "?", /* TRADE MARK SIGN */ "\x9a" => "S", /* LATIN SMALL LETTER S WITH CARON */ "\x9b" => "\x3e;", /* SINGLE RIGHT-POINTING ANGLE QUOTATION*/ "\x9c" => "oe", /* LATIN SMALL LIGATURE OE */ "\x9e" => "Z", /* LATIN SMALL LETTER Z WITH CARON */ "\x9f" => "Y" /* LATIN CAPITAL LETTER Y WITH DIAERESIS*/ ); $str = strtr($str, $cp1252_map); return $str; } // ---------------------------------------------------------------------------- // fonctions sur les dates // ---------------------------------------------------------------------------- // today() : retourne la date du jour au format MySQL-DATE function today() { $jour = date('Y-m-d'); return $jour; } // formatdate() : retourne une date formatee comme il faut function formatdate($date_a_convertir, $with_hour=0) { global $msg; global $dbh; if ($with_hour) $resultatdate=mysql_query("select date_format('".$date_a_convertir."', '".$msg["format_date_heure"]."') as date_conv "); else $resultatdate=mysql_query("select date_format('".$date_a_convertir."', '".$msg["format_date"]."') as date_conv "); $date_conv=mysql_result($resultatdate,0,0); return $date_conv ; } // extraitdate() : retourne une date formatee comme il faut function extraitdate($date_a_convertir) { global $msg; $format_local = str_replace ("%","",$msg["format_date"]); $format_local = str_replace ("-","",$format_local); $format_local = str_replace ("/","",$format_local); $format_local = str_replace ("\\","",$format_local); $format_local = str_replace (".","",$format_local); $format_local = str_replace (" ","",$format_local); $format_local = str_replace ($msg["format_date_input_separator"],"",$format_local); list($date[substr($format_local,0,1)],$date[substr($format_local,1,1)],$date[substr($format_local,2,1)]) = sscanf($date_a_convertir,$msg["format_date_input"]) ; if ($date['Y'] && $date['m'] && $date['d']){ //$date_a_convertir = $date['Y']."-".$date['m']."-".$date['d'] ; $date_a_convertir = sprintf("%04d-%02d-%02d",$date['Y'],$date['m'],$date['d']); } else { $date_a_convertir=""; } return $date_a_convertir ; } function detectFormatDate($date_a_convertir,$compl="01"){ global $msg; if(preg_match("#\d{4}-\d{2}-\d{2}#",$date_a_convertir)){ $date = $date_a_convertir; }else if(preg_match(getDatePattern(),$date_a_convertir)){ $date = extraitdate($date_a_convertir); }elseif(preg_match(getDatePattern("short"),$date_a_convertir)){ $format = str_replace ("%","",$msg["format_date_short"]); $format = str_replace ("-","",$format); $format = str_replace ("/","",$format); $format = str_replace ("\\","",$format); $format = str_replace (".","",$format); $format = str_replace (" ","",$format); $format = str_replace ($msg["format_date_input_separator"],"",$format); list($date[substr($format,0,1)],$date[substr($format,1,1)],$date[substr($format,2,1)]) = sscanf($date_a_convertir,$msg["format_date_short_input"]); if ($date['Y'] && $date['m']){ $date = sprintf("%04d-%02d-%02s",$date['Y'],$date['m'],$compl); }else{ $date = "0000-00-00"; } }elseif(preg_match(getDatePattern("year"),$date_a_convertir,$matches)){ $date = $matches[0]."-".$compl."-".$compl; }else{ $date = "0000-00-00"; } return $date; } function getDatePattern($format="long"){ global $msg; switch($format){ case "long" : $format_date = str_replace ("%","",$msg["format_date"]); break; case "short" : $format_date = str_replace ("%","",$msg["format_date_short"]); break; case "year": $format_date = "Y"; break; } $format_date = str_replace ("-"," ",$format_date); $format_date = str_replace ("/"," ",$format_date); $format_date = str_replace ("\\"," ",$format_date); $format_date = str_replace ("."," ",$format_date); $format_date=explode(" ",$format_date); $pattern = array(); for($i=0;$i$liste_vide_info\n"; } else { if ($option_premier_info!="") { $renvoi.="