\n"; $data.=" ".htmlspecialchars(trim($tete),ENT_QUOTES,$charset)."\n"; $data.=" ".htmlspecialchars(trim($d[$i]),ENT_QUOTES,$charset)."\n"; $data.=" \n"; } } } return $data; } public static function convert_data($notice, $s, $islast, $isfirst, $param_path) { global $cols; global $ty; global $intitules; global $base_path,$origine; global $tab_functions; global $lot; global $charset; if (!$tab_functions) $tab_functions=new marc_list('function'); if (!$cols) { //On lit les intitulés dans le fichier temporaire $fcols=fopen("$base_path/temp/".$origine."_cols.txt","r"); if ($fcols) { $infos=fread($fcols,filesize("$base_path/temp/".$origine."_cols.txt")); fclose($fcols); $infos=unserialize($infos); $cols=$infos["COLS"]; $lot=$infos["FILENAME"]; } } if (!$ty) { $ty=array("ARTICLE"=>"v","REVUE"=>"v","LIVRE"=>"a","MEMOIRE"=>"b","DOCUMENT AUDIOVISUEL"=>"g","CDROM"=>"m","CD-ROM"=>"m","DOCUMENT EN LIGNE"=>"l"); } if (!$mois) { $mois=array( 0=>"", 1=>"janvier", 2=>"fevrier", 3=>"mars", 4=>"avril", 5=>"mai", 6=>"juin", 7=>"juillet", 8=>"aout", 9=>"septembre", 10=>"octobre", 11=>"novembre", 12=>"decembre" ); if($charset !="utf-8"){ $mois_enrichis=array( 0=>"", 1=>"janvier", 2=>"février", 3=>"mars", 4=>"avril", 5=>"mai", 6=>"juin", 7=>"juillet", 8=>"aout", 9=>"septembre", 10=>"octobre", 11=>"novembre", 12=>"décembre" ); }else{ $mois_enrichis=array( 0=>"", 1=>"janvier", 2=>utf8_encode("février"), 3=>"mars", 4=>"avril", 5=>"mai", 6=>"juin", 7=>"juillet", 8=>"aout", 9=>"septembre", 10=>"octobre", 11=>"novembre", 12=>utf8_encode("décembre") ); } } //if (!$cols) { // for ($i=0; $i"","\n"=>"")); $fields=explode(";;",$notice); for ($i=0; $i2) $n_max=2; else $n_max=count($typdoc); for ($i=0; $i<$n_max; $i++) { if ($typdoc[$i]=="REVUE") $is_revue=true; else { $ntable["TY"]=$typdoc[$i]; } } //Entête $data.=" n\n"; $type = strtoupper($ntable["TY"]); if ($ty[$type]) $dt=$ty[$type]; else $dt="a"; $bl="m"; $data.="
".$dt."
\n"; $data.="".$bl."\n"; $data.="*\n1\ni\n"; //Numéro d'enregistrement $data.=" ".$ntable["REF"]."\n"; //Titre $titres=explode(":",$ntable["TI"]); $data.=" \n"; //Titre principal $data.=" ".htmlspecialchars(trim($titres[0]),ENT_QUOTES,$charset)."\n"; //Titre parallèle if ($ntable["COL"]) { $data.=" ".htmlspecialchars(trim($ntable["COL"]),ENT_QUOTES,$charset)."\n"; } else if ($ntable["ND"]) { $diplome=explode(":",$ntable["ND"]); if ($diplome[0]) { $data.=" ".htmlspecialchars(trim($diplome[0]),ENT_QUOTES,$charset)."\n"; } } //Titre complémentaire if ($titres[1]) $data.=" ".htmlspecialchars(trim($titres[1]),ENT_QUOTES,$charset)."\n"; $data.=" \n"; //Traitement des Auteurs principaux if ($ntable["AU"]) { $auteurs=explode(",",$ntable["AU"]); $is_auteur_principal = false; if (count($auteurs)>1) { $f_a="701"; } else { $f_a="700"; $is_auteur_principal = true; } $data_auteurs=""; for ($i=0; $i\n"; $data_auteurs.=" ".htmlspecialchars(trim($entree),ENT_QUOTES,$charset)."\n"; if ($rejete) { $data_auteurs.=" ".htmlspecialchars(trim($rejete),ENT_QUOTES,$charset)."\n"; } $as=array_search($fonction,$tab_functions->table); if (($as!==false)&&($as!==null)) $fonction=$as; else $fonction="070"; $data_auteurs.=" ".$fonction."\n"; $data_auteurs.=" \n"; } } if ($data_auteurs) { /*$data.=" \n";*/ $data.=$data_auteurs; /*$data.=" \n";*/ } } //Traitement des auteurs secondaires if ($ntable["AS"]) { $auteurs=explode(",",$ntable["AS"]); $f_a="702"; $data_auteurs=""; for ($i=0; $i\n"; $data_auteurs.=" ".htmlspecialchars(trim($entree),ENT_QUOTES,$charset)."\n"; if ($rejete) { $data_auteurs.=" ".htmlspecialchars(trim($rejete),ENT_QUOTES,$charset)."\n"; } //Recherche de la fonction $as=array_search($fonction,$tab_functions->table); if (($as!==false)&&($as!==null)) $fonction=$as; else $fonction="070"; $data_auteurs.=" ".$fonction."\n"; $data_auteurs.=" \n"; } } if ($data_auteurs) { /*$data.=" \n";*/ $data.=$data_auteurs; /*$data.=" \n";*/ } } //Traitement des Auteurs collectif if ($ntable["AUCO"]) { $auteurs=explode(",",$ntable["AUCO"]); if ($is_auteur_principal) $f_a = "710"; else $f_a = "711"; $data_auteurs=""; for ($i=0; $i0)) $f_a = "711"; $data_auteurs.=" \n"; $data_auteurs.=" ".htmlspecialchars(trim($entree),ENT_QUOTES,$charset)."\n"; if ($rejete) { $data_auteurs.=" ".htmlspecialchars(trim($rejete),ENT_QUOTES,$charset)."\n"; } $as=array_search($fonction,$tab_functions->table); if (($as!==false)&&($as!==null)) $fonction=$as; else $fonction="070"; $data_auteurs.=" ".$fonction."\n"; $data_auteurs.=" \n"; } } if ($data_auteurs) { /*$data.=" \n";*/ $data.=$data_auteurs; /*$data.=" \n";*/ } } //Editeurs / collection if ($ntable["ED"]) { $editeur=explode(":",$ntable["ED"]); $lieu=$editeur[0]; $nom=$editeur[1]; preg_match_all("/([^\(]*)(\((.*)\))*?/",trim($editeur[2]),$matches); $annee=$matches[1][0]; $collection=$matches[3][2]; } else if ($diplome[2]) { $lieu=$diplome[1]; $nom=$diplome[2]; $annee=$diplome[3]; } $data_editeur=""; if ($nom) { $data_editeur.=" ".htmlspecialchars(trim($nom),ENT_QUOTES,$charset)."\n"; if ($lieu) $data_editeur.=" ".htmlspecialchars(trim($lieu),ENT_QUOTES,$charset)."\n"; if ($annee) $ann=$annee; else $ann=$ntable["DP"]; $data_editeur.=" ".htmlspecialchars(trim($ann),ENT_QUOTES,$charset)."\n"; } $editeur_present=false; if ($data_editeur) { $data.=" \n"; $data.=$data_editeur; $data.=" \n"; $editeur_present=true; } //Date de publication $dp=false; if ($ntable["DP"]) { if (!$editeur_present) { $data.=" \n"; $data.=" ".htmlspecialchars($ntable["DP"],ENT_QUOTES,$charset)."\n"; $data.=" \n"; $dp=true; } } //Distributeur if ($ntable["DIST"]) { if ((!$dp)&&(!$editeur_present)) { $data.=" \n"; $data.=" \n"; $data.=" \n"; } $distributeur=explode(":",$ntable["DIST"]); if ($distributeur[1]) { $nom=$distributeur[1]; $lieu=$distributeur[0]; } else { $nom=$ntable["DIST"]; $lieu=""; } $data_editeur=" ".htmlspecialchars(trim($nom),ENT_QUOTES,$charset)."\n"; if ($lieu) $data_editeur.=" ".htmlspecialchars(trim($lieu),ENT_QUOTES,$charset)."\n"; $data.=" \n"; $data.=$data_editeur; $data.=" \n"; } if ($collection) { $data.=" \n"; $data.=" ".htmlspecialchars(trim($collection),ENT_QUOTES,$charset)."\n"; $data.=" \n"; } //Source if (($ntable["SO"])&&(!$is_revue)) { $data.=" \n"; $data.=" ".htmlspecialchars(trim($ntable["SO"]),ENT_QUOTES,$charset)."\n"; $data.=" "; } //Notes if (($ntable["NO"])&&(!$is_revue)) { $data.=" \n"; $data.=" ".htmlspecialchars(trim($ntable["NO"]),ENT_QUOTES,$charset)."\n"; $data.=" \n"; } //Résumé if ($ntable["RESU"]) { $data.=" \n"; $data.=" ".htmlspecialchars(trim($ntable["RESU"]),ENT_QUOTES,$charset)."\n"; $data.=" \n"; } //Périodiques if ($ntable["TP"]) { $data.=" \n"; $data.=" ".htmlspecialchars($ntable["TP"],ENT_QUOTES,$charset)."\n"; $data.=" ".htmlspecialchars($ntable["TN"],ENT_QUOTES,$charset)."\n"; $so=explode(",",$ntable["SO"]); $data.=" ".htmlspecialchars($so[count($so)-1],ENT_QUOTES,$charset)."\n"; unset($so[count($so)-1]); $data.=" ".htmlspecialchars(implode(",",$so),ENT_QUOTES,$charset)."\n"; $data.=" ".htmlspecialchars($ntable["NO"],ENT_QUOTES,$charset)."\n"; if ($ntable["DATRI"]) { $data.=" ".htmlspecialchars($ntable["DATRI"],ENT_QUOTES,$charset)."\n"; } else { if ($ntable["DP"]) { if (strlen($ntable["DP"])<=4) { //Recherche du mois éventuel $m=0; for ($i=1; $i<13; $i++) { $pm=strpos(strtolower($date_so),$mois[$i]); if ($pm===false) { $pm=strpos(strtolower($date_so),$mois_enrichis[$i]); } if ($pm!==false) break; } if ($i<13) $m=$i; else $m=1; $data.=" ".htmlspecialchars($ntable["DP"]."-".$m."-01",ENT_QUOTES,$charset)."\n"; } else $data.=" ".htmlspecialchars($ntable["DP"],ENT_QUOTES,$charset)."\n"; } } $data.=" "; } //Indexations if ($ntable["GO"]||$ntable["HI"]||$ntable["DENP"]||$ntable["DE"]||$ntable["CD"]) { $data.=static::make_index($ntable["GO"],"GO"); $data.=static::make_index($ntable["HI"],"HI"); $data.=static::make_index($ntable["DENP"],"DENP"); $data.=static::make_index($ntable["DE"],"DE"); $data.=static::make_index($ntable["CD"],"CD"); } //URL if ($ntable["URL"]) { $data.=" \n"; $data.=" ".htmlspecialchars($ntable["URL"],ENT_QUOTES,$charset)."\n"; $data.=" \n"; } //ISBN if ($ntable["ISBN"]) { $data.=" \n"; $data.=" ".htmlspecialchars(trim($ntable["ISBN"]),ENT_QUOTES,$charset)."\n"; $data.=" \n"; } //Champs spéciaux $data.=" \n"; $data.=" ".htmlspecialchars(trim($ntable["OP"]),ENT_QUOTES,$charset)."\n"; $data.=" \n"; $data.=" \n"; $data.=" ".htmlspecialchars(trim($ntable["GEN"]),ENT_QUOTES,$charset)."\n"; $data.=" \n"; $data.=" \n"; $data.=" ".htmlspecialchars($ntable["DS"],ENT_QUOTES,$charset)."\n"; $data.=" \n"; $data.=" \n"; $data.=" ".htmlspecialchars($lot,ENT_QUOTES,$charset)."\n"; $data.=" \n"; $data.="\n"; } if (!$error) $r['VALID'] = true; else $r['VALID']=false; $r['ERROR'] = $error; $r['DATA'] = $data; return $r; } }