Beispiel #1
0
             }
             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);
     }
 }
Beispiel #3
0
 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);
    }
Beispiel #5
0
             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}'\" />&nbsp;\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}'\" />&nbsp;\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;
        }
    }
}
Beispiel #8
0
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;
}