\n";
$data.=" ".htmlspecialchars($tete,ENT_QUOTES,$charset)."\n";
$data.=" ".htmlspecialchars($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 $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) {
$cols=fread($fcols,filesize("$base_path/temp/".$origine."_cols.txt"));
fclose($fcols);
$cols=unserialize($cols);
}
}
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 (!$cols) {
// for ($i=0; $i".$notice;
} else {
$error="";
$data="\n";
//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($titres[0],ENT_QUOTES,$charset)."\n";
//Titre parallèle
if ($ntable["COL"]) {
$data.=" ".htmlspecialchars($ntable["COL"],ENT_QUOTES,$charset)."\n";
} else if ($ntable["ND"]) {
$diplome=explode(":",$ntable["ND"]);
if ($diplome[0]) {
$data.=" ".htmlspecialchars($diplome[0],ENT_QUOTES,$charset)."\n";
}
}
//Titre complémentaire
if ($titres[1])
$data.=" ".htmlspecialchars($titres[1],ENT_QUOTES,$charset)."\n";
$data.=" \n";
//Traitement des Auteurs principaux
if ($ntable["AU"]) {
$auteurs=explode(",",$ntable["AU"]);
if (count($auteurs)>1) {
$f_a="701";
} else {
$f_a="700";
}
$data_auteurs="";
for ($i=0; $i".htmlspecialchars($entree,ENT_QUOTES,$charset)."\n";
if ($rejete) {
$data_auteurs.=" ".htmlspecialchars($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";
}
}
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".htmlspecialchars($entree,ENT_QUOTES,$charset)."\n";
if ($rejete) {
$data_auteurs.=" ".htmlspecialchars($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";
}
}
if ($data_auteurs) {
$data.=" \n";
$data.=$data_auteurs;
$data.=" \n";
}
}
//Traitement des Auteurs collectif
if ($ntable["AUCO"]) {
$auteurs=explode(",",$ntable["AUCO"]);
$f_a="702";
$data_auteurs="";
for ($i=0; $i".htmlspecialchars($entree,ENT_QUOTES,$charset)."\n";
if ($rejete) {
$data_auteurs.=" ".htmlspecialchars($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";
}
}
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];
$collection=str_replace("COLL.","",$collection);
} else if ($diplome[2]) {
$lieu=$diplome[1];
$nom=$diplome[2];
$annee=$diplome[3];
}
$data_editeur="";
if ($nom) {
$data_editeur.=" ".htmlspecialchars($nom,ENT_QUOTES,$charset)."\n";
if ($lieu) $data_editeur.=" ".htmlspecialchars($lieu,ENT_QUOTES,$charset)."\n";
if ($annee) $ann=$annee; else $ann=$ntable["DP"];
$data_editeur.=" ".htmlspecialchars($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=$dsitributeur[1];
$lieu=$distributeur[0];
} else {
$nom=$ntable["DIST"];
$lieu="";
}
$data_editeur=" ".htmlspecialchars($nom,ENT_QUOTES,$charset)."\n";
if ($lieu) $data_editeur.=" ".htmlspecialchars($lieu,ENT_QUOTES,$charset)."\n";
$data.=" \n";
$data.=$data_editeur;
$data.=" \n";
}
if ($collection) {
$data.=" \n";
$data.=" ".htmlspecialchars($collection,ENT_QUOTES,$charset)."\n";
$data.=" \n";
}
//Notes
if (($ntable["NO"])&&($ntable["TY"]!="REVUE")) {
$data.=" \n";
$data.=" ".htmlspecialchars($ntable["NO"],ENT_QUOTES,$charset)."\n";
$data.=" \n";
}
//Résumé
if ($ntable["RESU"]) {
$data.=" \n";
$data.=" ".htmlspecialchars($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";
$data.=" ";
}
//Indexations
if ($ntable["GO"]||$ntable["HI"]||$ntable["DENP"]||$ntable["DE"]||$ntable["CD"]) {
$data.=static::make_index($ntable["GO"],"Géo");
$data.=static::make_index($ntable["HI"],"Hist");
$data.=static::make_index($ntable["DENP"],"DENP");
$data.=static::make_index($ntable["DE"],"Mots clés");
$data.=static::make_index($ntable["CD"],"CD");
}
//Champs spéciaux
$data.=" \n";
$data.=" ".htmlspecialchars($ntable["OP"],ENT_QUOTES,$charset)."\n";
$data.=" \n";
$data.=" \n";
$data.=" ".htmlspecialchars($ntable["GEN"],ENT_QUOTES,$charset)."\n";
$data.=" \n";
$data.=" \n";
$data.=" ".htmlspecialchars($ntable["DS"],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;
}
}