"", "message" => "Rameau sera intégré sous forme d'arborescence multiple : \$a \$x deviennent Recherche par terme > TG > TS, \$y devient Recherche géographique > TS, \$z devient Recherche chronologique > TS : ".htmlentities($champ_rameau,ENT_QUOTES,$charset)."" ); } function traite_categories_from_form() { global $rameau ; global $dbh; global $thes; $rac = $thes->num_noeud_racine; // récupération du 606 : récup en catégories en essayant de classer : // les sujets sous le terme "Recherche par terme" $id_rech_theme = categories::searchLibelle('Recherche par terme', $thes->id_thesaurus, 'fr_FR'); if (!$id_rech_theme) $id_rech_theme = create_categ_z3950($rac, 'Recherche par terme', strip_empty_words('Recherche par terme', 'fr_FR')); // les précisions géographiques sous le terme "Recherche géographique" $id_rech_geo = categories::searchLibelle('Recherche géographique', $thes->id_thesaurus, 'fr_FR'); if (!$id_rech_geo) $id_rech_geo = create_categ_z3950($rac, 'Recherche géographique', strip_empty_words('Recherche géographique', 'fr_FR')); // les précisions de période sous le terme "Recherche chronologique" $id_rech_chrono = categories::searchLibelle('Recherche chronologique', $thes->id_thesaurus, 'fr_FR'); if (!$id_rech_chrono) $id_rech_chrono = create_categ_z3950($rac, 'Recherche chronologique', strip_empty_words('Recherche chronologique', 'fr_FR')); // FIN paramétrage $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 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 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; }