} require_once "{$class_path}/subcollection.class.php"; // la taille d'un paquet de notices $lot = SUBCOLLECTION_PAQUET_SIZE; // defini dans ./params.inc.php // taille de la jauge pour affichage $jauge_size = GAUGE_SIZE; // initialisation de la borne de départ if (!isset($start)) { $start = 0; } $v_state = urldecode($v_state); print "<br /><br /><h2 align='center'>" . htmlentities($msg["nettoyage_suppr_subcollections"], ENT_QUOTES, $charset) . "</h2>"; $query = mysql_query("SELECT sub_coll_id from sub_collections left join notices on sub_coll_id=subcoll_id where subcoll_id is null "); $affected = 0; if ($affected = mysql_num_rows($query)) { while ($ligne = mysql_fetch_object($query)) { $subcoll = new subcollection($ligne->sub_coll_id); $subcoll->delete(); } } //Nettoyage des informations d'autorités pour les sous collections subcollection::delete_autority_sources(); $query = mysql_query("update notices left join sub_collections ON sub_coll_id=subcoll_id SET subcoll_id=0 WHERE sub_coll_id is null"); $spec = $spec - CLEAN_SUBCOLLECTIONS; $v_state .= "<br /><img src=../../images/d.gif hspace=3>" . htmlentities($msg["nettoyage_suppr_subcollections"], ENT_QUOTES, $charset) . " : "; $v_state .= $affected . " " . htmlentities($msg["nettoyage_res_suppr_subcollections"], ENT_QUOTES, $charset); $opt = mysql_query('OPTIMIZE TABLE sub_collections'); // mise à jour de l'affichage de la jauge print "<table border='0' align='center' width='{$table_size}' cellpadding='0'><tr><td class='jauge'>\n \t\t<img src='../../images/jauge.png' width='{$jauge_size}' height='16'></td></tr></table>\n\t\t<div align='center'>100%</div>"; print "\n\t<form class='form-{$current_module}' name='process_state' action='./clean.php?spec={$spec}&start=0' method='post'>\n\t\t<input type='hidden' name='v_state' value=\"" . urlencode($v_state) . "\">\n\t\t<input type='hidden' name='spec' value=\"{$spec}\">\n\t\t</form>\n\t<script type=\"text/javascript\"><!--\n\t\tdocument.forms['process_state'].submit();\n\t\t-->\n\t</script>";
function delete() { global $dbh; global $msg; if (!$this->id) { // impossible d'accéder à cette notice de sous-collection return $msg[406]; } // récupération du nombre de notices affectées $requete = "SELECT COUNT(1) FROM notices WHERE "; $requete .= "subcoll_id=" . $this->id; $res = pmb_mysql_query($requete, $dbh); $nbr_lignes = pmb_mysql_result($res, 0, 0); if (!$nbr_lignes) { // On regarde si l'autorité est utilisée dans des vedettes composées $attached_vedettes = vedette_composee::get_vedettes_built_with_element($this->id, "subcollection"); 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"]; } // sous collection non-utilisée dans des notices : Suppression OK // effacement dans la table des collections $requete = "DELETE FROM sub_collections WHERE sub_coll_id=" . $this->id; $result = pmb_mysql_query($requete, $dbh); //suppression dans la table de stockage des numéros d'autorités... //Import d'autorité subcollection::delete_autority_sources($this->id); // liens entre autorités $aut_link = new aut_link(AUT_TABLE_SUB_COLLECTIONS, $this->id); $aut_link->delete(); $aut_pperso = new aut_pperso("subcollection", $this->id); $aut_pperso->delete(); // nettoyage indexation concepts $index_concept = new index_concept($this->id, TYPE_SUBCOLLECTION); $index_concept->delete(); // nettoyage indexation indexation_authority::delete_all_index($this->id, "authorities", "id_authority", AUT_TABLE_SUB_COLLECTIONS); // effacement de l'identifiant unique d'autorité $authority = new authority(0, $this->id, AUT_TABLE_SUB_COLLECTIONS); $authority->delete(); audit::delete_audit(AUDIT_SUB_COLLECTION, $this->id); return false; } else { // Cette collection est utilisé dans des notices, impossible de la supprimer return '<strong>' . $this->display . "</strong><br />{$msg[407]}"; } }