function delete($id_noeud = 0) { global $dbh; if (!$id_noeud && is_object($this)) { $id_noeud = $this->id_noeud; } // Supprime les categories. $q = "delete from categories where num_noeud = '" . $id_noeud . "' "; pmb_mysql_query($q, $dbh); //Import d'autorité noeuds::delete_autority_sources($id_noeud); // Supprime les renvois voir_aussi vers ce noeud. $q = "delete from voir_aussi where num_noeud_dest = '" . $id_noeud . "' "; pmb_mysql_query($q, $dbh); // Supprime les renvois voir_aussi depuis ce noeud. $q = "delete from voir_aussi where num_noeud_orig = '" . $id_noeud . "' "; pmb_mysql_query($q, $dbh); // Supprime les associations avec des notices. $q = "delete from notices_categories where num_noeud = '" . $id_noeud . "' "; pmb_mysql_query($q, $dbh); //Supprime les emprises du noeud $req = "select map_emprise_id from map_emprises where map_emprise_type=2 and map_emprise_obj_num=" . $id_noeud; $result = pmb_mysql_query($req, $dbh); if (pmb_mysql_num_rows($result)) { $row = pmb_mysql_fetch_object($result); $q = "delete from map_emprises where map_emprise_obj_num ='" . $id_noeud . "' and map_emprise_type = 2"; pmb_mysql_query($q, $dbh); $req_areas = "delete from map_hold_areas where type_obj=2 and id_obj=" . $row->map_emprise_id; pmb_mysql_query($req_areas, $dbh); } //suppression des renvois voir restants $q = "update noeuds set num_renvoi_voir = '0' where num_renvoi_voir = '" . $id_noeud . "' "; pmb_mysql_query($q, $dbh); // Supprime le noeud. $q = "delete from noeuds where id_noeud = '" . $id_noeud . "' "; pmb_mysql_query($q, $dbh); audit::delete_audit(AUDIT_CATEG, $id_noeud); // liens entre autorités $aut_link = new aut_link(AUT_TABLE_CATEG, $id_noeud); $aut_link->delete(); $aut_pperso = new aut_pperso("categ", $id_noeud); $aut_pperso->delete(); // nettoyage indexation indexation_authority::delete_all_index($id_noeud, "authorities", "id_authority", AUT_TABLE_CATEG); // effacement de l'identifiant unique d'autorité $authority = new authority(0, $id_noeud, AUT_TABLE_CATEG); $authority->delete(); }
function replace($by, $link_save = 0) { global $msg; global $dbh; if (!$by) { // pas de valeur de remplacement !!! return "serious error occured, please contact admin..."; } if ($this->id == $by || !$this->id) { // impossible de remplacer une collection par elle-même return $msg[226]; } // a) remplacement dans les notices // on obtient les infos de la nouvelle collection $n_collection = new collection($by); if (!$n_collection->parent) { // la nouvelle collection est foireuse return $msg[406]; } $aut_link = new aut_link(AUT_TABLE_COLLECTIONS, $this->id); // "Conserver les liens entre autorités" est demandé if ($link_save) { // liens entre autorités $aut_link->add_link_to(AUT_TABLE_COLLECTIONS, $by); } $aut_link->delete(); $requete = "UPDATE notices SET ed1_id=" . $n_collection->parent . ", coll_id={$by} WHERE coll_id=" . $this->id; $res = pmb_mysql_query($requete, $dbh); // b) remplacement dans la table des sous-collections $requete = "UPDATE sub_collections SET sub_coll_parent={$by} WHERE sub_coll_parent=" . $this->id; $res = pmb_mysql_query($requete, $dbh); // c) suppression de la collection $requete = "DELETE FROM collections WHERE collection_id=" . $this->id; $res = pmb_mysql_query($requete, $dbh); //nettoyage d'autorities_sources $query = "select * from authorities_sources where num_authority = " . $this->id . " and authority_type = 'collection'"; $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_COLLECTION, $this->id); // nettoyage indexation indexation_authority::delete_all_index($this->id, "authorities", "id_authority", AUT_TABLE_COLLECTIONS); // effacement de l'identifiant unique d'autorité $authority = new authority(0, $this->id, AUT_TABLE_COLLECTIONS); $authority->delete(); collection::update_index($by); return TRUE; }
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; }
function replace($by, $link_save = 0) { // à compléter global $msg; global $dbh; if (!$by) { // pas de valeur de remplacement !!! return "serious error occured, please contact admin..."; } if ($this->s_id == $by || !$this->s_id) { // impossible de remplacer une autorité par elle-même return $msg[411]; } $aut_link = new aut_link(AUT_TABLE_SERIES, $this->s_id); // "Conserver les liens entre autorités" est demandé if ($link_save) { // liens entre autorités $aut_link->add_link_to(AUT_TABLE_SERIES, $by); } $aut_link->delete(); // a) remplacement dans les notices $requete = "UPDATE notices SET tparent_id={$by} WHERE tparent_id=" . $this->s_id; $res = pmb_mysql_query($requete, $dbh); $rqt_notice = "select notice_id,tit1,tit2,tit3,tit4 from notices where tparent_id=" . $by; $r_notice = pmb_mysql_query($rqt_notice); while ($r = pmb_mysql_fetch_object($r_notice)) { $rq_serie = "update notices, series set notices.index_serie=serie_index, notices.index_wew=concat(serie_name,' ',tit1,' ',tit2,' ',tit3,' ',tit4),notices.index_sew=concat(' ',serie_index,' ','" . addslashes(strip_empty_words($r->tit1 . " " . $r->tit2 . " " . $r->tit3 . " " . $r->tit4)) . "',' ') where notice_id=" . $r->notice_id . " and serie_id=tparent_id"; pmb_mysql_query($rq_serie); } // b) suppression du titre de série à remplacer $requete = "DELETE FROM series WHERE serie_id=" . $this->s_id; $res = pmb_mysql_query($requete, $dbh); audit::delete_audit(AUDIT_SERIE, $this->s_id); // nettoyage indexation indexation_authority::delete_all_index($this->s_id, "authorities", "id_authority", AUT_TABLE_SERIES); // effacement de l'identifiant unique d'autorité $authority = new authority(0, $this->s_id, AUT_TABLE_SERIES); $authority->delete(); serie::update_index($by); return FALSE; }
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); // nettoyage indexation indexation_authority::delete_all_index($this->id, "authorities", "id_authority", AUT_TABLE_PUBLISHERS); // effacement de l'identifiant unique d'autorité $authority = new authority(0, $this->id, AUT_TABLE_PUBLISHERS); $authority->delete(); 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; }
public 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); // nettoyage indexation indexation_authority::delete_all_index($this->id, "authorities", "id_authority", AUT_TABLE_AUTHORS); // effacement de l'identifiant unique d'autorité $authority = new authority(0, $this->id, AUT_TABLE_AUTHORS); $authority->delete(); 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; }
function replace($by, $link_save) { global $msg; global $dbh; if (!$by) { // pas de valeur de remplacement !!! return "serious error occured, please contact admin..."; } if ($this->indexint_id == $by || !$this->indexint_id) { // impossible de remplacer une autorité par elle-même return $msg[indexint_self]; } $aut_link = new aut_link(AUT_TABLE_INDEXINT, $this->indexint_id); // "Conserver les liens entre autorités" est demandé if ($link_save) { // liens entre autorités $aut_link->add_link_to(AUT_TABLE_INDEXINT, $by); } $aut_link->delete(); // a) remplacement dans les notices $requete = "UPDATE notices SET indexint={$by} WHERE indexint='" . $this->indexint_id . "' "; $res = pmb_mysql_query($requete, $dbh); // b) suppression de l'indexation à remplacer $requete = "DELETE FROM indexint WHERE indexint_id=" . $this->indexint_id; $res = pmb_mysql_query($requete, $dbh); audit::delete_audit(AUDIT_INDEXINT, $this->indexint_id); // nettoyage indexation indexation_authority::delete_all_index($this->indexint_id, "authorities", "id_authority", AUT_TABLE_INDEXINT); // effacement de l'identifiant unique d'autorité $authority = new authority(0, $this->indexint_id, AUT_TABLE_INDEXINT); $authority->delete(); indexint::update_index($by); return FALSE; }