function delete() { global $dbh; global $msg; if (!$this->id) { // impossible d'accéder à cette notice auteur return $msg[403]; } // effacement dans les notices // récupération du nombre de notices affectées $requete = "SELECT count(1) FROM responsability WHERE "; $requete .= "responsability_author='{$this->id}' "; $res = pmb_mysql_query($requete, $dbh); $nbr_lignes = pmb_mysql_result($res, 0, 0); if ($nbr_lignes) { // Cet auteur est utilisé dans des notices, impossible de le supprimer return '<strong>' . $this->display . "</strong><br />{$msg[402]}"; } // effacement dans les titres uniformes // récupération du nombre de titres affectées $requete = "SELECT count(1) FROM responsability_tu WHERE "; $requete .= "responsability_tu_author_num='{$this->id}' "; $res = pmb_mysql_query($requete, $dbh); $nbr_lignes = pmb_mysql_result($res, 0, 0); if ($nbr_lignes) { // Cet auteur est utilisé dans des tirres uniformes, impossible de le supprimer return '<strong>' . $this->display . "</strong><br />{$msg[tu_dont_del_author]}"; } $attached_vedettes = vedette_composee::get_vedettes_built_with_element($this->id, "author"); if (count($attached_vedettes)) { // Cette autorité est utilisée dans des vedettes composées, impossible de la supprimer return '<strong>' . $this->display . "</strong><br />" . $msg["vedette_dont_del_autority"]; } // liens entre autorités $aut_link = new aut_link(AUT_TABLE_AUTHORS, $this->id); $aut_link->delete(); $aut_pperso = new aut_pperso("author", $this->id); $aut_pperso->delete(); // nettoyage indexation concepts $index_concept = new index_concept($this->id, TYPE_AUTHOR); $index_concept->delete(); // suppression dans la table de stockage des numéros d'autorités... auteur::delete_autority_sources($this->id); // on supprime automatiquement les formes rejetes $query = "select author_id from authors where author_see = " . $this->id; $result = pmb_mysql_query($query); if (pmb_mysql_num_rows($result)) { while ($row = pmb_mysql_fetch_object($result)) { // on regarde si cette forme est utilisée... $query2 = "select count(responsability_author) from responsability where responsability_author =" . $row->author_id; $result2 = pmb_mysql_query($query2); $query3 = "select count(responsability_tu_author_num) from responsability_tu where responsability_tu_author_num =" . $row->author_id; $result3 = pmb_mysql_query($query3); $rejete = new auteur($row->author_id); // elle est utilisée donc on nettoie juste la référence if (pmb_mysql_num_rows($result2) || pmb_mysql_num_rows($result3)) { pmb_mysql_query("update authors set author_see= 0 where author_id = " . $row->author_id); } else { // sinon, on supprime... $rejete->delete(); } } } audit::delete_audit(AUDIT_AUTHOR, $this->id); // effacement dans l'entrepot rdf auteur::delete_enrichment($id); // effacement dans la table des auteurs $requete = "DELETE FROM authors WHERE author_id='{$this->id}' "; pmb_mysql_query($requete, $dbh); return false; }