name); //on nettoie les underscores multiples $nom_fic = preg_replace('#\_{2,}#', '_', $nom_fic); if(!isset($first)) $first = ''; if ($first != 1) { //pmb_mysql_query("delete from import_marc"); $origine=str_replace(" ","",microtime()); $origine=str_replace("0.","",$origine); //Récupération du répertoire $i = 0; $param_path = ""; _parser_($fic_catal, array("ITEM" => "_item_"), "CATALOG"); //Lecture des paramètres _parser_("imports/".$param_path."/params.xml", array("OUTPUT" => "_output_", "INPUT" => "_input_"), "PARAMS"); //Si l'export est spécial, on charge la fonction d'export if ($specialexport) { if(file_exists($base_path."/admin/convert/imports/".$param_path."/".$param_path.".class.php")) { require_once($base_path."/admin/convert/imports/".$param_path."/".$param_path.".class.php"); } else { require_once("imports/".$param_path."/export.inc.php"); } } //En fonction du type de fichier de sortie, inclusion du script de gestion des sorties $output_instance = start_export::get_instance_from_output_type($output_type); //Création du fichier de sortie if (empty($output_params['SUFFIX'])) $output_params['SUFFIX'] = ''; $file_out = $nom_fic."_".$origine.".".$output_params['SUFFIX']."~"; } else { //Récupération du répertoire $i = 0; $param_path == ""; _parser_($fic_catal, array("ITEM" => "_item_"), "CATALOG"); //Lecture des paramètres _parser_("imports/".$param_path."/params.xml", array("OUTPUT" => "_output_", "INPUT" => "_input_"), "PARAMS"); //Si l'export est spécial, on charge la fonction d'export if ($specialexport) { if(file_exists($base_path."/admin/convert/imports/".$param_path."/".$param_path.".class.php")) { require_once($base_path."/admin/convert/imports/".$param_path."/".$param_path.".class.php"); } else { require_once("imports/".$param_path."/export.inc.php"); } } } //Requête de sélection et de comptage des notices if (empty($n_current)) $n_current = 0; //Récupération des notices $n_notices=0; //Pour le cas ou on est sur un panier d'exemplaire afin de ne pas exporter les autres exemplaires des notices associées $expl_a_exporter=array(); //Pour le cas ou on a un panier d'exemplaire avec des exemplaires de bulletin $bulletin_a_exporter=array(); switch ($myCart->type) { case "NOTI" : $liste_flag=array(); $liste_no_flag=array(); if ($elt_flag) { $liste_flag=$myCart->get_cart("FLAG"); } if ($elt_no_flag) { $liste_no_flag=$myCart->get_cart("NOFLAG"); } $liste=$liste_flag; for ($i=0; $iget_cart("FLAG"); } if ($elt_no_flag) { $liste_no_flag=$myCart->get_cart("NOFLAG"); } $liste=$liste_flag; for ($i=0; $iget_cart("FLAG"); } if ($elt_no_flag) { $liste_no_flag=$myCart->get_cart("NOFLAG"); } $liste=$liste_flag; for ($i=0; $i_get_header_($output_params)); } elseif (isset($class_name) && class_exists($class_name)) { $export_instance = new $class_name(); fwrite($fo, $export_instance->_get_header_($output_params)); } else { $def = new convert_output(); fwrite($fo, $def->_get_header_($output_params)); } fclose($fo); } if ($n_notices == 0) { error_message_history($msg["export_no_notice_found"], $msg["export_no_notice_for_criterias"], 1); exit; } //Affichage de la progression $percent = @ round(($n_current / $n_notices) * 100); if ($percent == 0) $percent = 1; echo "

".$msg["export_running"]."


\n"; echo "
".round($percent)."%
\n"; echo "".sprintf($msg["export_progress"],$n_current,$n_notices,($n_notices - $n_current)).""; //Début d'export du lot //Recherche du no_notice le plus grand $requete="select max(no_notice) from import_marc where origine='$origine'"; $resultat=pmb_mysql_query($requete); $no_notice=pmb_mysql_result($resultat,0,0)*1+1; $z = 0; if(!empty($_SESSION["param_export"]["notice_exporte"])) $notice_exporte = $_SESSION["param_export"]["notice_exporte"]; else $notice_exporte=array(); if(!empty($_SESSION["param_export"]["bulletin_exporte"])) $bulletin_exporte = $_SESSION["param_export"]["bulletin_exporte"]; else $bulletin_exporte=array(); while (($z<200)&&(($n_current+$z)expl_bulletin_a_exporter[]=$bulletin_a_exporter[$b]; } } } $params = $param->get_parametres($param->context); //Pour le cas ou on exporte les exemplaires du panier d'exemplaires uniquement if(count($expl_a_exporter)) { $params['export_only_expl_ids'] = $expl_a_exporter; } if ($keep_explnum) { $params['explnum'] = 1; } if($id){//Pour éviter des erreurs si on export des exemplaires de bulletin sans monographie a partir d'un panier d'exemplaire do { $nn=$e -> get_next_notice($lender, $td, $sd, $keep_expl, $params); if ($e->notice) $e_notice[]=$e->notice; } while ($nn); $notice_exporte=$e->notice_exporte; } //Pour les exemplaires de bulletin do { $nn=$e -> get_next_bulletin($lender, $td, $sd, $keep_expl, $params); if ($e->notice) $e_notice[]=$e->notice; } while ($nn); $bulletin_exporte=$e->bulletins_exporte; } else { if(class_exists($param_path) && method_exists($param_path, '_export_notice_')) { $e_notice = $param_path::_export_notice_($id,$keep_expl); } else { $e_notice = _export_($id,$keep_expl); } } if (!is_array($e_notice)) { $requete = "insert into import_marc (no_notice, notice, origine) values($no_notice,'".addslashes($e_notice)."', '$origine')"; pmb_mysql_query($requete); $no_notice++; $z++; } else { $nb_notices = count($e_notice); for ($i = 0; $i < $nb_notices; $i++) { $requete = "insert into import_marc (no_notice, notice, origine) values($no_notice,'".addslashes($e_notice[$i])."', '$origine')"; pmb_mysql_query($requete); $no_notice++; } $z++; } } //Paramètres passés pour l'appel suivant $query = "n_current=". ($n_current + $z); $query.="&elt_flag=$elt_flag&elt_no_flag=$elt_no_flag&idcaddie=$idcaddie"; $query.= "&export_type=".$export_type."&first=1&keep_expl=$keep_expl&keep_explnum=$keep_explnum&origine=$origine"; if ($z < 200) { //Fin de l'export ?? echo ""; $_SESSION["param_export"]["notice_exporte"]=''; $_SESSION["param_export"]["bulletin_exporte"]=''; } else { //Lot suivant $_SESSION["param_export"]["notice_exporte"]=$notice_exporte; $_SESSION["param_export"]["bulletin_exporte"]=$bulletin_exporte; echo ""; } ?>