예제 #1
0
 static function process_categ($id_noeud)
 {
     global $dbh;
     global $deleted;
     global $lot;
     $res = noeuds::listChilds($id_noeud, 0);
     $total = pmb_mysql_num_rows($res);
     if ($total) {
         while ($row = pmb_mysql_fetch_object($res)) {
             // la categorie a des filles qu'on va traiter
             noeuds::process_categ($row->id_noeud);
         }
         // après ménage de ses filles, reste-t-il des filles ?
         $total_filles = noeuds::hasChild($id_noeud);
         // categ utilisée en renvoi voir ?
         $total_see = noeuds::isTarget($id_noeud);
         // est-elle utilisée ?
         $iuse = noeuds::isUsedInNotices($id_noeud) + noeuds::isUsedinSeeALso($id_noeud);
         if (!$iuse && !$total_filles && !$total_see) {
             $deleted++;
             noeuds::delete($id_noeud);
         }
     } else {
         // la catégorie n'a pas de fille on va la supprimer si possible
         // regarder si categ utilisée
         $iuse = noeuds::isUsedInNotices($id_noeud) + noeuds::isUsedinSeeALso($id_noeud);
         if (!$iuse) {
             $deleted++;
             noeuds::delete($id_noeud);
         }
     }
 }
예제 #2
0
 function cleanCategories()
 {
     global $msg, $dbh, $charset, $PMBusername;
     if ($deleted == "") {
         $deleted = 0;
     }
     if (SESSrights & ADMINISTRATION_AUTH) {
         $result .= "<h3>" . htmlentities($msg["nettoyage_suppr_categories"], ENT_QUOTES, $charset) . "</h3>";
         $list_thesaurus = thesaurus::getThesaurusList();
         foreach ($list_thesaurus as $id_thesaurus => $libelle_thesaurus) {
             $thes = new thesaurus($id_thesaurus);
             $noeud_rac = $thes->num_noeud_racine;
             $r = noeuds::listChilds($noeud_rac, 0);
             while ($row = mysql_fetch_object($r)) {
                 noeuds::process_categ($row->id_noeud);
             }
         }
         //TODO non repris >> Utilité ???
         //	$delete = mysql_query("delete from categories where categ_libelle='#deleted#'");
         $result .= $deleted . " " . htmlentities($msg["nettoyage_res_suppr_categories"], ENT_QUOTES, $charset);
         $optn = noeuds::optimize();
         $optc = categories::optimize();
     } else {
         $result .= sprintf($msg["planificateur_rights_bad_user_rights"], $PMBusername);
     }
     return $result;
 }
예제 #3
0
//			if(!$iuse) {
//				$deleted++ ;
//				noeuds::delete($id_noeud);
//			}
//	}
//
//}
$v_state = urldecode($v_state);
if ($deleted == "") {
    $deleted = 0;
}
print "<br /><br /><h2 align='center'>" . htmlentities($msg["nettoyage_suppr_categories"], ENT_QUOTES, $charset) . "</h2>";
$list_thesaurus = thesaurus::getThesaurusList();
foreach ($list_thesaurus as $id_thesaurus => $libelle_thesaurus) {
    $thes = new thesaurus($id_thesaurus);
    $noeud_rac = $thes->num_noeud_racine;
    $r = noeuds::listChilds($noeud_rac, 0);
    while ($row = mysql_fetch_object($r)) {
        noeuds::process_categ($row->id_noeud);
    }
}
//Nettoyage des informations d'autorités pour les sous collections
noeuds::delete_autority_sources();
$spec = $spec - CLEAN_CATEGORIES;
//TODO non repris >> Utilité ???
//	$delete = mysql_query("delete from categories where categ_libelle='#deleted#'");
$v_state .= "<br /><img src=../../images/d.gif hspace=3>" . htmlentities($msg["nettoyage_suppr_categories"], ENT_QUOTES, $charset) . " : ";
$v_state .= $deleted . " " . htmlentities($msg["nettoyage_res_suppr_categories"], ENT_QUOTES, $charset);
$optn = noeuds::optimize();
$optc = categories::optimize();
print "<form class='form-{$current_module}' name='process_state' action='./clean.php' method='post'>\n\t\t\t\t<input type='hidden' name='v_state' value=\"" . urlencode($v_state) . "\">\n\t\t\t\t<input type='hidden' name='spec' value=\"{$spec}\">\n\t\t\t</form>\n\t\t\t<script type=\"text/javascript\"><!--\n\t\t\t\tdocument.forms['process_state'].submit();\n\t\t\t\t-->\n\t\t\t</script>";