} echo "\n\t\t\t\t\t\t<div class='row'>\n\t\t\t\t\t\t{$notice_display}\n\t\t\t\t \t </div>\n\t\t\t\t\t\t<script type='text/javascript'>document.getElementById('el" . $r->notice_id . "Child').setAttribute('startOpen','Yes');</script>\n\t\t\t\t\t\t</div>"; continue; $enCours++; } } } $z->signature = $signature; if ($infos['notice']) { $z->notice = $infos['notice']; } if ($infos['source_id']) { $z->source_id = $infos['source_id']; } $z->var_to_post(); $ret = $z->insert_in_database(); $id_notice = $ret[1]; $rqt = "select recid from external_count where rid = '{$external_notice}'"; $res = mysql_query($rqt); if (mysql_num_rows($res)) { $recid = mysql_result($res, 0, 0); } $req = "insert into notices_externes set num_notice = '" . $id_notice . "', recid = '" . $recid . "'"; mysql_query($req); if ($ret[0]) { if ($z->bull_id && $z->perio_id) { $notice_display = new serial_display($ret[1], 6); } else { $notice_display = new mono_display($ret[1], 6); } $retour = "\n\t\t\t\t<script src='javascript/tablist.js'></script>\n\t\t\t\t<br /><div class='erreur'></div>\n\t\t\t\t<div class='row'>\n\t\t\t\t\t<div class='colonne10'>\n\t\t\t\t\t\t<img src='./images/tick.gif' align='left'>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class='colonne80'>\n\t\t\t\t\t\t<strong>" . (isset($notice_id) ? $msg["notice_connecteur_remplaced_ok"] : $msg["z3950_integr_not_ok"]) . "</strong>\n\t\t\t\t\t\t" . $notice_display->result . "\n\t\t\t\t\t</div>\n\t\t\t\t</div>";
function catalog_notice() { global $dbh; if ($this->sugg_noti_unimarc && !$this->num_notice) { $z = new z3950_notice("unimarc", $this->sugg_noti_unimarc); $z->var_to_post(); $ret = $z->insert_in_database(); //On attache la notice à la suggestion $req = " update suggestions set num_notice='" . $ret[1] . "' where id_suggestion='" . $this->id_suggestion . "'"; pmb_mysql_query($req, $dbh); } }
function doSync($id_connector, $id_source, $auto_import = false, $id_tache = '', $callback_listen_command = NULL, $callback_deals_command = NULL) { global $base_path, $dbh, $PMBuserid, $PMBusername, $msg, $charset; if (!$id_connector || !$id_source) { return array(); } if (SESSrights & ADMINISTRATION_AUTH) { $this->callback_listen_command = $callback_listen_command; $this->callback_deals_command = $callback_deals_command; $result = array(); $this->id_source = $id_source; $this->id_tache = $id_tache; $contrs = new connecteurs(); require_once $base_path . "/admin/connecteurs/in/" . $contrs->catalog[$id_connector]["PATH"] . "/" . $contrs->catalog[$id_connector]["NAME"] . ".class.php"; eval("\$conn=new " . $contrs->catalog[$id_connector]["NAME"] . "(\"" . $base_path . "/admin/connecteurs/in/" . $contrs->catalog[$id_connector]["PATH"] . "\");"); //Vérification qu'il n'y a pas de synchronisation en cours... $is_already_sync = false; $recover_env = ""; $recover = false; $requete = "select * from source_sync where source_id={$id_source}"; $resultat = mysql_query($requete, $dbh); if (mysql_num_rows($resultat)) { $rs_s = mysql_fetch_object($resultat); if (!$rs_s->cancel) { $result[] = $conn->msg["connecteurs_sync_currentexists"]; $is_already_sync = true; } else { $recover = true; $recover_env = $rs_s->env; $env = array(); } } else { $env = $conn->get_maj_environnement($id_source); } if (!$is_already_sync) { if (!$recover) { $requete = "insert into source_sync (source_id,nrecu,ntotal,date_sync) values({$id_source},0,0,now())"; $r = mysql_query($requete, $dbh); } else { $requete = "update source_sync set cancel=0 where source_id={$id_source}"; $r = mysql_query($requete, $dbh); } if ($r) { $n_maj = $conn->maj_entrepot($id_source, array(&$this, "callback_progress"), $recover, $recover_env); $result[] = sprintf($msg["connecteurs_count_notices"], $n_maj); $result[] = $conn->error_message; if (!$conn->error) { $this->callback_progress(1, $n_maj, $n_maj); $percent = 1; $requete = "update source_sync set percent=" . round($percent * 100) . " where source_id={$id_source}"; $r = mysql_query($requete, $dbh); $requete = "delete from source_sync where source_id=" . $id_source; mysql_query($requete); $requete = "update connectors_sources set last_sync_date=now() where source_id=" . $id_source; mysql_query($requete, $dbh); } else { if ($conn->break_maj($id_source)) { $requete = "delete from source_sync where source_id=" . $id_source; } else { $requete = "update source_sync set cancel=2 where source_id=" . $id_source; } mysql_query($requete, $dbh); $result[] = $conn->error_message; } } else { $result[] = mysql_error(); } } else { $result[] = $msg["connecteurs_sync_currentexists"]; } //si l'import automatique est activé if ($auto_import) { //on va chercher les notices non intégrées $query = "select distinct entrepot_source_" . $id_source . ".recid from entrepot_source_" . $id_source . " left join notices_externes on notices_externes.recid = concat(connector_id,' " . $id_source . " ',ref) where num_notice is null"; $result = mysql_query($query); if (mysql_num_rows($result)) { while ($row = mysql_fetch_object($result)) { $infos = entrepot_to_unimarc($row->recid); if ($infos['notice']) { $z = new z3950_notice("unimarc", $infos['notice'], $infos['source_id']); if ($pmb_notice_controle_doublons != 0) { $sign = new notice_doublon(true, $infos['source_id']); $signature = $sign->gen_signature($row->recid); } else { $signature = ""; } $z->signature = $signature; if ($infos['notice']) { $z->notice = $infos['notice']; } if ($infos['source_id']) { $z->source_id = $infos['source_id']; } $z->var_to_post(); $ret = $z->insert_in_database(false); $id_notice = $ret[1]; $rqt = "select recid from external_count where rid = '{$row->recid}'"; $res = mysql_query($rqt); if (mysql_num_rows($res)) { $recid = mysql_result($res, 0, 0); } $req = "insert into notices_externes set num_notice = '" . $id_notice . "', recid = '" . $recid . "'"; mysql_query($req); } } } } return $result; } else { return array(); } }
$signature = ""; $z = new z3950_notice("unimarc", $infos['notice'], $infos['source_id']); //on reporte la signature de la notice calculée ou non... if ($pmb_notice_controle_doublons != 0) { $sign = new notice_doublon(true, $infos['source_id']); $signature = $sign->gen_signature($item); } $z->signature = $signature; if ($infos['notice']) { $z->notice = $infos['notice']; } if ($infos['source_id']) { $z->source_id = $infos['source_id']; } $z->var_to_post(); $ret = $z->insert_in_database(true); //on conserve la trace de l'origine de la notice... $id_notice = $ret[1]; $rqt = "select recid from external_count where rid = '{$item}'"; $res = pmb_mysql_query($rqt); if (pmb_mysql_num_rows($res)) { $recid = pmb_mysql_result($res, 0, 0); } $req = "insert into notices_externes set num_notice = '" . $id_notice . "', recid = '" . $recid . "'"; pmb_mysql_query($req); if ($ret[0]) { if ($z->bull_id && $z->perio_id) { $notice_display = new serial_display($ret[1], 6); } else { $notice_display = new mono_display($ret[1], 6); }
if ($temp_nb_notice) { $not_id = mysql_result($myQuery, 0, 0); } else { $not_id = 0; } } // if ($not_id) METTRE ICI TRAITEMENT DU CHOIX DU DOUBLON echo "<script> alert('Existe déjà'); </script>" ; $notice = new z3950_notice($format, $ligne['z_marc']); } } $integration_OK = "PASFAIT"; $integrationexpl_OK = "PASFAIT"; switch ($action) { case "integrer": if (!$id_notice) { $res_integration = $notice->insert_in_database(); } else { $res_integration = $notice->update_in_database($id_notice); } $new_notice = $res_integration[0]; $num_notice = $res_integration[1]; if ($new_notice == 0 && $num_notice == 0) { $integration_OK = "ECHEC"; } if ($new_notice == 0 && $num_notice != 0) { $integration_OK = "EXISTAIT"; } if ($new_notice == 1 && $num_notice != 0) { $integration_OK = "OK"; } if ($new_notice == 2 && $num_notice != 0) {
function import($unimarc_notice = '', $source_id = '') { global $deflt_integration_notice_statut; global $gestion_acces_active, $gestion_acces_user_notice, $gestion_acces_empr_notice; if ($unimarc_notice) { $this->converted_notice = $unimarc_notice; } if ($source_id) { $this->source_id = $source_id; } if ($this->converted_notice) { $z = new z3950_notice('unimarc', $this->converted_notice); $z->source_id = $this->source_id; $z->statut = $deflt_integration_notice_statut; $z->var_to_post(); $retour = $z->insert_in_database(); if ($retour[0]) { //parce que les droits sur une nouvelle ressource se calculent forcément sur le formulare que n'existe pas dans ce cas... if ($gestion_acces_active == 1) { $ac = new acces(); //traitement des droits acces user_notice if ($gestion_acces_user_notice == 1) { $dom_1 = $ac->setDomain(1); $dom_1->applyRessourceRights($retour[1]); } //traitement des droits acces empr_notice if ($gestion_acces_empr_notice == 1) { $dom_2 = $ac->setDomain(2); $dom_2->applyRessourceRights($retour[1]); } } } } }
function save_unimarc_notice() { global $msg, $idbibli, $id_sug, $dbh; $req_uni = "select notice_unimarc from suggestions where id_suggestion='" . $id_sug . "'"; $res = mysql_query($req_uni, $dbh); if (mysql_num_rows($res)) { $notice_uni = mysql_result($res, 0, 0); } $z = new z3950_notice("form"); if ($notice_uni) { $z->notice = $notice_uni; } $ret = $z->insert_in_database(); if ($ret[0]) { if ($z->bull_id && $z->perio_id) { $notice_display = new serial_display($ret[1], 6); } else { $notice_display = new mono_display($ret[1], 6); } $retour = "\n\t\t<script src='javascript/tablist.js'></script>\n\t\t<br /><div class='erreur'></div>\n\t\t<div class='row'>\n\t\t\t<div class='colonne10'>\n\t\t\t\t<img src='./images/tick.gif' align='left'>\n\t\t\t</div>\n\t\t\t<div class='colonne80'>\n\t\t\t\t<strong>" . $msg["z3950_integr_not_ok"] . "</strong>\n\t\t\t\t" . $notice_display->result . "\n\t\t\t</div>\n\t\t</div>\n\t\t<div class='row'>"; if ($z->bull_id && $z->perio_id) { $url_view = "catalog.php?categ=serials&sub=bulletinage&action=view&bul_id={$z->bull_id}&art_to_show={$ret['1']}"; } else { $url_view = "catalog.php?categ=isbd&id=" . $ret[1]; } $retour .= "\n\t\t<form class='form-{$current_module}' name='dummy' >\n\t\t\t<input type='hidden' name='page' value='" . htmlentities($page, ENT_QUOTES, $charset) . "'/>\t\n\t\t\t<input type='button' name='ok' class='bouton' value='" . $msg["bt_retour"] . "' onClick=\"document.location='acquisition.php?categ=sug&action=modif&id_bibli={$idbibli}&id_sug={$id_sug}'\" /> \n\t\t\t<input type='button' name='cancel' class='bouton' value='" . $msg["z3950_integr_not_lavoir"] . "' onClick=\"document.location='{$url_view}'\"/>\n\t\t</form>\n\t\t<script type='text/javascript'>\n\t\t\tdocument.forms['dummy'].elements['ok'].focus();\n\t\t</script>\n\t\t</div>\n\t\t"; print $retour; //On attache la notice à la suggestion $req = " update suggestions set num_notice='" . $ret[1] . "' where id_suggestion='" . $id_sug . "'"; mysql_query($req, $dbh); } else { if ($ret[1]) { if ($z->bull_id && $z->perio_id) { $notice_display = new serial_display($ret[1], 6); } else { $notice_display = new mono_display($ret[1], 6); } $retour = "\n\t\t<script src='javascript/tablist.js'></script>\n\t\t<br /><div class='erreur'>{$msg['540']}</div>\n\t\t<div class='row'>\n\t\t\t<div class='colonne10'>\n\t\t\t\t<img src='./images/error.gif' align='left'>\n\t\t\t</div>\n\t\t\t<div class='colonne80'>\n\t\t\t\t<strong>" . $msg["z3950_integr_not_existait"] . "</strong><br /><br />\n\t\t\t\t" . $notice_display->result . "\n\t\t\t</div>\n\t\t</div>\n\t\t<div class='row'>"; if ($z->bull_id && $z->perio_id) { $url_view = "catalog.php?categ=serials&sub=bulletinage&action=view&bul_id={$z->bull_id}&art_to_show={$ret['1']}"; } else { $url_view = "catalog.php?categ=isbd&id=" . $ret[1]; } $retour .= "\n\t\t<form class='form-{$current_module}' name='dummy'>\n\t\t\t<input type='hidden' name='page' value='" . htmlentities($page, ENT_QUOTES, $charset) . "'/>\t\n\t\t\t<input type='button' name='ok' class='bouton' value='" . $msg["bt_retour"] . "' onClick=\"document.location='acquisition.php?categ=sug&action=modif&id_bibli={$idbibli}&id_sug={$id_sug}'\" /> \n\t\t\t<input type='button' name='cancel' class='bouton' value='" . $msg["z3950_integr_not_lavoir"] . "' onClick=\"document.location='{$url_view}'\"/>\n\t\t</form>\n\t\t<script type='text/javascript'>\n\t\t\tdocument.forms['dummy'].elements['ok'].focus();\n\t\t</script>\n\t\t</div>\n\t\t"; print $retour; //On attache la notice à la suggestion $req = " update suggestions set num_notice='" . $ret[1] . "' where id_suggestion='" . $id_sug . "'"; mysql_query($req, $dbh); } else { $retour = "<script src='javascript/tablist.js'></script>"; $retour .= form_error_message($msg["connecteurs_cant_integrate_title"], $ret[1] ? $msg["z3950_integr_not_existait"] : $msg["z3950_integr_not_newrate"], $msg["connecteurs_back_to_list"], "catalog.php?categ=search&mode=7&sub=launch", array("serialized_search" => $sc->serialize_search())); print $retour; } } }
function record() { global $pmb_notice_controle_doublons; global $recept_cat_error_form; global $integre, $serialized_post, $existant_notice_id, $existant_b_level, $existant_h_level, $signature, $id_lig, $serialized_search; $recorded = false; switch ($integre) { case 'new': $unserialized_post = unserialize(rawurldecode(stripslashes($serialized_post))); foreach ($unserialized_post as $key => $val) { if (get_magic_quotes_gpc()) { $GLOBALS[$key] = $val; } else { add_sl($val); $GLOBALS[$key] = $val; } global ${$key}; } $z = new z3950_notice("form"); $z->signature = $signature; $ret = $z->insert_in_database(); $notice_id = $ret[1]; $recorded = true; break; case 'existant': $notice_id = $existant_notice_id; $b_level = $existant_b_level; $h_level = $existant_h_level; $recorded = true; break; default: $duplicate = array(); $signature = ''; $r = object; if ($pmb_notice_controle_doublons != 0) { $sign = new notice_doublon(true); $signature = $sign->gen_signature(); $r = $sign->getDuplicate(); } if ($r->notice_id) { if ($r->niveau_biblio == 'a' && $r->niveau_hierar == 2) { //article $serial = new serial_display($r->notice_id, 6, '', '', '', '', '', 0, 2, 1, 0, 1, 0, 0, '', 0); $notice_display = $serial->result; } elseif ($r->niveau_biblio == 'm' && $r->niveau_hierar == 0) { //monographie $display = new mono_display($r->notice_id, 6, '', 1, '', '', '', 0, 2, 1, 1, '', 0, 0, 1, 0); $notice_display = $display->result; } $form = $recept_cat_error_form; $form = str_replace('!!serialized_post!!', rawurlencode(serialize($_POST)), $form); $form = str_replace('!!existant_notice_id!!', $r->notice_id, $form); $form = str_replace('!!existant_b_level!!', $r->niveau_biblio, $form); $form = str_replace('!!existant_h_level!!', $r->niveau_hierar, $form); $form = str_replace('!!signature!!', $signature, $form); $form = str_replace('!!id_lig!!', $id_lig, $form); $form = str_replace('!!serialized_search!!', stripslashes($serialized_search), $form); $form = str_replace('<!-- notice_display -->', $notice_display, $form); print $form; return false; } else { $z = new z3950_notice("form"); $z->signature = $signature; $ret = $z->insert_in_database(); $notice_id = $ret[1]; $recorded = true; } break; } if ($recorded) { global $id_bibli, $id_exer, $f_fou_code, $f_dem_code, $t_dem, $f_rub_code, $cde_query, $all_query, $chk_dev, $lgstat_filter; $unserialized_search = unserialize(rawurldecode(stripslashes($serialized_search))); $id_bibli = $unserialized_search['id_bibli']; $id_exer = $unserialized_search['id_exer']; $f_fou_code = $unserialized_search['f_fou_code']; $f_dem_code = $unserialized_search['f_dem_code']; $t_dem = $unserialized_search['t_dem']; $f_rub_code = $unserialized_search['f_rub_code']; $cde_query = $unserialized_search['cde_query']; $all_query = $unserialized_search['all_query']; $chk_dev = $unserialized_search['chk_dev']; $lgstat_filter = $unserialized_search['lgstat_filter']; if ($notice_id) { $typ_lig = 1; if ($b_level == 'a' && $h_level == 2) { $typ_lig = 5; } lignes_actes::updateFields(array(0 => $id_lig), array('num_produit' => $notice_id, 'type_ligne' => $typ_lig)); } } return $recorded; }