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); } } }
exit; } } // error_message($msg[321], $msg[categ_delete_used], 1, "./autorites.php?categ=categories&id=$id&sub=categ_form&parent=$parent"); // exit(); } elseif (count(noeuds::listTargetsOrphansOnly($id)) && !isset($force_delete_target)) { box_confirm_message($msg[321], $msg[confirm_suppr_categ_rejete], "./autorites.php?categ=categories&sub=delete&parent={$parent}&id={$id}&force_delete_target=1", "./autorites.php?categ=categories&id={$id}&sub=categ_form&parent={$parent}", $msg[40], $msg[39]); exit; } else { $array_to_delete = array(); $id_list_orphans = noeuds::listTargetsOrphansOnly($id); if (count($id_list_orphans)) { foreach ($id_list_orphans as $id_orphan) { // on n'efface pas les termes orphelins avec terme spécifique // on n'efface pas les termes orphelins utilisées en indexation if (!noeuds::hasChild($id_orphan) && !noeuds::isUsedInNotices($id_orphan)) { $array_to_delete[] = $id_orphan; } } } $array_to_delete[] = $id; foreach ($array_to_delete as $id_to_delete) { //On met à jour le graphe rdf avant de supprimer if ($pmb_synchro_rdf) { $arrayIdImpactes = array(); $synchro_rdf = new synchro_rdf(); $noeud = new noeuds($id_to_delete); $thes = new thesaurus($noeud->num_thesaurus); //parent if ($noeud->num_parent != $thes->num_noeud_racine) { $arrayIdImpactes[] = $noeud->num_parent;
die("no access"); } require_once "{$class_path}/category.class.php"; require_once "{$class_path}/noeuds.class.php"; require_once $class_path . "/thesaurus.class.php"; require_once $class_path . "/synchro_rdf.class.php"; if (noeuds::hasChild($id)) { error_message($msg[321], $msg[322], 1, "./autorites.php?categ=categories&id={$id}&sub=categ_form&parent={$parent}"); exit; } elseif (noeuds::isTarget($id)) { error_message($msg[321], $msg[thes_suppr_impossible_renvoi_voir], 1, "./autorites.php?categ=categories&id={$id}&sub=categ_form&parent={$parent}"); exit; } elseif (noeuds::isProtected($id)) { error_message($msg[321], $msg[thes_suppr_impossible_protege], 1, "./autorites.php?categ=categories&id={$id}&sub=categ_form&parent={$parent}"); exit; } elseif (noeuds::isUsedInNotices($id)) { if ($forcage == 1) { $tab = unserialize(urldecode($ret_url)); foreach ($tab->GET as $key => $val) { $GLOBALS[$key] = $val; } foreach ($tab->POST as $key => $val) { $GLOBALS[$key] = $val; } //On met à jour le graphe rdf avant de supprimer if ($pmb_synchro_rdf) { $arrayIdImpactes = array(); $synchro_rdf = new synchro_rdf(); $noeud = new noeuds($id); $thes = new thesaurus($noeud->num_thesaurus); //parent