$categ_ = str_replace("!!icateg!!", $i, $categ_); if ($see_also[$i]['rec']) { $categ_rec = "checked='checked'"; } else { $categ_rec = "unchecked='unchecked'"; } $categ_ = str_replace("!!chk!!", $categ_rec, $categ_); $see_also_form .= $categ_ . "\n"; } $see_also_form .= "</div>"; $form_renvoivoiraussi = str_replace("!!renvoi_voir_aussi!!", $see_also_form, $form_renvoivoiraussi); $category_form = str_replace("<!-- renvoivoiraussi -->", $form_renvoivoiraussi, $category_form); //liaisons $has_link = false; $categ_child_content = ""; if (noeuds::hasChild($id)) { $has_link = true; $odd_even = 1; if ($res = noeuds::listChilds($id, 0)) { $categ_child_content .= "\n\t\t\t\t<div class='row'>\n\t \t\t<label for='' class='etiquette'>{$msg['categ_childs']}</label>\n\t \t</div>\n\t \t<div class='row'>\n\t \t\t<table>"; while ($row = mysql_fetch_object($res)) { $tcateg = new category($row->id_noeud); if ($odd_even == 0) { $categ_child_content .= "\t<tr class='odd'>"; $odd_even = 1; } else { if ($odd_even == 1) { $categ_child_content .= "\t<tr class='even'>"; $odd_even = 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;
$browser_content .= "\t<tr class='even'>"; $odd_even = 0; } } $browser_content .= "<td><a href='" . $base_url . "&id_thes=" . $id_thesaurus . "'>" . htmlentities($libelle_thesaurus, ENT_QUOTES, $charset) . "</a>"; $browser_content .= "</td></tr>"; } } else { $thes = new thesaurus($id_thes); //si le parent n'est pas passe, on positionne //le parent comme étant le noeud racine du thesaurus if (!$parent) { $parent = $thes->num_noeud_racine; } //Si le parent n'as pas de fils, on remonte au noeud supérieur. if (!noeuds::hasChild($parent)) { $noeud = new noeuds($parent); $parent = $noeud->num_parent; } if ($thes == NULL) { $browser_content = $msg[4051]; affiche(); exit; } // on récupére le nombre de lignes qui vont bien $requete = "select count(1) "; $requete .= "from noeuds "; $requete .= "where "; $requete .= "noeuds.num_thesaurus = '" . $id_thes . "' "; if (!$last_param) { $requete .= "and noeuds.num_parent = '" . $parent . "' ";
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); } } }