source: pmb4.2/trunk/fuentes/pmb/admin/import/iimport_expl.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: 57.3 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: iimport_expl.php,v 1.71 2015-04-03 11:16:23 jpermanne Exp $
6
7// définition du minimum necessaire
8$base_path="../..";
9$base_auth = "ADMINISTRATION_AUTH";
10$base_title = "";
11require_once ("$base_path/includes/init.inc.php");
12
13// les requis par iimport_expl.php ou ses sous modules
14require_once ("$include_path/isbn.inc.php");
15require_once ("$include_path/marc_tables/$pmb_indexation_lang/empty_words");
16require_once ("$class_path/iso2709.class.php");
17require_once ("$class_path/author.class.php");
18require_once ("$class_path/serie.class.php");
19require_once ("$class_path/editor.class.php");
20require_once ("$class_path/collection.class.php");
21require_once ("$class_path/subcollection.class.php");
22require_once ("$class_path/expl.class.php");
23require_once ("$class_path/lender.class.php");
24require_once ("$class_path/docs_type.class.php");
25require_once ("$class_path/docs_section.class.php");
26require_once ("$class_path/docs_statut.class.php");
27require_once ("$class_path/docs_location.class.php");
28require_once ("$class_path/docs_codestat.class.php");
29require_once ("$class_path/indexint.class.php");
30require_once ("$class_path/origine_notice.class.php");
31require_once ("$class_path/marc_table.class.php");
32require_once ("$class_path/lender.class.php");
33require_once ("$class_path/notice.class.php");
34require_once ("$class_path/titre_uniforme.class.php");
35require_once($class_path."/origin.class.php");
36require_once("$include_path/parser.inc.php");
37
38require_once("import_func.inc.php");
39
40$name_func="func_import";
41
42if($$name_func){
43        $$name_func.=".php";
44}
45
46//J'efface la fonction d'import de la session au début de l'import
47if((!$file_submit && $action=="preload" && !$$name_func) || ($action=="beforeupload" && !$$name_func)){
48        $_SESSION["func_import_model"]="";
49}
50
51//Controle que la fonction d'import existe
52$trouve=false;
53$table_list_func_import=array();
54if($$name_func){
55        if($$name_func == $pmb_import_modele){
56                $trouve=true;
57        }else{
58                if(file_exists("func_import_subst.xml")){
59                $table_list_func_import=_parser_text_no_function_(file_get_contents("func_import_subst.xml"),"CATALOG");
60        }elseif(file_exists("func_import.xml")){
61                $table_list_func_import=_parser_text_no_function_(file_get_contents("func_import.xml"),"CATALOG");
62        }
63        if(is_array($table_list_func_import["ITEM"]) && count($table_list_func_import["ITEM"])){
64                foreach ( $table_list_func_import["ITEM"] as $value ) {
65                        if($value["FUNCTION"] == $$name_func){
66                                $trouve=true;
67                                break;
68                        }
69                }
70        }
71        }
72}
73
74$func_import_model="";
75if(!$trouve){
76        if($_SESSION["func_import_model"]){
77                $func_import_model=$_SESSION["func_import_model"];
78        }elseif(!$pmb_import_modele) {
79                $func_import_model="func_bdp.inc.php";
80        } else {
81                $func_import_model=$pmb_import_modele;
82        }
83}else{
84        $func_import_model=$$name_func;
85        $_SESSION["func_import_model"]=$func_import_model;//Je garde la fonction d'import sélectionnée jusqu'à la fin
86}
87if (file_exists($func_import_model)) {
88        require_once($func_import_model);
89} else {
90        error_message("", sprintf($msg["admin_error_file_import_modele"],$func_import_model), 1, "./admin.php?categ=param");
91        exit;
92}
93
94//Gestion de l'encodage du fichier d'import
95if(isset($encodage_fic_source)){
96        $_SESSION["encodage_fic_source"]=$encodage_fic_source;
97}elseif($_SESSION["encodage_fic_source"]){
98        $encodage_fic_source=$_SESSION["encodage_fic_source"];
99}
100
101print "<div id='contenu-frame'>" ;
102
103$nom_fichier_transfert_ftp = "unimarc".(defined("LOCATION")?"_".constant("LOCATION"):"").".fic";
104
105$tmp_file = $_FILES['userfile']['tmp_name'];
106if (!isset($from_file)) $from_file = $_FILES['userfile']['name'];
107$to_file = $base_path.'/temp/'.basename($tmp_file);
108
109if ($sub == "import_expl") {
110        echo window_title($msg[520].$msg[1003].$msg[1001]);
111        /* the name of the lender is read in the table */
112        if ($book_lender_id!="") {
113                $sql_rech="select lender_libelle from lenders where idlender = '".$book_lender_id."' ";
114                $sql_result_rech = pmb_mysql_query($sql_rech) or die ("Couldn't select lenders ! = ".$sql_rech);
115                if (pmb_mysql_num_rows($sql_result_rech)==0) {
116                        $book_lender_name = $msg[561];
117                } else {
118                        $book_lender_name = pmb_mysql_result($sql_result_rech,0,"lender_libelle");
119                }
120        } else {
121                $book_lender_name = $msg[561];
122        }
123} else {
124        echo window_title($msg[500].$msg[1003].$msg[1001]);
125}
126
127switch ($action) {
128        case 'beforeupload':
129                if ($sub == "import_expl") {
130                        $book_lender_id = "";
131                        $book_statut_id = "";
132                        print $tpl_beforeupload_expl ;
133                } else {
134                        // import de notice
135                         print $tpl_beforeupload_notices ;
136                }
137        break;
138        case 'afterupload':
139                if (!$statutnot) $statutnot = 1 ;
140                if ($sub == "import_expl") {
141                        if ($book_lender_id==0 || $book_lender_id=="") {
142                                print $msg[561];
143                                break;
144                        }
145                        if ($book_statut_id==0 || $book_statut_id=="") {
146                                print $msg[561];
147                                break;
148                        }
149                        if ($tmp_file=="") {
150                                printf ($msg[503],$from_file); /* wrong permissions to copy the file %s ... Contact your admin... */
151                                break;
152                        }
153                        if (!move_uploaded_file($tmp_file,$to_file)) {
154                                printf ($msg[504],$from_file); /* Fail to copy %s, Contact your admin... */
155                        } else {
156                                printf ($msg[505],$from_file); /* File transfered, Loading is about to go on */
157                                print "<form class='form-$current_module' NAME=\"afterupload\" METHOD=\"post\" ACTION=\"iimport_expl.php\">";
158                                print "<INPUT NAME=\"categ\" TYPE=\"hidden\" value=\"import\" />";
159                                print "<INPUT NAME=\"sub\" TYPE=\"hidden\" value=\"import_expl\" />";
160                                print "<INPUT NAME=\"action\" TYPE=\"hidden\" value=\"preload\" />";
161                                print "<INPUT NAME=\"book_lender_id\" TYPE=\"hidden\" value=\"".$book_lender_id."\" />";
162                                print "<INPUT NAME=\"book_statut_id\" TYPE=\"hidden\" value=\"".$book_statut_id."\" />";
163                                print "<input type=\"hidden\" name=\"file_submit\" value=\"$to_file\" />";
164                                print "<input type=\"hidden\" name=\"from_file\" value=\"$from_file\" />";
165                                print "<INPUT TYPE=\"hidden\" NAME=\"isbn_mandatory\" VALUE=\"$isbn_mandatory\" />\n";
166                                print "<INPUT TYPE=\"hidden\" NAME=\"isbn_only\" VALUE=\"$isbn_only\" />\n";
167                                print "<INPUT TYPE=\"hidden\" NAME=\"isbn_dedoublonnage\" VALUE=\"$isbn_dedoublonnage\" />\n";
168                                print "<INPUT TYPE=\"hidden\" NAME=\"cote_mandatory\" VALUE=\"$cote_mandatory\" />\n";
169                                print "<INPUT TYPE=\"hidden\" NAME=\"tdoc_codage\" VALUE=\"$tdoc_codage\" />\n";
170                                print "<INPUT TYPE=\"hidden\" NAME=\"statisdoc_codage\" VALUE=\"$statisdoc_codage\" />\n";
171                                print "<INPUT TYPE=\"hidden\" NAME=\"sdoc_codage\" VALUE=\"$sdoc_codage\" />\n";
172                                print "<INPUT TYPE=\"hidden\" NAME=\"statutnot\" VALUE=\"$statutnot\" />\n";
173                                print "<INPUT TYPE=\"hidden\" NAME=\"book_location_id\" VALUE=\"$book_location_id\" />\n";
174                                print "<INPUT TYPE=\"hidden\" NAME=\"que_faire\" VALUE=\"$que_faire\" />\n";
175                                print "<INPUT TYPE=\"hidden\" NAME=\"link_generate\" VALUE=\"$link_generate\" />\n";
176                                print "<input type='hidden' name='authorities_notices' value='".$authorities_notices."' />\n";
177                                print "<input type='hidden' name='authorities_default_origin' value='".$authorities_default_origin."' />\n";
178                                print "</FORM>";
179                                print "<SCRIPT>setTimeout(\"document.afterupload.submit()\",2000);</SCRIPT>";
180                        }
181                } else {
182                        // import de notice
183                        if ($to_file=="") {
184                            printf ($msg[503],$from_file); /* wrong permissions to copy the file %s ... Contact your admin... */
185                            break;
186                        }
187                        if (!move_uploaded_file($tmp_file,$to_file)) {
188                            printf ($msg[504],$from_file); /* Fail to copy %s, Contact your admin... */
189                        } else {
190                                printf ($msg[505],$from_file); /* File transfered, Loading is about to go on */
191                                print "<form class='form-$current_module' NAME=\"afterupload\" METHOD=\"post\" ACTION=\"iimport_expl.php\">";
192                                print "<INPUT NAME=\"categ\" TYPE=\"hidden\" value=\"import\" />";
193                                print "<INPUT NAME=\"sub\" TYPE=\"hidden\" value=\"import\" />";
194                                print "<INPUT NAME=\"action\" TYPE=\"hidden\" value=\"preload\" />";
195                                print "<input type=\"hidden\" name=\"file_submit\" value=\"$to_file\" />";
196                                print "<input type=\"hidden\" name=\"from_file\" value=\"$from_file\" />";
197                                print "<INPUT TYPE=\"hidden\" NAME=\"isbn_mandatory\" VALUE=\"$isbn_mandatory\" />\n";
198                                print "<INPUT TYPE=\"hidden\" NAME=\"isbn_dedoublonnage\" VALUE=\"$isbn_dedoublonnage\" />\n";
199                                print "<INPUT TYPE=\"hidden\" NAME=\"isbn_only\" VALUE=\"$isbn_only\" />\n";
200                                print "<INPUT TYPE=\"hidden\" NAME=\"statutnot\" VALUE=\"$statutnot\" />\n";
201                                print "<INPUT TYPE=\"hidden\" NAME=\"que_faire\" VALUE=\"$que_faire\" />\n";
202                                print "<INPUT TYPE=\"hidden\" NAME=\"link_generate\" VALUE=\"$link_generate\" />\n";
203                                print "<input type='hidden' name='authorities_notices' value='".$authorities_notices."' />\n";
204                                print "<input type='hidden' name='authorities_default_origin' value='".$authorities_default_origin."' />\n";
205                                print "</FORM>";
206                                print "<SCRIPT>setTimeout(\"document.afterupload.submit()\",2000);</SCRIPT>";
207                        }
208                }
209                break;
210        case 'preload':
211                if ($sub == "import_expl") {
212                        /* Does the file exist ? */
213                        if ($file_submit=="") {
214                                /* l'utilisateur n'est pas passé par le téléchargement du fichier */
215                                $filename = $base_path."/admin/import/".$nom_fichier_transfert_ftp;
216                                $from_file = "unimarc".(defined("LOCATION")?"_".constant("LOCATION"):"").".fic";
217                        } else {
218                                $filename=$file_submit;
219                        }
220                        if ($book_lender_id=="" || $book_statut_id=="" || $isbn_mandatory=="" || $cote_mandatory=="" || $book_location_id=="" || $statutnot=="") {
221                                /* l'utilisateur n'est pas passé par le téléchargement du fichier, il faut qu'il choisisse un prêteur s'il n'en a pas communiqué auparavant */
222                                print "
223                                        <form class='form-$current_module' NAME=\"preload\" METHOD=\"post\" ACTION=\"iimport_expl.php\">
224                                                <h3>".$msg['import_expl_form_titre']."</h3>
225                                                <div class='form-contenu'>
226                                                <div class='row'>
227                                                        <div class='colonne2'>
228                                                                <label class='etiquette' for='isbn_obligatoire'>$msg[564]</label><br />
229                                                                <INPUT TYPE='radio' NAME='isbn_mandatory' id='io1' VALUE='1' CLASS='radio' /><label for='io1'> $msg[40] </label>
230                                                                <INPUT TYPE='radio' NAME='isbn_mandatory' id='io0' VALUE='0' CLASS='radio' checked='checked' /><label for='io0'> $msg[39] </label>
231                                                        </div>
232                                                        <div class='colonne-suite'>
233                                                                <label class='etiquette' for='isbn_dedoublonnage'>$msg[568]</label><br />
234                                                                <INPUT TYPE='radio' NAME='isbn_dedoublonnage' id='di1' VALUE='1' CLASS='radio' checked='checked' /><label for='di1'> $msg[40] </label>
235                                                                <INPUT TYPE='radio' NAME='isbn_dedoublonnage' id='di0' VALUE='0' CLASS='radio' /><label for='di0'> $msg[39] </label>
236                                                                <input type='checkbox' name='isbn_only' id='ionly' value='1'/><label for='ionly'> ".$msg["ignore_issn"]." </label>
237                                                        </div>
238                                                </div>
239                                                <div class='row'>&nbsp;</div>
240                                                <div class='row'>
241                                <div class='colonne2'> 
242                                        <label class='etiquette' for='statutnot'>$msg[import_statutnot]</label>
243                                        <div>
244                                        ".gen_liste_multiple ("select id_notice_statut, gestion_libelle from notice_statut order by 2", "id_notice_statut", "gestion_libelle", "id_notice_statut", "statutnot", "", 1, "", "","","",0)."
245                                        </div>
246                                </div>
247                                <div class='colonne-suite'>
248                                        <label class='etiquette' for='generer_lien'>".$msg['import_genere_liens']."</label><br />
249                                        <INPUT TYPE='radio' NAME='link_generate' id='link1' VALUE=' 1' CLASS='radio' /><label for='link1'> $msg[40] </label>
250                                <INPUT TYPE='radio' NAME='link_generate' id='link0' VALUE='0' CLASS='radio' checked='checked' /><label for='link0'> $msg[39] </label>
251                                </div>
252                        </div>
253                        <div class='row'>&nbsp;</div>
254                                <div class='row'>
255                                        <div class='colonne2'>
256                                                &nbsp;<br />
257                                                &nbsp;
258                                        </div>
259                                        <div class='colonne-suite'>
260                                                                <label class='etiquette' for='authorities_notices'>".htmlentities($msg['import_with_authorities_notices'],ENT_QUOTES,$charset)."</label><br />
261                                                                <input type='radio' name='authorities_notices' id='authorities_notices1' value='1' class='radio' /><label for='authorities_notices1'>".htmlentities($msg[40],ENT_QUOTES,$charset)."</label>                             
262                                                                <input type='radio' name='authorities_notices' id='authorities_notices0' value='0' class='radio' checked='checked'/><label for='authorities_notices0'>".htmlentities($msg[39],ENT_QUOTES,$charset)."</label>
263                                </div>
264                                </div>
265                                <div class='row'>&nbsp;</div>
266                                <div clas='row'>
267                                        <div class='colonne2'>
268                                                &nbsp;<br />
269                                                &nbsp;
270                                        </div>
271                                        <div class='colonne-suite'>
272                                                <label class='etiquette' for='authorities_default_origin'>".htmlentities($msg['import_authorities_origin_default_value'],ENT_QUOTES,$charset)."</label><br />
273                                                                ".origin::gen_combo_box("authorities","authorities_default_origin")."
274                                        </div>
275                                </div> 
276                                <div class='row'>&nbsp;</div>
277                                                <div class='row'><hr /></div>
278                                                <div class='row'>
279                            <label class='etiquette' for='prêteur statut'>$msg[560]</label>
280                            </div>
281                        <div class='row'>".
282                            lender::gen_combo_box($book_lender_id)."&nbsp;&nbsp;".
283                            docs_statut::gen_combo_box($book_statut_id)."
284                            </div>
285                            <div class='row'>
286                            <label class='etiquette' for='localisation'>$msg[import_localisation]</label>
287                                </div>
288                        <div class='row'>".
289                                docs_location::gen_combo_box($deflt_docs_location)."
290                            </div>
291                        <div class='row'><hr /></div>
292                        <div class='row'>
293                            <label class='etiquette' for='cote_obligatoire'>$msg[566]</label>
294                            </div>
295                        <div class='row'>
296                            <INPUT TYPE='radio' NAME='cote_mandatory' VALUE='1' CLASS='radio' /> $msg[40]
297                            <INPUT TYPE='radio' NAME='cote_mandatory' VALUE='0' CLASS='radio' checked='checked' /> $msg[39]
298                            </div>
299                        <div class='row'><hr /></div>
300                        <div class='row'>
301                            <label class='etiquette'>$msg[17]</label>
302                            </div>
303                        <div class='row'>
304                            <INPUT TYPE='radio' NAME='tdoc_codage' VALUE='1' CLASS='radio' /> ".$msg["import_expl_codage_proprio"]."
305                            <INPUT TYPE='radio' NAME='tdoc_codage' VALUE='0' CLASS='radio' checked='checked' /> ".$msg["import_expl_codage_generique"]."
306                            </div>
307                        <div class='row'>
308                            <label class='etiquette'>$msg[24]</label>
309                            </div>
310                        <div class='row'>
311                            <INPUT TYPE='radio' NAME='statisdoc_codage' VALUE='1' CLASS='radio' /> ".$msg["import_expl_codage_proprio"]."
312                            <INPUT TYPE='radio' NAME='statisdoc_codage' VALUE='0' CLASS='radio' checked='checked' /> ".$msg["import_expl_codage_generique"]."
313                            </div>
314                        <div class='row'>
315                            <label class='etiquette'>$msg[19]</label>
316                            </div>
317                        <div class='row'>
318                            <INPUT TYPE='radio' NAME='sdoc_codage' VALUE='1' CLASS='radio' /> ".$msg["import_expl_codage_proprio"]."
319                            <INPUT TYPE='radio' NAME='sdoc_codage' VALUE='0' CLASS='radio' checked='checked' /> ".$msg["import_expl_codage_generique"]."
320                            </div>
321                        <div class='row'>
322                            <label class='etiquette'>$msg[21]</label>
323                            </div>
324                        </div>
325                    <INPUT TYPE=\"SUBMIT\"  class='bouton' NAME=\"upload\" VALUE=\"".$msg[502]."\" />
326                    <INPUT NAME=\"categ\" TYPE=\"hidden\" value=\"import\" />
327                    <INPUT NAME=\"sub\" TYPE=\"hidden\" value=\"import_expl\" />
328                    <INPUT NAME=\"action\" TYPE=\"hidden\" value=\"preload\" />
329                    <INPUT NAME=\"".$name_func."\" TYPE=\"hidden\" value=\"".$$name_func."\"/>
330                    </FORM>";
331                break;
332                        }
333            loadfile_in_table() ;
334            if ($pb_fini=="EOF") {
335                $formulaire="<form class='form-$current_module' name=\"load\" method=\"post\" action=\"iimport_expl.php\">";
336                $formulaire.="<INPUT NAME=\"categ\" TYPE=\"hidden\" value=\"import\" />";
337                $formulaire.="<INPUT NAME=\"sub\" TYPE=\"hidden\" value=\"import_expl\" />";
338                $formulaire.="<INPUT NAME=\"action\" TYPE=\"hidden\" value=\"load\" />";
339                $formulaire.="<INPUT NAME=\"book_lender_id\" TYPE=\"hidden\" value=\"".$book_lender_id."\" />";
340                $formulaire.="<INPUT NAME=\"book_statut_id\" TYPE=\"hidden\" value=\"".$book_statut_id."\" />";
341                $formulaire.="<input type=\"hidden\" name=\"filename\" value=\"$filename\" />";
342                $formulaire.="<input type=\"hidden\" name=\"from_file\" value=\"$from_file\" />";
343                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"isbn_mandatory\" VALUE=\"$isbn_mandatory\" />\n";
344                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"isbn_dedoublonnage\" VALUE=\"$isbn_dedoublonnage\" />\n";
345                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"isbn_only\" VALUE=\"$isbn_only\" />\n";
346                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"cote_mandatory\" VALUE=\"$cote_mandatory\" />\n";
347                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"tdoc_codage\" VALUE=\"$tdoc_codage\" />\n";
348                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"statisdoc_codage\" VALUE=\"$statisdoc_codage\" />\n";
349                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"sdoc_codage\" VALUE=\"$sdoc_codage\" />\n";
350                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"statutnot\" VALUE=\"$statutnot\" />\n";
351                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"book_location_id\" VALUE=\"$book_location_id\" />\n";
352                $formulaire.="<input type=\"hidden\" name=\"recharge\" value=\"YES\" />";
353                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"que_faire\" VALUE=\"$que_faire\" />\n";
354                $formulaire.= "<INPUT TYPE=\"hidden\" NAME=\"link_generate\" VALUE=\"$link_generate\" />\n";
355                $formulaire.= "<input type='hidden' name='authorities_notices' value='".$authorities_notices."' />\n";
356                                $formulaire.= "<input type='hidden' name='authorities_default_origin' value='".$authorities_default_origin."' />\n";
357                $formulaire.="</form>";
358                printf ($msg[512], $from_file); /* File %s... . End of preload... */
359               
360                $fo = fopen("$base_path/temp/liste_id".SESSid.".txt","w");
361                                fwrite($fo,"");
362                                fclose($fo);
363                                //file_put_contents("$base_path/temp/liste_id".SESSid.".txt","");
364                $script = "<script>setTimeout(\"document.load.submit()\",2000);</script>";
365                        } else {
366                                $formulaire="<form class='form-$current_module' name=\"preload\" method=\"post\" action=\"iimport_expl.php\">";
367                                $formulaire.= "<INPUT NAME=\"".$name_func."\" TYPE=\"hidden\" value=\"".$$name_func."\"/>";
368                                $formulaire.="<INPUT NAME=\"categ\" TYPE=\"hidden\" value=\"import\" />";
369                                $formulaire.="<INPUT NAME=\"sub\" TYPE=\"hidden\" value=\"import_expl\" />";
370                                $formulaire.="<INPUT NAME=\"action\" TYPE=\"hidden\" value=\"preload\" />";
371                                $formulaire.="<INPUT NAME=\"book_lender_id\" TYPE=\"hidden\" value=\"".$book_lender_id."\" />";
372                                $formulaire.="<INPUT NAME=\"book_statut_id\" TYPE=\"hidden\" value=\"".$book_statut_id."\" />";
373                                $formulaire.="<input type=\"hidden\" name=\"recharge\" value=\"$recharge\" />";
374                                $formulaire.="<input type=\"hidden\" name=\"file_submit\" value=\"$filename\" />";
375                                $formulaire.="<input type=\"hidden\" name=\"from_file\" value=\"$from_file\" />";
376                                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"isbn_mandatory\" VALUE=\"$isbn_mandatory\" />\n";
377                                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"isbn_dedoublonnage\" VALUE=\"$isbn_dedoublonnage\" />\n";
378                                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"isbn_only\" VALUE=\"$isbn_only\" />\n";
379                                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"cote_mandatory\" VALUE=\"$cote_mandatory\" />\n";
380                                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"tdoc_codage\" VALUE=\"$tdoc_codage\" />\n";
381                                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"statisdoc_codage\" VALUE=\"$statisdoc_codage\" />\n";
382                                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"sdoc_codage\" VALUE=\"$sdoc_codage\" />\n";
383                                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"statutnot\" VALUE=\"$statutnot\" />\n";
384                                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"book_location_id\" VALUE=\"$book_location_id\" />\n";
385                                $formulaire.="<input type=\"hidden\" name=\"noticenumber\" value=\"".($noticenumber+$j)."\" />";
386                                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"que_faire\" VALUE=\"$que_faire\" />\n";
387                                $formulaire.= "<INPUT TYPE=\"hidden\" NAME=\"link_generate\" VALUE=\"$link_generate\" />\n";
388                                $formulaire.= "<input type='hidden' name='authorities_notices' value='".$authorities_notices."' />\n";
389                                $formulaire.= "<input type='hidden' name='authorities_default_origin' value='".$authorities_default_origin."' />\n";
390                                $formulaire.="</form>";
391                                $script = "<script>setTimeout(\"document.preload.submit()\",2000);</script>";
392                        }
393            print $formulaire;
394            print $script;
395                } else {
396                    // import de notice
397                    /* Does the file exist ? */
398                    if ($file_submit=="") {
399                        $filename = $base_path."/admin/import/".$nom_fichier_transfert_ftp;
400                        $from_file = "unimarc".(defined("LOCATION")?"_".constant("LOCATION"):"").".fic";
401                    } else {
402                        $filename=$file_submit;
403                    }
404               
405                    if ($isbn_mandatory=="") {
406                        /* l'utilisateur n'est pas passé par le téléchargement du fichier, il faut qu'il nous dise si l'ISBN est obligatoire */
407                        print "
408                            <form class='form-$current_module' NAME=\"preload\" METHOD=\"post\" ACTION=\"iimport_expl.php\">
409                            <h3>".$msg['import_noti_form_titre']."</h3>
410                            <div class='form-contenu'>
411                                <div class='row'>
412                                    <div class='colonne2'>
413                                    <label class='etiquette' for='isbn_obligatoire'>$msg[564]</label><br />
414                                        <INPUT TYPE='radio' NAME='isbn_mandatory' id='io1' VALUE='1' CLASS='radio' /><label for='io1'> $msg[40] </label>
415                                    <INPUT TYPE='radio' NAME='isbn_mandatory' id='io0' VALUE='0' CLASS='radio' checked='checked' /><label for='io0'> $msg[39] </label>
416                                </div>
417                                <div class='colonne-suite'>
418                                    <label class='etiquette' for='isbn_dedoublonnage'>$msg[568]</label><br />
419                                        <INPUT TYPE='radio' NAME='isbn_dedoublonnage' id='di1' VALUE='1' CLASS='radio' checked='checked' /><label for='di1'> $msg[40] </label>
420                                    <INPUT TYPE='radio' NAME='isbn_dedoublonnage' id='di0' VALUE='0' CLASS='radio' /><label for='di0'> $msg[39] </label>
421                                        <input type='checkbox' name='isbn_only' id='ionly' value='1' /><label for='ionly'> ".$msg["ignore_issn"]." </label>
422                                </div>
423                             </div>
424                                        <div class='row'>&nbsp;</div>
425                            <div class='row'>
426                        <div class='colonne2'> 
427                                <label class='etiquette' for='statutnot'>$msg[import_statutnot]</label>
428                                <div>
429                                ".gen_liste_multiple ("select id_notice_statut, gestion_libelle from notice_statut order by 2", "id_notice_statut", "gestion_libelle", "id_notice_statut", "statutnot", "", 1, "", "","","",0)."
430                                </div>
431                        </div>
432                        <div class='colonne-suite'>
433                                <label class='etiquette' for='generer_lien'>".$msg['import_genere_liens']."</label><br />
434                                <INPUT TYPE='radio' NAME='link_generate' id='link1' VALUE=' 1' CLASS='radio' /><label for='link1'> $msg[40] </label>
435                            <INPUT TYPE='radio' NAME='link_generate' id='link0' VALUE='0' CLASS='radio' checked='checked' /><label for='link0'> $msg[39] </label>
436                        </div>
437                    </div>
438                    <div class='row'>&nbsp;</div>
439                        <div class='row'>
440                                <div class='colonne2'>
441                                        &nbsp;<br />
442                                        &nbsp;
443                                </div>
444                                <div class='colonne-suite'>
445                                                        <label class='etiquette' for='authorities_notices'>".htmlentities($msg['import_with_authorities_notices'],ENT_QUOTES,$charset)."</label><br />
446                                                        <input type='radio' name='authorities_notices' id='authorities_notices1' value='1' class='radio' /><label for='authorities_notices1'>".htmlentities($msg[40],ENT_QUOTES,$charset)."</label>                             
447                                                        <input type='radio' name='authorities_notices' id='authorities_notices0' value='0' class='radio' checked='checked'/><label for='authorities_notices0'>".htmlentities($msg[39],ENT_QUOTES,$charset)."</label>
448                        </div>
449                        </div>
450                        <div class='row'>&nbsp;</div>
451                        <div clas='row'>
452                                <div class='colonne2'>
453                                        &nbsp;<br />
454                                        &nbsp;
455                                </div>
456                                <div class='colonne-suite'>
457                                        <label class='etiquette' for='authorities_default_origin'>".htmlentities($msg['import_authorities_origin_default_value'],ENT_QUOTES,$charset)."</label><br />
458                                                        ".origin::gen_combo_box("authorities","authorities_default_origin")."
459                                </div>
460                        </div>
461                        <div class='row'>&nbsp;</div>
462                    <div clas='row'>
463                                <INPUT TYPE=\"SUBMIT\"  class='bouton' NAME=\"upload\" VALUE=\"".$msg[502]."\" />
464                            </div>
465                            <INPUT NAME=\"categ\" TYPE=\"hidden\" value=\"import\" />
466                            <INPUT NAME=\"sub\" TYPE=\"hidden\" value=\"import\" />
467                            <INPUT NAME=\"action\" TYPE=\"hidden\" value=\"preload\" />
468                            <INPUT NAME=\"".$name_func."\" TYPE=\"hidden\" value=\"".$$name_func."\"/>
469                            </FORM>";
470                        break;
471                    }
472                    loadfile_in_table() ;
473                        if ($pb_fini=="EOF") {
474                                $formulaire="<form class='form-$current_module' name=\"load\" method=\"post\" action=\"iimport_expl.php\">";
475                                $formulaire.="<INPUT NAME=\"categ\" TYPE=\"hidden\" value=\"import\" />";
476                                $formulaire.="<INPUT NAME=\"sub\" TYPE=\"hidden\" value=\"import\" />";
477                                $formulaire.="<INPUT NAME=\"action\" TYPE=\"hidden\" value=\"load\" />";
478                                $formulaire.="<input type=\"hidden\" name=\"filename\" value=\"$filename\" />";
479                                $formulaire.="<input type=\"hidden\" name=\"from_file\" value=\"$from_file\" />";
480                                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"isbn_mandatory\" VALUE=\"$isbn_mandatory\" />\n";
481                                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"isbn_dedoublonnage\" VALUE=\"$isbn_dedoublonnage\" />\n";
482                                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"isbn_only\" VALUE=\"$isbn_only\" />\n";
483                                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"statutnot\" VALUE=\"$statutnot\" />\n";
484                                $formulaire.="<input type=\"hidden\" name=\"recharge\" value=\"YES\" />";
485                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"que_faire\" VALUE=\"$que_faire\" />\n";
486                                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"link_generate\" VALUE=\"$link_generate\" />\n";
487                                $formulaire.= "<input type='hidden' name='authorities_notices' value='".$authorities_notices."' />\n";
488                                $formulaire.= "<input type='hidden' name='authorities_default_origin' value='".$authorities_default_origin."' />\n";
489                                $formulaire.="</form>";
490                                printf ($msg[509].$msg[512], $from_file, $from_file); /* File %s... . End of preload... */
491                               
492                                $fo = fopen("$base_path/temp/liste_id".SESSid.".txt","w");
493                                fwrite($fo,"");
494                                fclose($fo);
495                                //file_put_contents("$base_path/temp/liste_id".SESSid.".txt","");
496                                $script = "<script>setTimeout(\"document.load.submit()\",2000);</script>";
497                        } else {
498                                $formulaire="<form class='form-$current_module' name=\"preload\" method=\"post\" action=\"iimport_expl.php\">";
499                                $formulaire.= "<INPUT NAME=\"".$name_func."\" TYPE=\"hidden\" value=\"".$$name_func."\"/>";
500                                $formulaire.="<INPUT NAME=\"categ\" TYPE=\"hidden\" value=\"import\" />";
501                                $formulaire.="<INPUT NAME=\"sub\" TYPE=\"hidden\" value=\"import\" />";
502                                $formulaire.="<INPUT NAME=\"action\" TYPE=\"hidden\" value=\"preload\" />";
503                                $formulaire.="<input type=\"hidden\" name=\"recharge\" value=\"$recharge\" />";
504                                $formulaire.="<input type=\"hidden\" name=\"file_submit\" value=\"$filename\" />";
505                                $formulaire.="<input type=\"hidden\" name=\"from_file\" value=\"$from_file\" />";
506                                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"isbn_mandatory\" VALUE=\"$isbn_mandatory\" />\n";
507                                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"isbn_dedoublonnage\" VALUE=\"$isbn_dedoublonnage\" />\n";
508                                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"isbn_only\" VALUE=\"$isbn_only\" />\n";
509                                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"statutnot\" VALUE=\"$statutnot\" />\n";
510                                $formulaire.="<input type=\"hidden\" name=\"noticenumber\" value=\"".($noticenumber+$j)."\" />";
511                                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"link_generate\" VALUE=\"$link_generate\" />\n";
512                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"que_faire\" VALUE=\"$que_faire\" />\n";
513                                $formulaire.= "<input type='hidden' name='authorities_notices' value='".$authorities_notices."' />\n";
514                                $formulaire.= "<input type='hidden' name='authorities_default_origin' value='".$authorities_default_origin."' />\n";
515                                $formulaire.="</form>";
516                                $script = "<script>setTimeout(\"document.preload.submit()\",2000);</script>";
517                        }
518                    print $formulaire;
519                    print $script;
520                }
521        break;
522    case 'load':
523                if (!$statutnot) $statutnot=1;
524                printf ($msg[509], $from_file);
525                if ($nbtot_notice=="") {
526                        $sql = "select count(1) from import_marc where origine='".addslashes(SESSid)."' ";
527                        $sql_result = pmb_mysql_query($sql) or die ("Couldn't select count(1) from import table !");
528                        $nbtot_notice=pmb_mysql_result($sql_result, 0, 0);
529        }
530                if ($sub == "import_expl") {
531                        $section_995_=new marc_list("section_995");
532                        $section_995=$section_995_->table;
533                        $typdoc_995_=new marc_list("typdoc_995");
534                        $typdoc_995=$typdoc_995_->table;
535                        $codstatdoc_995_=new marc_list("codstatdoc_995");
536                        $codstatdoc_995=$codstatdoc_995_->table;
537                        /* let's initialize the counters if necessary */
538                        if ($nb_expl_ignores == "") $nb_expl_ignores=0;
539                        printf ($msg[511], "\"".$book_lender_name."\"") ;
540                }
541
542        $sql = "select notice, id_import from import_marc where origine='".addslashes(SESSid)."' ORDER BY id_import limit $pmb_import_limit_record_load ";
543        $sql_result_import = pmb_mysql_query($sql) or die ("Couldn't select import table !");
544        $n_notice=pmb_mysql_num_rows($sql_result_import);
545        if ($notice_deja_presente=="") {
546                $notice_deja_presente=0;
547        }
548        $inotice=0;
549        $txt="";
550
551                while (($notobj = pmb_mysql_fetch_object($sql_result_import))) {
552            $notice=$notobj->notice ;
553            $idnotice_import=$notobj->id_import ;
554            $inotice++;
555                       
556            $res_lecture = recup_noticeunimarc($notice) ;
557            if($link_generate) $res_link = recup_noticeunimarc_link($notice);
558                        if (!$res_lecture || !$tit_200a[0]) {
559                $res_lecture = 0;
560                // ".$inotice."
561                $fp = fopen ("../../temp/err_import.unimarc","a+");
562                fwrite ($fp, $notice);
563                fclose ($fp);
564                $notice_rejetee++;
565                        }
566           
567                        if ($res_lecture) {
568                recup_noticeunimarc_suite($notice) ;
569
570                /* We've got everything, let's have a look if ISBN already exists in notices table */
571                if($isbn[0]=="NULL") $isbn[0]="";
572                // si isbn vide, on va tenter de prendre l'EAN stocké en 345$b
573                if ($isbn[0]=="") $isbn[0]=$EAN[0] ;
574                // si isbn vide, on va tenter de prendre le serial en 011
575                if ($isbn[0]=="") $isbn[0]=$issn_011[0];
576                // si ISBN obligatoire et isbn toujours vide :
577                if ($isbn_mandatory == 1 && $isbn[0]=="") {
578                    // on va tenter de prendre l'ISSN stocké en 225$x
579                    $isbn[0]=$collection_225[0]['x'] ;
580                    // si isbn toujours vide, on va tenter de prendre l'ISSN stocké en 410$x
581                    if ($isbn[0]=="") $isbn[0]=$collection_410[0]['x'] ;
582                }
583
584                                // on commence par voir ce que le code est (basé sur la recherche par code du module catalogage
585                                $ex_query = clean_string($isbn[0]);
586                               
587                                $EAN = '';
588                                $isbn = '';
589                                $code = '';
590                                $code10 = '' ;
591                               
592                                if(isEAN($ex_query)) {
593                                        // la saisie est un EAN -> on tente de le formater en ISBN
594                                        $EAN=$ex_query;
595                                        $isbn = EANtoISBN($ex_query);
596                                        // si échec, on prend l'EAN comme il vient
597                                        if(!$isbn) 
598                                                $code = str_replace("*","%",$ex_query);
599                                        else {
600                                                $code=$isbn;
601                                                $code10=formatISBN($code,10);
602                                        }
603                                } else {
604                                        if(isISBN($ex_query)) {
605                                                // si la saisie est un ISBN
606                                                $isbn = formatISBN($ex_query);
607                                                // si échec, ISBN erroné on le prend sous cette forme
608                                                if(!$isbn) 
609                                                        $code = str_replace("*","%",$ex_query);
610                                                else {
611                                                        $code10=$isbn ;
612                                                        $code=formatISBN($code10,13);
613                                                }
614                                        } else {
615                                                // ce n'est rien de tout ça, on prend la saisie telle quelle
616                                                $code = str_replace("*","%",$ex_query);
617                                        }
618                                }
619                               
620                                $isbn_OK=$code;
621                $new_notice = 0;
622                $notice_id = 0 ;
623                                // le paramétrage est-il : dédoublonnage sur code ? / Ne dédoublonner que sur code ISBN (ignorer les ISSN) ?
624                if ((($isbn_dedoublonnage)&&(!$isbn_only))||(($isbn_dedoublonnage)&&($isbn_only)&&(isISBN($isbn)))) {
625                                       
626                                        $trouvees=0;
627                                        if ($EAN && $isbn) {
628                                                // cas des EAN purs : constitution de la requête
629                                                $requete = "SELECT distinct notice_id FROM notices ";
630                                                $requete.= " WHERE notices.code in ('$code','$EAN'".($code10?",'$code10'":"").") limit 1";
631                                                $myQuery = pmb_mysql_query($requete, $dbh);
632                                                $trouvees=pmb_mysql_num_rows($myQuery);
633                                        } elseif ($isbn) {
634                                                // recherche d'un isbn
635                                                $requete = "SELECT distinct notice_id FROM notices ";
636                                                $requete.= " WHERE notices.code in ('$code'".($code10?",'$code10'":"").") limit 1";
637                                                $myQuery = pmb_mysql_query($requete, $dbh);
638                                                $trouvees=pmb_mysql_num_rows($myQuery);
639                                        } elseif ($code) {
640                                                // note : le code est recherché dans le champ code des notices
641                                                // (cas des code-barres disques qui échappent à l'EAN)
642                                                //
643                                                $requete = "SELECT notice_id FROM notices ";
644                                                $requete.= " WHERE notices.code like '$code' limit 10";
645                                                $myQuery = pmb_mysql_query($requete, $dbh);
646                                                $trouvees=pmb_mysql_num_rows($myQuery);
647                                        }
648
649                    // dédoublonnage sur isbn
650                    if ($EAN  || $isbn || $code) {
651                        if ($trouvees==0) {
652                            $new_notice=1;
653                        } else {
654                            $new_notice=0;
655                            $notice_id = pmb_mysql_result($myQuery,0,"notice_id");
656                            $sql_log = pmb_mysql_query("insert into error_log (error_origin, error_text) values ('import_expl_".addslashes(SESSid).".inc', '".$msg[542]." $EAN  || $isbn || $code ".addslashes($tit[0]['a'])."') ") ;
657                        }
658                    } else {
659                        if ($isbn_mandatory == 1) {
660                            $sql_log = pmb_mysql_query("insert into error_log (error_origin, error_text) values ('import_".addslashes(SESSid).".inc', '".$msg[543]."') ") ;
661                        } else {
662                            $new_notice = 1;
663                            $sql_log = pmb_mysql_query("insert into error_log (error_origin, error_text) values ('import_".addslashes(SESSid).".inc', '".$msg[565]."') ") ;
664                        }
665                    }
666                } else {
667                    // pas de dédoublonnage
668                    if ($isbn_mandatory == 1 && $isbn_OK=="") {
669                       $sql_log = pmb_mysql_query("insert into error_log (error_origin, error_text) values ('import_".addslashes(SESSid).".inc', '".$msg[543]."') ") ;
670                    }elseif($isbn_OK){
671                        $new_notice = 1;
672                    }else{
673                         $new_notice = 1;
674                         $sql_log = pmb_mysql_query("insert into error_log (error_origin, error_text) values ('import_".addslashes(SESSid).".inc', '".$msg[565]."') ") ;
675                    }
676                }
677                /* the notice is new, we are going to import it... */
678                if ($new_notice==1) {                   
679                    import_new_notice() ; 
680                    if($link_generate) import_notice_link();                   
681                                import_new_notice_suite() ;                             
682                                // Mise à jour de la table "notices_global_index"
683                                notice::majNoticesGlobalIndex($notice_id);
684                                // Mise à jour de la table "notices_mots_global_index"
685                                notice::majNoticesMotsGlobalIndex($notice_id);
686                } else {
687                        $notice_deja_presente++;
688                       
689                                        //TRAITEMENT DES DOCS NUMERIQUES SUR NOTICE EXISTANTE
690                                        if ($add_explnum===TRUE) ajoute_explnum();
691                                }
692
693                // TRAITEMENT DES EXEMPLAIRES ICI
694                if ($sub == "import_expl") {
695                    traite_exemplaires () ;
696                } // fin if $sub=import_expl
697                }
698               
699               
700            /* this has been succesfuly read, it can be deleted */
701                $sql_del = "delete from import_marc where id_import = '".$idnotice_import."' ";
702            $sql_result_del = pmb_mysql_query($sql_del) or die ("Couldn't delete import_marc $idnotice_import !");
703        } /* end while records in import table */
704        $sql = "select count(1) as reste from import_marc where origine='".addslashes(SESSid)."'";
705        $sql_result = pmb_mysql_query($sql) or die ("Couldn't select count import table !");
706        $reste=pmb_mysql_result($sql_result,0,"reste");
707
708        if ($sub == "import_expl") {
709            if ($reste > 0 ) {
710                $formulaire="<form class='form-$current_module' name=\"load\" method=\"post\" action=\"iimport_expl.php\">\n";
711                $formulaire.="<INPUT NAME=\"categ\" TYPE=\"hidden\" value=\"import\" />";
712                $formulaire.="<INPUT NAME=\"sub\" TYPE=\"hidden\" value=\"import_expl\" />";
713                $formulaire.="<INPUT NAME=\"action\" TYPE=\"hidden\" value=\"load\" />";
714                $formulaire.="<INPUT NAME=\"book_lender_id\" TYPE=\"hidden\" value=\"".$book_lender_id."\" />";
715                $formulaire.="<INPUT NAME=\"book_statut_id\" TYPE=\"hidden\" value=\"".$book_statut_id."\" />";
716                $formulaire.="<input type=\"hidden\" name=\"filename\" value=\"$filename\" />";
717                $formulaire.="<input type=\"hidden\" name=\"from_file\" value=\"$from_file\" />";
718                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"isbn_mandatory\" VALUE=\"$isbn_mandatory\" />\n";
719                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"isbn_dedoublonnage\" VALUE=\"$isbn_dedoublonnage\" />\n";
720                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"isbn_only\" VALUE=\"$isbn_only\" />\n";
721                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"cote_mandatory\" VALUE=\"$cote_mandatory\" />\n";
722                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"tdoc_codage\" VALUE=\"$tdoc_codage\" />\n";
723                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"statisdoc_codage\" VALUE=\"$statisdoc_codage\" />\n";
724                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"sdoc_codage\" VALUE=\"$sdoc_codage\" />\n";
725                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"statutnot\" VALUE=\"$statutnot\" />\n";
726                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"book_location_id\" VALUE=\"$book_location_id\" />\n";
727                $formulaire.="<input type=\"hidden\" name=\"recharge\" value=\"YES\" />\n";
728                $formulaire.="<input type=\"hidden\" name=\"reste\" value=\"".($reste)."\" />\n";
729                $formulaire.="<input type=\"hidden\" name=\"nbtot_notice\" value=\"".($nbtot_notice)."\" />\n";
730                $formulaire.="<input type=\"hidden\" name=\"notice_deja_presente\" value=\"".($notice_deja_presente)."\" />\n";
731                $formulaire.="<input type=\"hidden\" name=\"notice_rejetee\" value=\"".($notice_rejetee)."\" />\n";
732                $formulaire.="<input type=\"hidden\" name=\"nb_expl_ignores\" value=\"".($nb_expl_ignores)."\" />\n";
733                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"que_faire\" VALUE=\"$que_faire\" />\n";
734                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"link_generate\" VALUE=\"$link_generate\" />\n";
735                                $formulaire.= "<input type='hidden' name='authorities_notices' value='".$authorities_notices."' />\n";
736                                $formulaire.= "<input type='hidden' name='authorities_default_origin' value='".$authorities_default_origin."' />\n";
737                                $formulaire.="</form>";
738                   
739                 //On enregistre les ids utilisés avant le rechargement
740                global $notices_crees, $notices_a_creer,$bulletins_crees,$bulletins_a_creer;
741                $tabimport_id['notices_existantes'] = $notices_crees;
742                $tabimport_id['notices_a_creer'] = $notices_a_creer;
743                $tabimport_id['bulletins_crees'] = $bulletins_crees;
744                $tabimport_id['bulletins_a_creer'] = $bulletins_a_creer;
745                $fo = fopen("$base_path/temp/liste_id".SESSid.".txt","w");               
746                                fwrite($fo,serialize($tabimport_id));
747                $formulaire.="<script> setTimeout(\"document.load.submit()\",2000); </script>\n";
748                printf ($msg[513], $reste, $nbtot_notice); /* File %s ... . Still %s notices to load (total = %s) ... */
749                if ($notice_deja_presente==1) {
750                        printf ($msg[514],$notice_deja_presente) ; /* <br />($notice_deja_presente notice already in the database has been ignored since the begining) */
751                } elseif ($notice_deja_presente>1) {
752                        printf ($msg[515],$notice_deja_presente) ; /* <br />($notice_deja_presente notices already in the database have been ignored since the begining) */
753                }
754                if ($notice_rejetee>0) {
755                        print "<br /> ".$notice_rejetee." ".$msg['notices_invalides'];
756                }
757                printf ($msg[521], $nb_expl_ignores); /* ## exemplaire(s) ignoré(s) */
758            } else {
759                $formulaire="";
760                $script="";
761                printf ($msg[516], $nbtot_notice); /* There were <b>$nbtot_notice</b> notice(s) to load, everything is OK...</b> */
762                if ($notice_deja_presente==1) {
763                        printf ($msg[517], $notice_deja_presente); /*  <b>$notice_deja_presente</b> notice already in the database has been ignored... */
764                } elseif ($notice_deja_presente>1) {
765                        printf ($msg[518], $notice_deja_presente); /*  dont <b>$notice_deja_presente</b> notices already in the database have been ignored... */
766                }
767                if ($notice_rejetee>0) {
768                        print "<br /> ".$notice_rejetee." ".$msg['notices_invalides'];
769                }
770                printf ($msg[521], $nb_expl_ignores); /* ## exemplaire(s) ignoré(s) */
771                /* ajouter ici SELECT error_origin, error_text, count(*) FROM error_log group by error_origin, error_text */
772                $gen_liste_log="";
773                $resultat_liste=pmb_mysql_query("SELECT error_origin, error_text, count(*) as nb_error FROM error_log where error_origin in ('expl_".addslashes(SESSid).".class','import_expl_".addslashes(SESSid).".inc','iimport_expl_".addslashes(SESSid).".inc','import_".addslashes(SESSid).".inc.php','import_".addslashes(SESSid).".inc','import_func_".addslashes(SESSid).".inc.php') group by error_origin, error_text" );
774                $nb_liste=pmb_mysql_num_rows($resultat_liste);
775                if ($nb_liste>0) {
776                    $gen_liste_log = "<br /><br /><b>".$msg[538]."</b><br /><table border='1'>" ;
777                    $gen_liste_log.="<tr><th>".$msg[539]."</th><th>".$msg[540]."</th><th>".$msg[541]."</th></tr>";
778                    $i_log=0;
779                    while ($i_log<$nb_liste) {
780                        $gen_liste_log.="<tr>";
781                        $gen_liste_log.="<td>".pmb_mysql_result($resultat_liste,$i_log,"error_origin")."</td>" ;
782                        $gen_liste_log.="<td><b>".pmb_mysql_result($resultat_liste,$i_log,"error_text")."</b></td>" ;
783                        $gen_liste_log.="<td>".pmb_mysql_result($resultat_liste,$i_log,"nb_error")."</td>" ;
784                        $gen_liste_log.="</tr>" ;
785                        $i_log++;
786                       }
787                    }
788                $gen_liste_str.="</table>\n" ;
789                print $gen_liste_log;
790                @unlink("$base_path/temp/liste_id".SESSid.".txt");
791            }
792            print $formulaire;
793            print $script;
794        } else {
795            // import de notices
796            if ($reste > 0 ) {
797                $formulaire="<form class='form-$current_module' name=\"load\" method=\"post\" action=\"iimport_expl.php\">\n";
798                $formulaire.="<INPUT NAME=\"categ\" TYPE=\"hidden\" value=\"import\" />";
799                $formulaire.="<INPUT NAME=\"sub\" TYPE=\"hidden\" value=\"import\" />";
800                $formulaire.="<INPUT NAME=\"action\" TYPE=\"hidden\" value=\"load\" />";
801                $formulaire.="<input type=\"hidden\" name=\"filename\" value=\"$filename\" />";
802                $formulaire.="<input type=\"hidden\" name=\"from_file\" value=\"$from_file\" />";
803                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"isbn_mandatory\" VALUE=\"$isbn_mandatory\" />\n";
804                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"isbn_dedoublonnage\" VALUE=\"$isbn_dedoublonnage\" />\n";
805                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"isbn_only\" VALUE=\"$isbn_only\" />\n";
806                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"statutnot\" VALUE=\"$statutnot\" />\n";
807                $formulaire.="<input type=\"hidden\" name=\"recharge\" value=\"YES\" />\n";
808                $formulaire.="<input type=\"hidden\" name=\"reste\" value=\"".($reste)."\" />\n";
809                $formulaire.="<input type=\"hidden\" name=\"nbtot_notice\" value=\"".($nbtot_notice)."\" />\n";
810                $formulaire.="<input type=\"hidden\" name=\"notice_deja_presente\" value=\"".($notice_deja_presente)."\" />\n";
811                $formulaire.="<input type=\"hidden\" name=\"notice_rejetee\" value=\"".($notice_rejetee)."\" />\n";
812                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"link_generate\" VALUE=\"$link_generate\" />\n";
813                $formulaire.="<INPUT TYPE=\"hidden\" NAME=\"que_faire\" VALUE=\"$que_faire\" />\n";
814                                $formulaire.= "<input type='hidden' name='authorities_notices' value='".$authorities_notices."' />\n";
815                $formulaire.= "<input type='hidden' name='authorities_default_origin' value='".$authorities_default_origin."' />\n";
816                                $formulaire.="</form>";
817               
818                //On enregistre les ids utilisés avant le rechargement
819                global $notices_crees, $notices_a_creer,$bulletins_crees,$bulletins_a_creer;
820                $tabimport_id['notices_existantes'] = $notices_crees;
821                $tabimport_id['notices_a_creer'] = $notices_a_creer;
822                $tabimport_id['bulletins_crees'] = $bulletins_crees;
823                $tabimport_id['bulletins_a_creer'] = $bulletins_a_creer;
824                $fo = fopen("$base_path/temp/liste_id".SESSid.".txt","w");               
825                                fwrite($fo,serialize($tabimport_id));   
826                $formulaire.="<script> setTimeout(\"document.load.submit()\",2000); </script>\n";
827                printf ($msg[509].$msg[513],$from_file, $reste, $nbtot_notice); /* File %s ... . Still %s notices to load (total = %s) ... */
828                if ($notice_deja_presente==1) {
829                        printf ($msg[514],$notice_deja_presente) ; /* <br />($notice_deja_presente notice already in the database has been ignored since the begining) */
830                } elseif ($notice_deja_presente>1) {
831                        printf ($msg[515],$notice_deja_presente) ; /* <br />($notice_deja_presente notices already in the database have been ignored since the begining) */
832                }
833                if ($notice_rejetee>0) {
834                        print "<br /> ".$notice_rejetee." ".$msg['notices_invalides'];
835                }
836            } else {
837                $formulaire="";
838                $script="";
839                printf ($msg[509].$msg[516], $from_file, $nbtot_notice); /* There were <b>$nbtot_notice</b> notice(s) to load, everything is OK...</b> */
840                if ($notice_deja_presente==1) {
841                        printf ($msg[517], $notice_deja_presente); /*  <b>$notice_deja_presente</b> notice already in the database has been ignored... */
842                } elseif ($notice_deja_presente>1) {
843                        printf ($msg[518], $notice_deja_presente); /*  dont <b>$notice_deja_presente</b> notices already in the database have been ignored... */
844                }
845                if ($notice_rejetee>0) {
846                        print "<br /> ".$notice_rejetee." ".$msg['notices_invalides'] ;
847                }
848                /* ajouter ici SELECT error_origin, error_text, count(*) FROM error_log group by error_origin, error_text */
849                $gen_liste_log="";
850                $resultat_liste=pmb_mysql_query("SELECT error_origin, error_text, count(*) as nb_error FROM error_log where error_origin in ('expl_".addslashes(SESSid).".class','import_expl_".addslashes(SESSid).".inc','iimport_expl_".addslashes(SESSid).".inc','import_".addslashes(SESSid).".inc.php', 'import_".addslashes(SESSid).".inc','import_func_".addslashes(SESSid).".inc.php') group by error_origin, error_text" );
851                $nb_liste=pmb_mysql_num_rows($resultat_liste);
852                if ($nb_liste>0) {
853                    $gen_liste_log = "<br /><br /><b>".$msg[538]."</b><br /><table width=\"100%\"  border='1'>" ;
854                    $gen_liste_log.="<tr><td>".$msg[539]."</td><td>".$msg[540]."</td><td>".$msg[541]."</td></tr>";
855                    $i_log=0;
856                    while ($i_log<$nb_liste) {
857                        $gen_liste_log.="<tr>";
858                        $gen_liste_log.="<td>".pmb_mysql_result($resultat_liste,$i_log,"error_origin")."</td>" ;
859                        $gen_liste_log.="<td><b>".pmb_mysql_result($resultat_liste,$i_log,"error_text")."</b></td>" ;
860                        $gen_liste_log.="<td>".pmb_mysql_result($resultat_liste,$i_log,"nb_error")."</td>" ;
861                        $gen_liste_log.="</tr>" ;
862                        $i_log++;
863                        }
864                    }
865                $gen_liste_str.="</table>\n" ;
866                print $gen_liste_log;
867                @unlink("$base_path/temp/liste_id".SESSid.".txt");
868            }
869
870                print $formulaire;
871                print $script;
872        }
873        break;
874    default:
875        $formulaire="<form class='form-$current_module' name=\"beforeupload\" method=\"post\" action=\"iimport_expl.php\" onsubmit=\"return false;\">";
876        $formulaire.="<INPUT NAME=\"categ\" TYPE=\"hidden\" value=\"import\" />";
877        $formulaire.="<INPUT NAME=\"action\" id=\"action\" TYPE=\"hidden\" value=\"beforeupload\" />";
878        $form_text="";
879        if ($sub == "import_expl"){
880                $formulaire.="<INPUT NAME=\"sub\" TYPE=\"hidden\" value=\"import_expl\" />";
881                $form_text=file_get_contents("$include_path/messages/help/$lang/import_expl.txt");
882        }else{
883                $formulaire.="<INPUT NAME=\"sub\" TYPE=\"hidden\" value=\"import\" />";
884                $form_text=file_get_contents("$include_path/messages/help/$lang/import.txt");
885        }
886       
887        $formulaire.=str_replace(array("!!nom_fic!!","!!nom_bouton!!"),array(htmlentities($nom_fichier_transfert_ftp,ENT_QUOTES,$charset),htmlentities($msg["admin_import_notice_prechargement"],ENT_QUOTES,$charset)),$form_text);
888       
889        if(!$table_list_func_import){
890                if(file_exists("func_import_subst.xml")){
891                        $table_list_func_import=_parser_text_no_function_(file_get_contents("func_import_subst.xml"),"CATALOG");
892                }elseif(file_exists("func_import.xml")){
893                        $table_list_func_import=_parser_text_no_function_(file_get_contents("func_import.xml"),"CATALOG");
894                }
895        }       
896       
897        $code_js=$selecteur_fic="";
898        if(is_array($table_list_func_import["ITEM"]) && count($table_list_func_import["ITEM"])){
899                $incr=0;
900                $text_desc_func_import="";
901                $code_js.="<script type=\"text/javascript\">\n";
902                $code_js.="var func_import_desc= new Array(); var func_import_value= new Array();\n";
903                $selecteur_fic="<label class=\"etiquette\" for=\"".$name_func."\">".htmlentities($msg["admin_import_notice_choice"],ENT_QUOTES,$charset)."</label>\n";
904                $selecteur_fic.="<select name=\"".$name_func."\" id=\"".$name_func."\" onChange=\"affiche_description();\" >\n";
905                $selected_trouve="";
906                foreach ( $table_list_func_import["ITEM"] as $value ) {
907                        $code_js.="func_import_desc[$incr] = \"".htmlentities($value["DESCRIPTION"],ENT_QUOTES,$charset)."\";\n";
908                        $code_js.="func_import_value[$incr] = \"".htmlentities(substr($value["FUNCTION"],0,-4),ENT_QUOTES,$charset)."\";\n";
909                       
910                        $selecteur_fic.="<option value=\"".htmlentities(substr($value["FUNCTION"],0,-4),ENT_QUOTES,$charset)."\" ";
911                        if($func_import_model == $value["FUNCTION"]){
912                                $selecteur_fic.="selected=\"selected\" ";
913                                $selected_trouve=$value["FUNCTION"];
914                                $text_desc_func_import=$value["DESCRIPTION"];
915                        }
916                        $selecteur_fic.=">".htmlentities($value["NAME"],ENT_QUOTES,$charset)."</option>\n";
917                        $incr++;
918                        }
919                        if(!$selected_trouve || ($pmb_import_modele && $selected_trouve != $pmb_import_modele)){
920                                $code_js.="func_import_desc[$incr] = \"\";\n";
921                        $code_js.="func_import_value[$incr] = \"".htmlentities(substr($pmb_import_modele,0,-4),ENT_QUOTES,$charset)."\";\n";
922                                $selecteur_fic.="<option value=\"".htmlentities(substr($pmb_import_modele,0,-4),ENT_QUOTES,$charset)."\" ";
923                                if(!$selected_trouve){
924                                        $selecteur_fic.="selected=\"selected\" ";
925                                }
926                               
927                                $selecteur_fic.=">".htmlentities($msg["admin_import_notice_defaut"],ENT_QUOTES,$charset)."</option>\n";
928                        }
929                $selecteur_fic.="</select>&nbsp;&nbsp;&nbsp;\n";
930               
931                $code_js.="function affiche_description(){
932                        var func_import=document.beforeupload.".$name_func.";
933                                var mon_select=false;
934                                var index_select = func_import.options[func_import.selectedIndex].value;
935                                //console.log(document.getElementById('text_desc_func_import').innerHTML);
936                                for (var i=0; i<func_import_value.length;i++){
937                                        if(func_import_value[i] == index_select){
938                                                document.getElementById('text_desc_func_import').innerHTML =func_import_desc[i];
939                                        }
940                                }
941                }";
942                $code_js.="</script>";
943        }
944       
945        $selecteur_encodage="<label class=\"etiquette\" for=\"encodage_fic_source\" id=\"text_desc_encodage_fic_source\" name=\"text_desc_encodage_fic_source\">".htmlentities($msg["admin_import_encodage_fic_source"],ENT_QUOTES,$charset)."</label>
946        <select name=\"encodage_fic_source\" id=\"encodage_fic_source\">
947                        <option value=\"\" ".(!$encodage_fic_source ? " selected=\"selected\" ": "").">".htmlentities($msg["admin_import_encodage_fic_source_undefine"],ENT_QUOTES,$charset)."</option>
948                        <option value=\"iso5426\" ".(($encodage_fic_source == "iso5426") ? " selected=\"selected\" ": "").">".htmlentities($msg["admin_import_encodage_fic_source_iso5426"],ENT_QUOTES,$charset)."</option>
949                        <option value=\"utf8\" ".(($encodage_fic_source == "utf8") ? " selected=\"selected\" ": "").">".htmlentities($msg["admin_import_encodage_fic_source_utf8"],ENT_QUOTES,$charset)."</option>
950                        <option value=\"iso8859\" ".(($encodage_fic_source == "iso8859") ? " selected=\"selected\" ": "").">".htmlentities($msg["admin_import_encodage_fic_source_iso8859"],ENT_QUOTES,$charset)."</option>
951                </select></br></br>";
952       
953        $formulaire.=$selecteur_fic;
954        $formulaire.="<label class=\"etiquette\" for=\"".$name_func."\" id=\"text_desc_func_import\" name=\"text_desc_func_import\">".htmlentities($text_desc_func_import,ENT_QUOTES,$charset)."</label></br>\n";
955        $formulaire.=$selecteur_encodage;
956        $formulaire.="<INPUT type=\"button\" value=\"".htmlentities($msg["admin_import_notice_telechargement"],ENT_QUOTES,$charset)."\" class=\"bouton\" onclick=\"document.getElementById('action').value ='beforeupload';document.beforeupload.submit();\" />";
957        $formulaire.="<INPUT type=\"button\" value=\"".htmlentities($msg["admin_import_notice_prechargement"],ENT_QUOTES,$charset)."\" class=\"bouton\" onclick=\"document.getElementById('action').value ='preload'; document.beforeupload.submit();\"/>";
958        $formulaire.="</form>\n";
959       
960        $formulaire.=$code_js;
961       
962        print $formulaire;
963        break;
964    }
965
966print "</div></body></html>";
967
Note: See TracBrowser for help on using the repository browser.