num_noeud_racine; function traite_categories_enreg($notice_retour, $categories, $thesaurus_traite = 0) { // si $thesaurus_traite fourni, on ne delete que les catégories de ce thesaurus, sinon on efface toutes // les indexations de la notice sans distinction de thesaurus if (empty($thesaurus_traite)) { $rqt_del = "delete from notices_categories where notcateg_notice='$notice_retour' "; } else { $rqt_del = "delete from notices_categories where notcateg_notice='$notice_retour' and num_noeud in (select id_noeud from noeuds where num_thesaurus='$thesaurus_traite' and id_noeud=notices_categories.num_noeud) "; } $res_del = @pmb_mysql_query($rqt_del); $rqt_ins = "insert into notices_categories (notcateg_notice, num_noeud,ordre_categorie) VALUES "; $nb_categories = count($categories); for ($i = 0; $i < $nb_categories; $i++) { $id_categ = $categories[$i]['categ_id']; if (!empty($id_categ)) { $rqt = $rqt_ins . " ('$notice_retour','$id_categ',$i) "; $res_ins = @pmb_mysql_query($rqt); } } } function traite_categories_for_form($tableau_600 = array(), $tableau_601 = array(), $tableau_602 = array(), $tableau_605 = array(), $tableau_606 = array(), $tableau_607 = array(), $tableau_608 = array()) { global $charset, $pmb_keyword_sep, $rameau; $info_606_a = $tableau_606["info_606_a"] ; $info_606_j = $tableau_606["info_606_j"] ; $info_606_x = $tableau_606["info_606_x"] ; $info_606_y = $tableau_606["info_606_y"] ; $info_606_z = $tableau_606["info_606_z"] ; $champ_rameau=""; for ($a=0; $a "", "message" => "Rameau sera intégré sous forme d'arborescence unique \$a \$x \$y \$z deviennent TG > TS > TS > TS : ".htmlentities($champ_rameau,ENT_QUOTES,$charset)."" ); } function traite_categories_from_form() { global $rameau ; global $dbh; global $thes; $id_rech_theme = $thes->num_noeud_racine; $tableau_606 = unserialize(stripslashes($rameau)) ; $info_606_a = $tableau_606["info_606_a"] ; $info_606_j = $tableau_606["info_606_j"] ; $info_606_x = $tableau_606["info_606_x"] ; $info_606_y = $tableau_606["info_606_y"] ; $info_606_z = $tableau_606["info_606_z"] ; // ici récupération du code de admin/import/func_cnl.inc.php puis modif pour création du tableau des catégories, ce qui doit être retourné par la fonction $libelle_j = "" ; for ($a=0; $aid_thesaurus, 'fr_FR', $id_rech_theme); if ($res_a) { $categid_a = $res_a; } else { $categid_a = create_categ_z3950($id_rech_theme, $libelle_final, strip_empty_words($libelle_final)); } // récup des sous-categ en cascade sous $a $categ_parent = $categid_a ; for ($x=0 ; $x < count($info_606_x[$a]) ; $x++) { $res_x = categories::searchLibelle(addslashes(trim($info_606_x[$a][$x])), $thes->id_thesaurus, 'fr_FR', $categ_parent); if ($res_x) { $categ_parent = $res_x; } else { $categ_parent = create_categ_z3950($categ_parent, trim($info_606_x[$a][$x]), strip_empty_words($info_606_x[$a][$x])); } } // fin récup des $x en cascade sous l'id de la catégorie 606$a if ($categ_parent != $id_rech_theme) { $categ_retour[]['categ_id'] = $categ_parent ; } // récup TOUT EN CASCADE $id_rech_geo = $categ_parent ; // récup des categ géo à loger sous la categ géo principale $categ_parent = $id_rech_geo ; for ($y=0 ; $y < count($info_606_y[$a]) ; $y++) { $res_y = categories::searchLibelle(addslashes(trim($info_606_y[$a][$y])), $thes->id_thesaurus, 'fr_FR', $categ_parent); if ($res_y) { $categ_parent = $res_y; } else { $categ_parent = create_categ_z3950($categ_parent, trim($info_606_y[$a][$y]), strip_empty_words($info_606_y[$a][$y])); } } // fin récup des $y en cascade sous l'id de la catégorie principale thème géo if ($categ_parent != $id_rech_geo) { $categ_retour[]['categ_id'] = $categ_parent ; } // récup TOUT EN CASCADE $id_rech_chrono = $categ_parent ; // récup des categ chrono à loger sous la categ chrono principale $categ_parent = $id_rech_chrono ; for ($z=0 ; $z < count($info_606_z[$a]) ; $z++) { $res_z = categories::searchLibelle(addslashes(trim($info_606_z[$a][$z])), $thes->id_thesaurus, 'fr_FR', $categ_parent); if ($res_z) { $categ_parent = $res_z; } else { $categ_parent = create_categ_z3950($categ_parent, trim($info_606_z[$a][$z]), strip_empty_words($info_606_z[$a][$z])); } } // fin récup des $z en cascade sous l'id de la catégorie principale thème chrono if ($categ_parent != $id_rech_chrono) { $categ_retour[]['categ_id'] = $categ_parent ; } } // DEBUG echo "
"; print_r($categ_retour) ; echo "
"; exit ; return $categ_retour ; } function create_categ_z3950($num_parent, $libelle, $index) { global $thes; $n = new noeuds(); $n->num_thesaurus = $thes->id_thesaurus; $n->num_parent = $num_parent; $n->save(); $c = new categories($n->id_noeud, 'fr_FR'); $c->libelle_categorie = $libelle; $c->index_categorie = $index; $c->save(); return $n->id_noeud; }