"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\n"; } if (($ntable["LIEU"])/* && ($ntable["LIEU"] != "[s.l.]")*/) { $lieux = explode("/", $ntable["LIEU"]); for ($i=0; $i\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"; // 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.=" \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); }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]; }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; }