source: pmb4.2/trunk/fuentes/pmb/admin/convert/imports/txt2pmbxml/txt2xmluni.inc.php @ 815

Last change on this file since 815 was 815, checked in by jrpelegrina, 4 years ago

Initial release of pmb 4.2

  • Property svn:executable set to *
File size: 18.2 KB
Line 
1<?php
2// +-------------------------------------------------+
3// © 2002-2004 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net)
4// +-------------------------------------------------+
5// $Id: txt2xmluni.inc.php,v 1.23 2013-04-17 08:37:34 mbertin Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) die("no access");
8
9function convert_txt($notice, $s, $islast, $isfirst, $param_path) {
10        global $TabSupport,$TabFonction,$TabLangue,$TabMonth,$sf,$charset;
11       
12        $is_notice_objet=false;
13       
14        //--------------------déclaration tableau d'autorités-----------------------------
15                //déclaration du tableau de correspondance du support physique
16        if (!count($TabSupport)) {
17                $TabSupport["affiche"]="a";
18                $TabSupport["audiocassette"]="i"; // ?? i ou j
19                $TabSupport["carte"]="e";       // ?? e ou f
20                $TabSupport["cédérom"]="m";
21                $TabSupport["diapositive"]="g";
22                $TabSupport["disque compact audio"]="i";        // ?? i ou j
23                $TabSupport["disque vinyle"]="i";       // ?? i ou j
24                $TabSupport["disquette"]="l"; // ?? l ou m
25                $TabSupport["DVD-ROM"]="m";
26                $TabSupport["DVD-vidéo"]="m";
27                $TabSupport["fichier numérique"]="l";
28                $TabSupport["film"]="g";
29                $TabSupport["livre"]="a"; 
30                $TabSupport["périodique"]="a"; 
31                $TabSupport["photographie"]="k";
32                $TabSupport["site Internet"]="l";
33                $TabSupport["transparent"]="g";
34                $TabSupport["vidéocassette"]="g";
35                $TabSupport["texte manuscrit"]="b";
36                $TabSupport["partition musicale imprimée"]="c";
37                $TabSupport["partition musicale manuscrite"]="d";
38                $TabSupport["document cartographique imprimé"]="e";
39                $TabSupport["document cartographique manuscrit"]="f";
40                $TabSupport["enregistrement sonore non musical"]="i";
41                $TabSupport["enregistrement sonore musical"]="j";
42                $TabSupport["document graphique à deux dimensions"]="k";
43                $TabSupport["document électronique"]="l";
44                $TabSupport["document multimédia"]="m";
45                $TabSupport["objet à 3 dimensions"]="r";
46               
47        }
48                //déclaration du tableau de correspondance des fonctions des auteurs secondaires
49        if (!count($TabFonction)) {
50                $TabFonction["adaptateur"]="010";
51                $TabFonction["Adaptateur"]="010";
52                $TabFonction["adaptatrice"]="010";
53                $TabFonction["Adaptatrice"]="010";
54                $TabFonction["cartographe"]="180";
55                $TabFonction["Cartographe"]="180"; 
56                $TabFonction["chef"]="250";
57                $TabFonction["Chef"]="250";
58                $TabFonction["collaborateur"]="205";
59                $TabFonction["Collaborateur"]="205";
60                $TabFonction["collaboratrice"]="205";
61                $TabFonction["Collaboratrice"]="205";
62                $TabFonction["concepteur"]="545";
63                $TabFonction["Concepteur"]="545";
64                $TabFonction["conceptrice"]="545";
65                $TabFonction["Conceptrice"]="545";     
66                $TabFonction["conseiller"]="695";
67                $TabFonction["Conseiller"]="695";
68                $TabFonction["conseillère"]="695";
69                $TabFonction["Conseillère"]="695";
70                $TabFonction["dessinateur"]="150";
71                $TabFonction["Dessinateur"]="150";
72                $TabFonction["dessinatrice"]="150";
73                $TabFonction["Dessinatrice"]="150";
74                $TabFonction["directeur"]="651";
75                $TabFonction["Directeur"]="651"; 
76                $TabFonction["directrice"]="651";
77                $TabFonction["Directrice"]="651"; 
78                $TabFonction["illustrateur"]="440";
79                $TabFonction["Illustrateur"]="440";
80                $TabFonction["illustratrice"]="440";
81                $TabFonction["Illustratrice"]="440";
82                $TabFonction["interviewer"]="470";
83                $TabFonction["Interviewer"]="470";
84                $TabFonction["photographe"]="600";
85                $TabFonction["Photographe"]="600";
86                $TabFonction["préfacier"]="080";
87                $TabFonction["Préfacier"]="080";
88                $TabFonction["préfaciere"]="080";
89                $TabFonction["Préfaciere"]="080";
90                $TabFonction["réalisateur"]="370";
91                $TabFonction["Réalisateur"]="370";
92                $TabFonction["réalisatrice"]="370";
93                $TabFonction["Réalisatrice"]="370";
94                $TabFonction["scénariste"]="690";
95                $TabFonction["Scénariste"]="690";
96                $TabFonction["traducteur"]="730";
97                $TabFonction["Traducteur"]="730";
98                $TabFonction["traductrice"]="730";
99                $TabFonction["Traductrice"]="730";
100        }               
101       
102        if (!count($TabLangue)) {
103                $TabLangue=array(
104                        "albanais"=>"alb",
105                        "allemand"=>"ger",
106                        "anglais"=>"eng",
107                        "arabe"=>"ara",
108                        "breton"=>"bre",
109                        "chinois"=>"chi",
110                        "danois"=>"dan",
111                        "espagnol"=>"spa",
112                        "français"=>"fre",
113                        "français ancien"=>"fro",
114                        "grec classique"=>"grc",
115                        "grec moderne"=>"gre",
116                        "hébreu"=>"heb",
117                        "hongrois"=>"hun",
118                        "indien"=>"hin",
119                        "irlandais"=>"iri",
120                        "italien"=>"ita",
121                        "japonais"=>"jpn",
122                        "latin"=>"lat",
123                        "néerlandais"=>"dut",
124                        "norvégien"=>"nor",
125                        "polonais"=>"pol",
126                        "portugais"=>"por",
127                        "roumain"=>"rum",
128                        "russe"=>"rus",
129                        "suédois"=>"swe",
130                        "tchèque"=>"cze",
131                        "turc"=>"tus",
132                        "yiddish"=>"yid"
133                );
134        }
135       
136        if (!count($TabMonth)) {
137                $TabMonth=array("janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre");
138        }
139       
140        if (!$sf) {
141                $param=$s["FIELDS"][0]["FIELD"];
142                for ($i=0; $i<count($param); $i++) {
143                        $sf[$param[$i]["NAME"]]=$param[$i]["value"];
144                }
145        } 
146       
147        //-----------------------début de la notice----------------------------
148        $data="<notice>\n<rs>n</rs>\n";
149       
150        //Explosion des champs dans un tableau
151        $lignes=explode("\n",$notice);
152        $before=false;
153        $contenu="";
154        for ($i=0; $i<count($lignes); $i++) {
155                if ((!preg_match("/^[A-Z'\- ]+( )*\: /",$lignes[$i]))&&(trim($lignes[$i]))) {
156                        $contenu.=" ".trim($lignes[$i]);
157                } else {
158                        if ($before) {
159                                if ($contenu[strlen($contenu)-1]=="/") $contenu=substr($contenu,0,strlen($contenu)-1);
160                                if (substr($contenu,0,3)=="#_#") {
161                                        $f["URL"][0]=substr($contenu,3,strlen($contenu)-6);
162                                } else {
163                                        $contenu=explode("/",$contenu);
164                                        for ($j=0; $j<count($contenu); $j++) {
165                                                $contenu[$j]=trim($contenu[$j]);
166                                        }
167                                        $f[$index]=$contenu;
168                                }
169                        }
170                        $ligne=explode(": ",trim($lignes[$i]));
171                        $index=trim($ligne[0]);
172                        unset($ligne[0]);
173                        $contenu=implode(": ",$ligne);
174                        $before=true;
175                }
176        }
177       
178        //Traitement
179        //Si pas de titre alors erreur ou notice objet !
180        if (!$f[$sf["titre"]]) {
181                if ($f[$sf["nom_revue"]][0]) {
182                        $f[$sf["titre"]][0]="objet";
183                        $is_notice_objet=true;
184                } else  {
185                        $r['VALID'] = false;
186                        $r['ERROR'] = "Le champ titre est vide ou inexistant";
187                        $r['DATA'] = "";
188                        return $r;
189                }
190        }
191       
192        //Champs généraux
193        $valeur=$f[$sf["support_physique"]];
194        $dt=$TabSupport[$valeur[0]];
195        if (strtolower($valeur[0])=="périodique") {$bl="s";} else {$bl="m";}
196        $data.="<dt>".$dt."</dt>\n";
197        $data.="<bl>".$bl."</bl>\n";
198        $data.="<hl>*</hl>\n<el>1</el>\n<ru>i</ru>\n";
199       
200        //ISBN ou autre
201        if ($f[$sf["isbn"]][0]) {
202                $data.="<f c='010'>\n";
203                $data.="<s c='a'>".htmlspecialchars($f[$sf["isbn"]][0],ENT_QUOTES,$charset)."</s>\n";
204                if ($f[$sf["prix"]][0]) {
205                        $data.="<s c='d'>".htmlspecialchars($f[$sf["prix"]][0],ENT_QUOTES,$charset)."</s>\n";
206                }
207                $data.="</f>\n";
208        }
209       
210        //Langues
211        if (($f[$sf["langue"]][0])||($f[$sf["langue_origine"]][0])) {
212                if (($TabLangue[strtolower($f[$sf["langue"]][0])])||($TabLangue[strtolower($f[$sf["langue_origine"]][0])])) {
213                        $data.="<f c='101'>\n";
214                        if ($TabLangue[strtolower($f[$sf["langue"]][0])]) {
215                                $data.="<s c='a'>".$TabLangue[strtolower($f[$sf["langue"]][0])]."</s>\n";
216                        }
217                        if ($TabLangue[$f[$sf["langue_origine"]][0]]) {
218                                $data.="<s c='c'>".$TabLangue[strtolower($f[$sf["langue_origine"]][0])]."</s>\n";
219                        }
220                        $data.="</f>\n";
221                }
222        }
223       
224        //Titres
225        $valeurs=$f[$sf["titre"]];
226        $data.="<f c='200' ind='  '>\n";
227        if ($f[$sf["article_titre"]]) {
228                if ($f[$sf["article_titre"]][0][strlen($f[$sf["article_titre"]][0])-1]=="'") $espace=""; else $espace=" ";
229                $valeurs[0]=$f[$sf["article_titre"]][0].$espace.$valeurs[0];
230        }
231        for ($i=0; $i<count($valeurs); $i++) {
232                $data.="<s c='a'>".htmlspecialchars($valeurs[$i],ENT_QUOTES,$charset)."</s>\n";
233        }
234        $data.="</f>\n";
235       
236        //Série
237        $valeurs=$f[$sf["serie"]];
238        if (($valeurs[0])&&(!$is_notice_objet)) {
239                $valeurs_=explode(".",$valeurs[0]);
240                if ((count($valeurs_)>1)&&(($s["OPTIONS"][0]["OPTION"][0]["NAME"]=="coupe_titre_gen")&&($s["OPTIONS"][0]["OPTION"][0]["value"]=="yes"))) {
241                        $numero_serie=trim($valeurs_[count($valeurs_)-1]);
242                        unset($valeurs_[count($valeurs_)-1]);
243                        $valeurs[0]=implode(".",$valeurs_);
244                } else $numero_serie="";
245                $data.="<f c='461' ind='  '>\n";
246                if ($f[$sf["article_serie"]]) {
247                        if ($f[$sf["article_serie"]][0][strlen($f[$sf["article_serie"]][0])-1]=="'") $espace=""; else $espace=" ";
248                        $valeurs[0]=$f[$sf["article_serie"]][0].$espace.$valeurs[0];
249                }
250                for ($i=0; $i<count($valeurs); $i++) {
251                        $data.="<s c='t'>".htmlspecialchars($valeurs[$i],ENT_QUOTES,$charset)."</s>\n";
252                        if ($numero_serie) {
253                                $data.="<s c='v'>".htmlspecialchars($numero_serie,ENT_QUOTES,$charset)."</s>\n";
254                        }
255                }
256                $data.="</f>\n";
257        }
258       
259        //Auteurs
260        $valeurs=$f[$sf["auteurs_principaux"]];
261        if (($valeurs[0])&&(!$is_notice_objet)) {
262                //Auteur principal
263                $data.="<f c='700' ind='  '>\n";
264                $elements=explode(",",$valeurs[0]);
265                if (count($elements)>1) {
266                        $rejete=trim($elements[count($elements)-1]);
267                        unset($elements[count($elements)-1]);
268                        $entree=trim(implode(",",$elements));
269                        $data.="<s c='a'>".htmlspecialchars($entree,ENT_QUOTES,$charset)."</s>\n";
270                        $data.="<s c='b'>".htmlspecialchars($rejete,ENT_QUOTES,$charset)."</s>\n";
271                } else $data.="<s c='a'>".htmlspecialchars($valeurs[0],ENT_QUOTES,$charset)."</s>\n";
272                $data.="<s c='4'>070</s>\n";
273                $data.="</f>\n";               
274               
275                //Co-auteurs
276                for ($i=1; $i<count($valeurs); $i++) {
277                        $data.="<f c='701' ind='  '>\n";
278                        $elements=explode(",",$valeurs[$i]);
279                        if (count($elements)>1) {
280                                $rejete=trim($elements[count($elements)-1]);
281                                unset($elements[count($elements)-1]);
282                                $entree=trim(implode(",",$elements));
283                                $data.="<s c='a'>".htmlspecialchars($entree,ENT_QUOTES,$charset)."</s>\n";
284                                $data.="<s c='b'>".htmlspecialchars($rejete,ENT_QUOTES,$charset)."</s>\n";
285                        } else $data.="<s c='a'>".htmlspecialchars($valeurs[$i],ENT_QUOTES,$charset)."</s>\n";
286                        $data.="<s c='4'>070</s>\n";
287                        $data.="</f>\n";               
288                }
289               
290                //Auteurs secondaires
291                $valeurs=$f[$sf["auteurs_secondaires"]];
292                if (($valeurs[0])&&(!$is_notice_objet)) {
293                        //Co-auteurs
294                        for ($i=0; $i<count($valeurs); $i++) {
295                                $data.="<f c='702' ind='  '>\n";
296                                $fonction="070";
297                                //Recherche de la fonction
298                                $elements=explode(" ",$valeurs[$i]);
299                                if ($TabFonction[strtolower(trim($elements[count($elements)-1]))]) {
300                                                $fonction=$TabFonction[strtolower(trim($elements[count($elements)-1]))];
301                                                unset($elements[count($elements)-1]);
302                                }
303                                $valeurs[$i]=implode(" ",$elements);
304                                $elements=explode(",",$valeurs[$i]);
305                                if (count($elements)>1) {
306                                        $rejete=trim($elements[count($elements)-1]);
307                                        unset($elements[count($elements)-1]);
308                                        $entree=trim(implode(",",$elements));
309                                        $data.="<s c='a'>".htmlspecialchars($entree,ENT_QUOTES,$charset)."</s>\n";
310                                        $data.="<s c='b'>".htmlspecialchars($rejete,ENT_QUOTES,$charset)."</s>\n";
311                                } else $data.="<s c='a'>".htmlspecialchars($elements[0],ENT_QUOTES,$charset)."</s>\n";
312                                $data.="<s c='4'>".$fonction."</s>\n";
313                                $data.="</f>\n";               
314                        }
315                }
316        }
317       
318        //Editeurs
319        if (($f[$sf["editeur"]][0])&&(!$is_notice_objet)) {
320                $data.="<f c='210' ind='  '>\n";
321                $data.="<s c='c'>".htmlspecialchars($f[$sf["editeur"]][0],ENT_QUOTES,$charset)."</s>\n";
322                if (($f[$sf["annee_edition"]][0])&&($f[$sf["support_physique"]][0]!="périodique")) {
323                        $data.="<s c='d'>".htmlspecialchars($f[$sf["annee_edition"]][0],ENT_QUOTES,$charset)."</s>\n";
324                }
325                $data.="</f>\n";
326        }
327       
328       
329        //Périodique
330        if ($f[$sf["support_physique"]][0]=="périodique") {
331                $data.="<f c='464'>\n";
332                //Nom de la revue
333                if ($f[$sf["article_nom_revue"]][0]) {
334                        if ($f[$sf["article_nom_revue"]][0][strlen($f[$sf["article_nom_revue"]][0])-1]!="'") {
335                                $espace=" ";
336                        } else $espcae="";
337                        $article=$f[$sf["article_nom_revue"]][0];
338                } else {
339                        $article="";
340                        $espace="";
341                }
342                $data.="<s c='t'>".htmlspecialchars($article.$espace.$f[$sf["nom_revue"]][0],ENT_QUOTES,$charset)."</s>\n";
343                //Volume
344                $vols=explode(",",$f[$sf["numero_revue"]][0]);
345                if (count($vols)) {
346                        $vol=$vols[0];
347                        if ($f[$sf["numero_revue"]][1]=="cyclique") $vol.="/".$f[$sf["annee_edition"]][0];
348                        if (count($vols)==3) {
349                                $vol.=" ".$vols[1];
350                                $id_mention_date=2;
351                        } else $id_mention_date=1;
352                        $mention_date=trim($vols[$id_mention_date])." ".$f[$sf["annee_edition"]][0];
353                        $data.="<s c='v'>".htmlspecialchars(substr($vol,0,20),ENT_QUOTES,$charset)."</s>\n";
354                        $data.="<s c='d'>".htmlspecialchars($mention_date,ENT_QUOTES,$charset)."</s>\n";
355                        $date_p="";
356                        for ($m=0; $m<count($TabMonth); $m++) {
357                                $pm=strpos(strtolower($vols[1]),$TabMonth[$m]);
358                                if (!($pm===false)) {
359                                        $date_p=$f[$sf["annee_edition"]][0]."-".($m+1)."-01";
360                                        break;
361                                }
362                        }
363                        if ($date_p) $data.="<s c='e'>".htmlspecialchars($date_p,ENT_QUOTES,$charset)."</s>\n";
364                }
365                if ($f[$sf["collation_pagination"]][0]) {
366                        $data.="<s c='p'>".htmlspecialchars($f[$sf["collation_pagination"]][0],ENT_QUOTES,$charset)."</s>\n";
367                }
368                if ($is_notice_objet) $data.="<s c='z'>objet</s>";
369                $data.="</f>\n";
370        }
371       
372        //Collation
373        if (($f[$sf["collation_pagination"]][0])&&($f[$sf["support_physique"]][0]!="périodique")) {
374                $data.="<f c='215'>\n";
375                        $data.="<s c='a'>".htmlspecialchars($f[$sf["collation_pagination"]][0],ENT_QUOTES,$charset)."</s>\n";
376                $data.="</f>\n";
377        }
378       
379        //Notes
380        if ($f[$sf["notes"]][0]) {
381                $data.="<f c='300'>\n";
382                        $data.="<s c='a'>".htmlspecialchars($f[$sf["notes"]][0],ENT_QUOTES,$charset)."</s>\n";
383                $data.="</f>\n";
384        }
385       
386        //Note de contenu
387        if ($f[$sf["notes_contenu"]][0]) {
388                $data.="<f c='327'>\n";
389                        $data.="<s c='a'>".htmlspecialchars($f[$sf["notes_contenu"]][0],ENT_QUOTES,$charset)."</s>\n";
390                $data.="</f>\n";
391        }
392       
393        //Résumé
394        if ($f[$sf["resume"]][0]) {
395                $resume=implode("/",$f[$sf["resume"]]);
396                $data.="<f c='330'>\n";
397                        $data.="<s c='a'>".htmlspecialchars($resume,ENT_QUOTES,$charset)."</s>\n";
398                $data.="</f>\n";
399        }
400       
401        //Collection et sous collection
402        if (($f[$sf["collection"]][0])&&(!$is_notice_objet)) {
403                $data.="<f c='225'>\n";
404                $numero_coll=explode(";", $f[$sf["collection"]][0]);
405                $numero_subcoll=explode(";", $f[$sf["collection"]][1]);
406                $data.="<s c='a'>".htmlspecialchars(trim($numero_coll[0]),ENT_QUOTES,$charset)."</s>\n";
407                if (trim($numero_coll[1])||(trim($numero_subcoll[1]))) {
408                        $nc=array();
409                        if (trim($numero_coll[1])) 
410                                $nc[0]=trim($numero_coll[1]);
411                        if (trim($numero_subcoll[1]))
412                                $nc[1]=trim($numero_subcoll[1]);
413                        $numero_collection=implode(" ; ",$nc);
414                }
415                if ($f[$sf["collection"]][1]) {
416                        $data.="<s c='i'>".htmlspecialchars(trim($numero_subcoll[0]),ENT_QUOTES,$charset)."</s>\n";
417                }
418                if  ($numero_collection) {
419                        $data.="<s c='v'>".htmlspecialchars($numero_collection,ENT_QUOTES,$charset)."</s>\n";
420                }
421                $data.="</f>\n";
422        }
423       
424        //Mots clés
425        if ($f[$sf["mots_cles"]][0]) {
426                $data.="<f c='610'>\n";
427                $mcle=array();
428                for ($i=0; $i<count($f[$sf["mots_cles"]]); $i++) {
429                        $mcle[]=$f[$sf["mots_cles"]][$i];
430                }
431                $mcle_f=implode(" / ",$mcle);
432                $data.="<s c='a'>".htmlspecialchars($mcle_f,ENT_QUOTES,$charset)."</s>\n";
433                $data.="</f>\n";
434        }
435       
436        //Thésaurus
437        if (($f[$sf["descripteurs"]][0])&&(!$is_notice_objet)) {
438                for ($i=0; $i<count($f[$sf["descripteurs"]]); $i++) {
439                        $data.="<f c='606'>\n";
440                        $data.="<s c='a'>".htmlspecialchars($f[$sf["descripteurs"]][$i],ENT_QUOTES,$charset)."</s>\n";
441                        $data.="</f>\n";
442                }
443        }
444       
445        //URL
446        if ($f["URL"][0]) {
447                $data.="<f c='856'>\n";
448                $data.="<s c='u'>".htmlspecialchars($f["URL"][0],ENT_QUOTES,$charset)."</s>\n";
449                $data.="</f>\n";
450        }
451       
452        //Origine
453        if ($f[$sf["origine"]][0]) {
454                $data.="<f c='801'>\n";
455                $data.="<s c='b'>".htmlspecialchars($f[$sf["origine"]][0],ENT_QUOTES,$charset)."</s>\n";
456                $data.="</f>\n";
457        }
458       
459        //Champs bizarres en 90x
460        //Thèmes
461        if ($f[$sf["themes"]][0]) {
462                for ($i=0; $i<count($f[$sf["themes"]]); $i++) {
463                        $data.="<f c='900'>\n";
464                        $data.="<s c='a'>".htmlspecialchars($f[$sf["themes"]][$i],ENT_QUOTES,$charset)."</s>\n";
465                        $data.="</f>\n";
466                }
467        }
468       
469        //Genre ou forme
470        if ($f[$sf["genre"]][0]) {
471                for ($i=0; $i<count($f[$sf["genre"]]); $i++) {
472                        $data.="<f c='901'>\n";
473                        $data.="<s c='a'>".htmlspecialchars($f[$sf["genre"]][$i],ENT_QUOTES,$charset)."</s>\n";
474                        $data.="</f>\n";
475                }
476        }
477       
478        //Discipline
479        if ($f[$sf["discipline"]][0]) {
480                for ($i=0; $i<count($f[$sf["discipline"]]); $i++) {
481                        $data.="<f c='902'>\n";
482                        $data.="<s c='a'>".htmlspecialchars($f[$sf["discipline"]][$i],ENT_QUOTES,$charset)."</s>\n";
483                        $data.="</f>\n";
484                }
485        }
486       
487        //Année de péremption
488        if ($f[$sf["annee_peremption"]][0]) {
489                $data.="<f c='903'>\n";
490                $data.="<s c='a'>".htmlspecialchars($f[$sf["annee_peremption"]][0],ENT_QUOTES,$charset)."</s>\n";
491                $data.="</f>\n";
492        }
493       
494        //Date de saisie
495        if ($f[$sf["date_saisie"]][0]) {
496                $annee=substr($f[$sf["date_saisie"]][0],0,4);
497                $mois=substr($f[$sf["date_saisie"]][0],4,2);
498                $jour=substr($f[$sf["date_saisie"]][0],6,2);
499                if (checkdate($mois,$jour,$annee)) {
500                        $date=$annee."-".$mois."-".$jour;
501                        $data.="<f c='904'>\n";
502                        $data.="<s c='a'>".$date."</s>\n";
503                        $data.="</f>\n";
504                }
505        }
506       
507        //Type de nature
508        if ($f[$sf["type_document"]][0]) {
509                $data.="<f c='905'>\n";
510                $data.="<s c='a'>".htmlspecialchars($f[$sf["type_document"]][0],ENT_QUOTES,$charset)."</s>\n";
511                $data.="</f>\n";
512        }
513       
514        //Niveau
515        if ($f[$sf["niveau"]][0]) {
516                for ($i=0; $i<count($f[$sf["niveau"]]); $i++) {
517                        $data.="<f c='906'>\n";
518                        $data.="<s c='a'>".htmlspecialchars($f[$sf["niveau"]][$i],ENT_QUOTES,$charset)."</s>\n";
519                        $data.="</f>\n";
520                }
521        }
522       
523        //Exemplaires
524        if ($f[$sf["numero_ex"]][0]) {
525                for ($i=0; $i<count($f[$sf["numero_ex"]]); $i++) {
526                        $data.="<f c='995'>\n";
527                        //Section
528                        $data.="<s c='t'>".htmlspecialchars($f[$sf["type_document"]][0],ENT_QUOTES,$charset)."</s>\n";
529                        //Code statistique
530                        if ($f[$sf["code_stat"]][0]) {
531                                $data.="<s c='q'>".htmlspecialchars($f[$sf["code_stat"]][0],ENT_QUOTES,$charset)."</s>\n";
532                        }
533                        //Numéro d'exemplaire
534                        $data.="<s c='f'>".htmlspecialchars($f[$sf["numero_ex"]][$i],ENT_QUOTES,$charset)."</s>\n";
535                        if ($f[$sf["cote"]][0]) {
536                            $cote_bretagne=implode("/",$f[$sf["cote"]]);
537                                $data.="<s c='k'>".htmlspecialchars($cote_bretagne,ENT_QUOTES,$charset)."</s>\n";
538                        }
539                        //Type de document
540                        $data.="<s c='r'>".htmlspecialchars(strtolower($f[$sf["support_physique"]][0]),ENT_QUOTES,$charset)." ".htmlspecialchars($f[$sf["groupe_pret"]][0],ENT_QUOTES,$charset)."</s>\n";
541                        //Commentaire
542                        if ($f[$sf["commentaires_ex"]][0]) {
543                                $data.="<s c='u'>".htmlspecialchars($f[$sf["commentaires_ex"]][0],ENT_QUOTES,$charset)."</s>\n";
544                        }
545                        //Localisation
546                        if ($f[$sf["localisation"]][0]) {
547                                $data.="<s c='a'>".htmlspecialchars($f[$sf["localisation"]][0],ENT_QUOTES,$charset)."</s>\n";
548                        }
549                        $data.="</f>\n";
550                }
551        }
552
553        $data.="</notice>\n";
554        $r['VALID'] = true;
555        $r['ERROR'] = "";
556        $r['DATA'] = $data;
557        return $r;
558}
559?>
Note: See TracBrowser for help on using the repository browser.