\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; $i".$notice;
} else {
$error="";
$data="\n";
//si c'est des slashes on les remplaces par des tirets
$ntable["DP"] = str_replace("/","-",$ntable["DP"]);
//Séparation du type de document
$typdoc=explode(",",$ntable["TY"]);
$is_revue=false;
if (count($typdoc)>2) $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;
}
}