Esempio n. 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);
         }
     }
 }
Esempio n. 2
0
            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;
Esempio n. 3
0
    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