示例#1
0
 function replace($by, $link_save = 0)
 {
     global $msg;
     global $dbh;
     global $pmb_synchro_rdf;
     if (!$by || !$this->id) {
         // pas de valeur de remplacement !!!
         return "L'identifiant editeur est vide ou l'editeur de remplacement est meme que celui d'origine !";
     }
     if ($this->id == $by) {
         // impossible de remplacer un editeur par lui-meme
         return $msg[228];
     }
     $aut_link = new aut_link(AUT_TABLE_PUBLISHERS, $this->id);
     // "Conserver les liens entre autorités" est demandé
     if ($link_save) {
         // liens entre autorités
         $aut_link->add_link_to(AUT_TABLE_PUBLISHERS, $by);
     }
     $aut_link->delete();
     // a) remplacement dans les notices
     $requete = "UPDATE notices SET ed1_id={$by} WHERE ed1_id=" . $this->id;
     $res = pmb_mysql_query($requete, $dbh);
     $requete = "UPDATE notices SET ed2_id={$by} WHERE ed2_id=" . $this->id;
     $res = pmb_mysql_query($requete, $dbh);
     // b) remplacement dans la table des collections
     $requete = "UPDATE collections SET collection_parent={$by} WHERE collection_parent=" . $this->id;
     $res = pmb_mysql_query($requete, $dbh);
     // c) suppression de l'editeur a remplacer
     $requete = "DELETE FROM publishers WHERE ed_id=" . $this->id;
     $res = pmb_mysql_query($requete, $dbh);
     audit::delete_audit(AUDIT_PUBLISHER, $this->id);
     editeur::update_index($by);
     //mise à jour de l'oeuvre rdf
     if ($pmb_synchro_rdf) {
         $synchro_rdf = new synchro_rdf();
         $synchro_rdf->replaceAuthority($this->id, $by, 'editeur');
     }
     return FALSE;
 }
 function replace($by, $link_save)
 {
     global $msg;
     global $dbh;
     global $pmb_synchro_rdf;
     if ($this->id == $by || !$this->id) {
         return $msg[223];
     }
     $aut_link = new aut_link(AUT_TABLE_TITRES_UNIFORMES, $this->id);
     // "Conserver les liens entre autorités" est demandé
     if ($link_save) {
         // liens entre autorités
         $aut_link->add_link_to(AUT_TABLE_TITRES_UNIFORMES, $by);
     }
     $aut_link->delete();
     // remplacement dans les responsabilités
     $requete = "UPDATE notices_titres_uniformes SET ntu_num_tu='{$by}' WHERE ntu_num_tu='{$this->id}' ";
     @pmb_mysql_query($requete, $dbh);
     $requete = "UPDATE responsability_tu set responsability_tu_num ='{$by}' where responsability_tu_num='" . $this->id . "' ";
     @pmb_mysql_query($requete);
     // effacement dans la table des titres_uniformes
     $requete = "DELETE FROM titres_uniformes WHERE tu_id='{$this->id}' ";
     pmb_mysql_query($requete, $dbh);
     // delete les champs répétables
     $requete = "DELETE FROM tu_distrib WHERE distrib_num_tu='{$this->id}' ";
     pmb_mysql_query($requete, $dbh);
     $requete = "DELETE FROM tu_ref WHERE ref_num_tu='{$this->id}' ";
     pmb_mysql_query($requete, $dbh);
     $requete = "DELETE FROM tu_subdiv WHERE subdiv_num_tu='{$this->id}' ";
     pmb_mysql_query($requete, $dbh);
     //nettoyage d'autorities_sources
     $query = "select * from authorities_sources where num_authority = " . $this->id . " and authority_type = 'uniform_title'";
     $result = pmb_mysql_query($query);
     if (pmb_mysql_num_rows($result)) {
         while ($row = pmb_mysql_fetch_object($result)) {
             if ($row->authority_favorite == 1) {
                 //on suprime les références si l'autorité a été importée...
                 $query = "delete from notices_authorities_sources where num_authority_source = " . $row->id_authority_source;
                 pmb_mysql_result($query);
                 $query = "delete from authorities_sources where id_authority_source = " . $row->id_authority_source;
                 pmb_mysql_result($query);
             } else {
                 //on fait suivre le reste
                 $query = "update authorities_sources set num_authority = " . $by . " where num_authority_source = " . $row->id_authority_source;
                 pmb_mysql_query($query);
             }
         }
     }
     audit::delete_audit(AUDIT_TITRE_UNIFORME, $this->id);
     // nettoyage indexation
     indexation_authority::delete_all_index($this->id, "authorities", "id_authority", AUT_TABLE_TITRES_UNIFORMES);
     // effacement de l'identifiant unique d'autorité
     $authority = new authority(0, $this->id, AUT_TABLE_TITRES_UNIFORMES);
     $authority->delete();
     titre_uniforme::update_index($by);
     //mise à jour de l'oeuvre rdf
     if ($pmb_synchro_rdf) {
         $synchro_rdf = new synchro_rdf();
         $synchro_rdf->replaceAuthority($this->id, $by, 'oeuvre');
     }
     return FALSE;
 }
示例#3
0
 function replace($by, $link_save = 0)
 {
     global $msg;
     global $dbh;
     global $pmb_synchro_rdf;
     if ($this->id == $by || !$this->id) {
         return $msg[223];
     }
     $aut_link = new aut_link(AUT_TABLE_AUTHORS, $this->id);
     // "Conserver les liens entre autorités" est demandé
     if ($link_save) {
         // liens entre autorités
         $aut_link->add_link_to(AUT_TABLE_AUTHORS, $by);
         // Voir aussi
         if ($this->see) {
             $requete = "UPDATE authors SET author_see='" . $this->see . "'  WHERE author_id='{$by}' ";
             @pmb_mysql_query($requete, $dbh);
         }
     }
     $aut_link->delete();
     // remplacement dans les responsabilités
     $requete = "UPDATE responsability SET responsability_author='{$by}' WHERE responsability_author='{$this->id}' ";
     @pmb_mysql_query($requete, $dbh);
     // effacement dans les responsabilités
     $requete = "DELETE FROM responsability WHERE responsability_author='{$this->id}' ";
     @pmb_mysql_query($requete, $dbh);
     // remplacement dans les titres uniformes
     $requete = "UPDATE responsability_tu SET responsability_tu_author_num='{$by}' WHERE responsability_tu_author_num='{$this->id}' ";
     @pmb_mysql_query($requete, $dbh);
     $requete = "DELETE FROM responsability_tu WHERE responsability_tu_author_num='{$this->id}' ";
     @pmb_mysql_query($requete, $dbh);
     // effacement dans la table des auteurs
     $requete = "DELETE FROM authors WHERE author_id='{$this->id}' ";
     pmb_mysql_query($requete, $dbh);
     // nettoyage d'autorities_sources
     $query = "select * from authorities_sources where num_authority = " . $this->id . " and authority_type = 'author'";
     $result = pmb_mysql_query($query);
     if (pmb_mysql_num_rows($result)) {
         while ($row = pmb_mysql_fetch_object($result)) {
             if ($row->authority_favorite == 1) {
                 // on suprime les références si l'autorité a été importée...
                 $query = "delete from notices_authorities_sources where num_authority_source = " . $row->id_authority_source;
                 pmb_mysql_result($query);
                 $query = "delete from authorities_sources where id_authority_source = " . $row->id_authority_source;
                 pmb_mysql_result($query);
             } else {
                 // on fait suivre le reste
                 $query = "update authorities_sources set num_authority = " . $by . " where num_authority_source = " . $row->id_authority_source;
                 pmb_mysql_query($query);
             }
         }
     }
     audit::delete_audit(AUDIT_AUTHOR, $this->id);
     auteur::update_index($by);
     // mise à jour de l'oeuvre rdf
     if ($pmb_synchro_rdf) {
         $synchro_rdf = new synchro_rdf();
         $synchro_rdf->replaceAuthority($this->id, $by, 'auteur');
     }
     return FALSE;
 }