gen_signature();
$requete="select signature, niveau_biblio ,niveau_hierar ,notice_id from notices where signature='$signature'";
$result = pmb_mysql_query($requete);
if ($dbls=pmb_mysql_num_rows($result)) {
//affichage de l'erreur, en passant tous les param postes (serialise) pour l'eventuel forcage
$tab=new stdClass();
$tab->POST = $_POST;
$tab->GET = $_GET;
$force_url= htmlentities(serialize($tab), ENT_QUOTES,$charset);
require_once("$class_path/mono_display.class.php");
print "
$msg[540]
".$msg["gen_signature_erreur_similaire"]."
";
if($dbls<$nb_per_page_search){
$maxAffiche=$dbls;
echo "".sprintf($msg["gen_signature_erreur_similaire_nb"],$dbls,$dbls)."
";
}else{
$maxAffiche=$nb_per_page_search;
echo "".sprintf($msg["gen_signature_erreur_similaire_nb"],$maxAffiche,$dbls)."
";
}
$enCours=1;
while($enCours<=$maxAffiche){
$r=pmb_mysql_fetch_object($result);
$records = array($r->notice_id);
$elements_records_list_ui = new elements_records_list_ui($records, count($records), false);
$notice_display = $elements_records_list_ui->get_elements_list();
echo "
$notice_display
";
$enCours++;
}
exit();
}
}
}else{
$tab= unserialize(stripslashes($force_url));
foreach($tab->GET as $key => $val){
if (get_magic_quotes_gpc())
$GLOBALS[$key] = $val;
else {
add_sl($val);
$GLOBALS[$key] = $val;
}
}
foreach($tab->POST as $key => $val){
if (get_magic_quotes_gpc())
$GLOBALS[$key] = $val;
else {
add_sl($val);
$GLOBALS[$key] = $val;
}
}
}
//on intègre...
$z=new z3950_notice("form");
//on reporte la signature de la notice calculée ou non...
$z->signature = $signature;
if($infos['notice']) $z->notice = $infos['notice'];
if($infos['source_id']) $z->source_id = $infos['source_id'];
if ($notice_id)
$ret=$z->update_in_database($notice_id);
else
$ret=$z->insert_in_database();
//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);
$retour = "
".($notice_id ? $msg["notice_connecteur_remplaced_ok"] : $msg["z3950_integr_not_ok"])."
".$notice_display->result."
";
if($z->bull_id && $z->perio_id) $url_view = analysis::get_permalink($ret[1], $z->bull_id);
else $url_view = notice::get_permalink($ret[1]);
$retour .= "
";
print $retour;
} 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 = "
$msg[540]
".($msg["z3950_integr_not_existait"])."
".$notice_display->result."
";
if($z->bull_id && $z->perio_id) $url_view = analysis::get_permalink($ret[1], $z->bull_id);
else $url_view = notice::get_permalink($ret[1]);
$retour .= "
";
print $retour;
}
else {
$retour = "";
$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;
}
break;
default:
if ($notice_id)
$notice_id_info = "¬ice_id=".$notice_id;
else
$notice_id_info = "";
//Construction de la notice UNIMARC
$infos=entrepot_to_unimarc($item);
if ($infos['notice']) {
//regardons si on ne l'a pas déjà traité
$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 = "select num_notice from notices_externes where recid like '$recid'";
$res = pmb_mysql_query($req);
if(pmb_mysql_num_rows($res)){
$integrate = true;
$id_notice = pmb_mysql_result($res,0,0);
$requete = "SELECT * FROM notices where notice_id = '".$id_notice."'";
$result = pmb_mysql_query($requete);
if(pmb_mysql_num_rows($result)){
$notice = pmb_mysql_fetch_object($result);
$records = array($notice->notice_id);
$elements_records_list_ui = new elements_records_list_ui($records, count($records), false);
$notice_display = $elements_records_list_ui->get_elements_list();
}
}else $integrate = false;
if($integrate == false || $force == 1) {
$z=new z3950_notice("unimarc",$infos['notice'],$infos['source_id']);
$z->libelle_form = $notice_id ? $msg['notice_connecteur_remplace_catal'] : '';
$entity_locking = new entity_locking($notice_id, TYPE_NOTICE);
if($z->bibliographic_level == "a" && $z->hierarchic_level=="2"){
if(!$entity_locking->is_locked()){
$form=$z->get_form("catalog.php?categ=search&mode=7&sub=integre&action=record".$notice_id_info."&item=$item",0,'button',true);
}else{
$form = $entity_locking->get_locked_form();
}
} else{
if(!$entity_locking->is_locked()){
$form=$z->get_form("catalog.php?categ=search&mode=7&sub=integre&action=record".$notice_id_info."&item=$item",0,'button');
}else{
$form = $entity_locking->get_locked_form();
}
}
if ($notice_id) {
$form=str_replace("","".sprintf($msg["notice_replace_external_action"],$notice_id, $item)."
",$form);
}
else
$form=str_replace("","".sprintf($msg["connecteurs_integrate"],$item)."
",$form);
$form=str_replace("","",$form);
print $form;
}else{
$tab=new stdClass();
$tab->POST = $_POST;
$tab->GET = $_GET;
$force_url= htmlentities(serialize($tab), ENT_QUOTES,$charset);
print "
$msg[540]
".$msg['external_notice_already_integrate']."
$notice_display
";
}
} else {
error_message_history($msg["connecteurs_unable_to_convert_title"], $msg["connecteurs_unable_to_convert"], 1);
}
break;
}
?>