"Collaborateur","Coord."=>"Coordinateur","Dir."=>"Directeur de publication","Ed."=>"Editeur scientifique",
"Ill."=>"Illustrateur","Préf."=>"Préfacier","Trad."=>"Traducteur","Postf."=>"Postfacier");
}
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(!isset($cols) || !is_array($cols) || !count($cols)){
$cols=array();
$error.="Pas de description des champs de fourni
\n";
$data="";
}
if (!$ty) {
$tab_type=new marc_list('doctype');
$ty=array_flip($tab_type->table);
/*$ty=array("Livre"=>"a","Congrès"=>"h","Mémoire"=>"r",
"Thèse"=>"o","Rapport"=>"q","Texte officiel"=>"t",
"Périodique"=>"p","Article"=>"s","Document multimédia"=>"m");*/
}
$fields=explode("'^'",$notice);
if(count($fields) != count($cols)){
$error.="Pas le bon nombre de champs
\n";
$data="";
}
for ($i=0; $i\n";
}
}
}else{
$error.="TYPE inconnu
\n";
$data="";
}
if ($error) {
$data="";
} else {
$error="";
$data="\n";
//Entête
$data.=" n\n";
if ($ty[$ntable["TYPE"]]) $dt=$ty[$ntable["TYPE"]]; else $dt="a";
switch ($dt) {
case "p"://Périodique
$bl = "s";
$hl = "1";
break;
case "s"://Article
case "t"://Texte officiel
$bl = "a";
$hl = "2";
break;
default :
if(($dt == "q") && ($ntable["REV"])) {//Rapport
$bl = "a";
$hl = "2";
} else {
$bl = "m";
$hl = "0";
}
}
$data.=" ".$dt."\n";
$data.="".$bl."\n";
$data.="".$hl."\n1\ni\n";
// //Support du document
// if ($ntable["SUPPORT"]) {
//
// }
$with_titre=false;
$with_titre_perio=false;
$with_bull_info=false;
//Traitement des titres
if ($ntable["TIT"]) {
$tmp_titre="";
$tmp_titre=htmlspecialchars($ntable["TIT"],ENT_QUOTES,$charset);
if($tmp_titre){
$with_titre=true;
}
$data.=" \n";
$data.=" ".$tmp_titre."\n";
$data.=" \n";
}
//Titre de revue (périodique)
if($ntable["REV"]){
$tmp_titre="";
if ($ntable["TYPE"] == (($charset == "utf-8")?utf8_encode("Périodique"):"Périodique")) {
$code = '200';
$ss_code = 'a';
$tmp_titre=htmlspecialchars($ntable["REV"],ENT_QUOTES,$charset);
if($tmp_titre){
$with_titre=true;
}
} else {
$code = '461';
$ss_code = 't';
$tmp_titre=htmlspecialchars($ntable["REV"],ENT_QUOTES,$charset);
if($tmp_titre){
$with_titre_perio=true;
}
}
$data .= " \n";
$data .= " ".$tmp_titre."\n";
//Volume ou tome
if ($ntable["VOL"] && ($code == "461")) {
$with_bull_info=true;
$data.=" ".htmlspecialchars($ntable["VOL"],ENT_QUOTES,$charset)."\n";
}
$data.=" \n";
}elseif($ntable["VOL"]){
$with_bull_info=true;
$data.=" \n";
$data.=" ".htmlspecialchars($ntable["VOL"],ENT_QUOTES,$charset)."\n";
$data.=" \n";
}
//Reprise DATETEXT comme DATE si c'est un "Texte officiel"
if( ($dt == "t") && (!trim($ntable["DATEPUB"])) && (!trim($ntable["DATE"])) && ($ntable["DATETEXT"]) ){
$ntable["DATE"]=$ntable["DATETEXT"];
}elseif($ntable["DATEPUB"]) { //Date de publication du texte -> Que pour les textes officiel
$with_bull_info=true;
$data.=" \n";
$data.=" ".htmlspecialchars($ntable["DATEPUB"],ENT_QUOTES,$charset)."\n";
$data.=" \n";
}
//Date de vie et de mort du périodique -> Que pour les périodiques
if (($ntable["VIEPERIO"])/* && ($ntable["VIEPERIO"] != "[s.d.]")*/) {
$data.=" \n";
$data.=" ".htmlspecialchars($ntable["VIEPERIO"],ENT_QUOTES,$charset)."\n";
$data.=" \n";
}
//Editeurs -> Pas présent pour les textes officiel et les périodiques
if (($ntable["EDIT"])/* && ($ntable["EDIT"] != "[s.n.]")*/) {
$editeurs = explode("/", $ntable["EDIT"]);
$data.=" \n";
for ($i=0; $i".htmlspecialchars($editeurs[$i],ENT_QUOTES,$charset)."\n";
}
if (($ntable["LIEU"])/* && ($ntable["LIEU"] != "[s.l.]")*/) {
$lieux = explode("/", $ntable["LIEU"]);
for ($i=0; $i".htmlspecialchars($lieux[$i],ENT_QUOTES,$charset)."\n";
}
}
if ($ntable["DATE"]) {
$with_bull_info=true;
$data.=" ".htmlspecialchars($ntable["DATE"],ENT_QUOTES,$charset)."\n";
}
$data.=" \n";
} elseif ($ntable["DATE"]) {
$with_bull_info=true;
$data.=" \n";
$data.=" ".htmlspecialchars($ntable["DATE"],ENT_QUOTES,$charset)."\n";
$data.=" \n";
}
//Traitement des Auteurs
if ($ntable["AUT"]/* && ($ntable["AUT"] != "[s.n.]")*/) {
$auteurs=explode("/",$ntable["AUT"]);
for ($i=0; $i\n";
else $data.=" \n";
$data.=" ".htmlspecialchars($entree,ENT_QUOTES,$charset)."\n";
// if ($rejete) {
// $data.=" ".htmlspecialchars($rejete,ENT_QUOTES,$charset)."\n";
// }
$as=array_search($func_author,$tab_functions->table);
if (($as!==false)&&($as!==null)){
$fonction=$as;
}else{
if (array_key_exists($func_author, $authors_function)) {
$fonction = $authors_function[$func_author];
}
$as=array_search($fonction,$tab_functions->table);
if (($as!==false)&&($as!==null)){
$fonction=$as;
}else{
$fonction="070";
}
}
$data.=" ".$fonction."\n";
$data.=" \n";
}
}
}
//Numéro - infos bulletin
if (($ntable["NUM"])/* && ($ntable["NUM"] != "[s.n.]")*/) {
//infos bulletin
$with_bull_info=true;
$data .= "";
$data.=" ".htmlspecialchars($ntable["NUM"],ENT_QUOTES,$charset)."";
$data.="\n";
}
//Congrès
if (($ntable["CONGRTIT"]) || ($ntable["CONGRNUM"]) || ($ntable["CONGRLIE"]) || ($ntable["CONGRDAT"])) {
$data.=" \n";
//Intitulé du congrès
if ($ntable["CONGRTIT"]) {
$data.=" ".htmlspecialchars($ntable["CONGRTIT"],ENT_QUOTES,$charset)."\n";
}
//Numéro du congrès
if ($ntable["CONGRNUM"]) {
$data.=" ".htmlspecialchars($ntable["CONGRNUM"],ENT_QUOTES,$charset)."\n";
}
//Lieu du congrès
if ($ntable["CONGRLIE"]) {
$data.=" ".htmlspecialchars($ntable["CONGRLIE"],ENT_QUOTES,$charset)."\n";
}
//Date du congrès
if ($ntable["CONGRDAT"]) {
$data.=" ".htmlspecialchars($ntable["CONGRDAT"],ENT_QUOTES,$charset)."\n";
}
$data.=" \n";
}
//Réédition
if ($ntable["REED"]) {
$data.=" \n";
$data.=" ".htmlspecialchars($ntable["REED"],ENT_QUOTES,$charset)."\n";
$data.=" \n";
}
//Collection
if ($ntable["COL"]) {
//$pos_deb_subtitle=strpos($ntable["COL"],":");
$pos_deb_num_col=mb_strpos($ntable["COL"],";",0,$charset);
$data.=" \n";
if ($pos_deb_num_col) {
$data.=" ".htmlspecialchars(pmb_substr($ntable["COL"],$pos_deb_num_col+1),ENT_QUOTES,$charset)."\n";
$data.=" ".htmlspecialchars(trim(pmb_substr($ntable["COL"],0,($pos_deb_num_col-1))),ENT_QUOTES,$charset)."\n";
}else{
$data.=" ".htmlspecialchars($ntable["COL"],ENT_QUOTES,$charset)."\n";
}
$data.=" \n";
}
//Nombre de pages
if (($ntable["PAGE"]) && ($ntable["PAGE"] != "[s.p.]")) {
$data.=" \n";
$data.=" ".htmlspecialchars($ntable["PAGE"],ENT_QUOTES,$charset)."\n";
$data.=" \n";
}
//PDPF
if ($ntable["PDPF"]) {
$data.=" \n";
$data.=" ".htmlspecialchars($ntable["PDPF"],ENT_QUOTES,$charset)."\n";
$data.=" \n";
}
//Traitement des Mots-clés
if ($ntable["MOTCLE"]) {
$motcles = explode("/",$ntable["MOTCLE"]);
for ($i=0; $i\n";
$data.=" ".htmlspecialchars($motcles[$i],ENT_QUOTES,$charset)."\n";
$data.=" \n";
}
}
//Résumé
if ($ntable["RESU"]) {
$data.=" \n";
$data.=" ".htmlspecialchars($ntable["RESU"],ENT_QUOTES,$charset)."\n";
$data.=" \n";
}
//Lien
if ($ntable["LIEN"]) {
$data.=" \n";
$data.=" ".htmlspecialchars($ntable["LIEN"],ENT_QUOTES,$charset)."\n";
$data.=" \n";
}
//Notes
if ($ntable["NOTES"]) {
$data.=" \n";
$data.=" ".htmlspecialchars($ntable["NOTES"],ENT_QUOTES,$charset)."\n";
$data.=" \n";
}
//ISBNISSN
if (($ntable["ISBNISSN"]) && ($ntable["ISBNISSN"] != "0000-0000")) {
$isbnissn = explode("/",$ntable["ISBNISSN"]);
$data.=" \n";
$data.=" ".htmlspecialchars($isbnissn[0],ENT_QUOTES,$charset)."\n";
$data.=" \n";
}
//Champs spéciaux
//Candidat-descripteur
if ($ntable["CANDES"]) {
$candes = explode("/", $ntable["CANDES"]);
for ($i=0; $i < count($candes); $i++) {
$data.=" \n";
$data.=" ".htmlspecialchars($candes[$i],ENT_QUOTES,$charset)."\n";
$data.=" \n";
}
}
//Thème
if ($ntable["THEME"]) {
$candes = explode("/", $ntable["THEME"]);
for ($i=0; $i < count($candes); $i++) {
$data.=" \n";
$data.=" ".htmlspecialchars($candes[$i],ENT_QUOTES,$charset)."\n";
$data.=" \n";
}
}
//Nom Propre
if ($ntable["NOMP"]) {
$nomp = explode("/", $ntable["NOMP"]);
for ($i=0; $i < count($nomp); $i++) {
$data.=" \n";
$data.=" ".htmlspecialchars($nomp[$i],ENT_QUOTES,$charset)."\n";
$data.=" \n";
}
}
//Producteur de la fiche
if ($ntable["PRODFICH"]) {
$prodfich = explode("/", $ntable["PRODFICH"]);
for ($i=0; $i < count($prodfich); $i++) {
if($prodfich[$i] && ($prodfich[$i] != "[vide]")){
$tmp_prod_array=explode("-",$prodfich[$i]);
$match_prod=array();
if(preg_match("/asco[0]*([0-9]+)/",mb_strtolower($tmp_prod_array[0]),$match_prod)){
$tmp_prod_array[0]="asco".str_pad($match_prod[1],3,"0",STR_PAD_LEFT);
}elseif(preg_match("/^criavs/",mb_strtolower(trim($tmp_prod_array[0])))){
$tmp_prod_array[0]=mb_strtolower(trim($tmp_prod_array[0]));
}else{
$error.="PRODFICH incorrect: ".$prodfich[$i]."
\n";
}
$data.=" \n";
$data.=" ".htmlspecialchars(trim($tmp_prod_array[0]),ENT_QUOTES,$charset)."\n";
$data.=" \n";
}
}
}
//DIPSPE
if ($ntable["DIPSPE"]/* && ($ntable["DIPSPE"] != "[vide]")*/) {
$data.=" \n";
$data.=" ".htmlspecialchars($ntable["DIPSPE"],ENT_QUOTES,$charset)."\n";
$data.=" \n";
}
//Annexe
if ($ntable["ANNEXE"]) {
$annexe = explode("/", $ntable["ANNEXE"]);
if(count($annexe) == 1){
$annexe = explode(" ; ", $ntable["ANNEXE"]);
}
for ($i=0; $i < count($annexe); $i++) {
$data.=" \n";
$data.=" ".htmlspecialchars($annexe[$i],ENT_QUOTES,$charset)."\n";
$data.=" \n";
}
}
//Lien annexe
if ($ntable["LIENANNE"]) {
$lienanne = explode(" ; ", $ntable["LIENANNE"]);
for ($i=0; $i < count($lienanne); $i++) {
$data.=" \n";
$data.=" ".htmlspecialchars($lienanne[$i],ENT_QUOTES,$charset)."\n";
$data.=" \n";
}
}
//Localisation
if ($ntable["LOC"]) {
$loc = explode("/", $ntable["LOC"]);
for ($i=0; $i < count($loc); $i++) {
if($loc[$i] && ($loc[$i] != "[vide]")){
$tmp_loc_array=explode("-",$loc[$i]);
$match_prod=array();
if(preg_match("/asco[0]*([0-9]+)/",mb_strtolower($tmp_loc_array[0]),$match_prod)){
$tmp_loc_array[0]="asco".$match_prod[1];
}elseif(preg_match("/^criavs/",mb_strtolower(trim($tmp_loc_array[0])))){
$tmp_loc_array[0]=mb_strtolower(trim($tmp_loc_array[0]));
}else{
$error.="LOC incorrect: ".$loc[$i]."
\n";
}
$data.=" \n";
$data.=" ".htmlspecialchars(trim($tmp_loc_array[0]),ENT_QUOTES,$charset)."\n";
$data.=" \n";
$data.=" \n";
$data.=" ".htmlspecialchars(trim($tmp_loc_array[0]),ENT_QUOTES,$charset)."\n";
if ($ntable["SUPPORT"]) {
$data.=" ".htmlspecialchars($ntable["SUPPORT"],ENT_QUOTES,$charset)."\n";
}elseif($ntable["TYPE"]){
$data.=" ".htmlspecialchars($ntable["TYPE"],ENT_QUOTES,$charset)."\n";
}
$data.=" \n";
}
}
}
//Nature du texte
if ($ntable["NATTEXT"] && ($ntable["NATTEXT"] != "[vide]")) {
$data.=" \n";
$data.=" ".htmlspecialchars($ntable["NATTEXT"],ENT_QUOTES,$charset)."\n";
$data.=" \n";
}
//Date du texte
if ($ntable["DATETEXT"]) {
$data.=" \n";
$data.=" ".htmlspecialchars($ntable["DATETEXT"],ENT_QUOTES,$charset)."\n";
$data.=" \n";
}
//Numéro du texte officiel
if ($ntable["NUMTEXOF"]) {
$data.=" \n";
$data.=" ".htmlspecialchars($ntable["NUMTEXOF"],ENT_QUOTES,$charset)."\n";
$data.=" \n";
}
//Date de fin de validité
if ($ntable["DATEVALI"]) {
$data.=" \n";
$data.=" ".htmlspecialchars($ntable["DATEVALI"],ENT_QUOTES,$charset)."\n";
$data.=" \n";
}
// //Date de saisie
// if ($ntable["DATESAIS"]) {
// $data.=" \n";
// $data.=" ".htmlspecialchars($ntable["DATESAIS"],ENT_QUOTES,$charset)."\n";
// $data.=" \n";
// }
//Etat des collections des centres
if ($ntable["ETATCOL"] && ($ntable["ETATCOL"] != "[vide]")) {
$data.=" \n";
$data.=" ".htmlspecialchars($ntable["ETATCOL"],ENT_QUOTES,$charset)."\n";
if ($ntable["SUPPORTPERIO"] && ($ntable["SUPPORTPERIO"] != "[vide]")) {
$data.=" ".htmlspecialchars($ntable["SUPPORTPERIO"],ENT_QUOTES,$charset)."\n";
}
$data.=" \n";
}
//Support pour les documents multimédia
if ($ntable["SUPPORT"]) {
$data.=" \n";
$data.=" ".htmlspecialchars($ntable["SUPPORT"],ENT_QUOTES,$charset)."\n";
$data.=" \n";
}
$data.="\n";
if(!$with_titre){
$error.="Pas de titre pour la notice
\n";
}
if(!$with_titre_perio && ($bl == "a")){
$error.="Pas de titre de périodique pour l'article
\n";
}
if(!$with_bull_info && ($bl == "a")){
$error.="Pas d'information de bulletin pour l'article (NUM, VOL, DATE et DATETEXT vide)
\n";
}
}
if(!$error) {
$r['VALID'] = true;
}else {
$error.=$notice."
\n";
$r['VALID']=false;
}
if($warning){
//$r['WARNING']="Ne bloque pas la conversion: ".$warning.$notice."
\n";
}
if($error){
$r['ERROR'] = "".$error."";
}else{
$r['ERROR'] = "";
}
$r['DATA'] = $data;
return $r;
}
}