function create_categ($th, $num_parent, $libelle, $index, $num_aut = '')
{
    //global $thes;
    $n = new noeuds();
    $n->num_thesaurus = $th->id_thesaurus;
    $n->num_parent = $num_parent;
    $n->autorite = $num_aut;
    $n->save();
    $c = new categories($n->id_noeud, 'fr_FR');
    $c->libelle_categorie = $libelle;
    $c->index_categorie = $index;
    $c->save();
    return $n->id_noeud;
}
Пример #2
0
 static function listAncestors($num_noeud = 0, $langue)
 {
     global $dbh;
     /*if(!$num_noeud) { // Pas de $this dans une static
     			$num_noeud = $this->num_noeud;
     			$langue = $this->langue;
     		}*/
     $thes = thesaurus::getByEltId($num_noeud);
     $id_list = noeuds::listAncestors($num_noeud);
     $id_list = array_reverse($id_list);
     $anc_list = array();
     foreach ($id_list as $key => $id) {
         if (categories::exists($id, $langue)) {
             $lg = $langue;
         } else {
             $lg = $thes->langue_defaut;
         }
         $q = "select * from noeuds, categories ";
         $q .= "where categories.num_noeud = '" . $id . "' ";
         $q .= "and categories.langue = '" . $lg . "' ";
         $q .= "and categories.num_noeud = noeuds.id_noeud ";
         $q .= "limit 1";
         $r = pmb_mysql_query($q, $dbh);
         while ($row = pmb_mysql_fetch_object($r)) {
             $anc_list[$id]['num_noeud'] = $row->num_noeud;
             $anc_list[$id]['num_parent'] = $row->num_parent;
             $anc_list[$id]['num_renvoi_voir'] = $row->num_renvoi_voir;
             $anc_list[$id]['visible'] = $row->visible;
             $anc_list[$id]['num_thesaurus'] = $row->num_thesaurus;
             $anc_list[$id]['langue'] = $row->langue;
             $anc_list[$id]['libelle_categorie'] = $row->libelle_categorie;
             $anc_list[$id]['note_application'] = $row->note_application;
             $anc_list[$id]['comment_public'] = $row->comment_public;
             $anc_list[$id]['comment_voir'] = $row->comment_voir;
             $anc_list[$id]['index_categorie'] = $row->index_categorie;
             $anc_list[$id]['autorite'] = $row->autorite;
         }
     }
     return $anc_list;
 }
Пример #3
0
function import_new_notice_suite()
{
    global $id_unimarc, $info_100, $notice_id, $info_606_a, $info_606_9, $info_900, $info_950, $info_951;
    global $suffix, $isbn_OK, $from_file, $thesaurus_defaut;
    global $bibliographic_level, $hierarchic_level;
    if (trim($info_100[0])) {
        $date = decoupe_date(substr($info_100[0], 0, 8));
        $requete = "update notices set create_date = '" . addslashes($date) . "' where notice_id='" . $notice_id . "' ";
        mysql_query($requete);
        /*if(!mysql_query($requete)){
        			echo "requete echoué : ".$requete."<br>";
        		}*/
    }
    $incr_categ = 0;
    if (count($info_606_a)) {
        $thes = new thesaurus($thesaurus_defaut);
        for ($i = 0; $i < count($info_606_a); $i++) {
            if ($libelle = trim($info_606_a[$i][0])) {
                //echo "ici : ".$info_606[$i]["a"]."<br>";
                $trouve = false;
                $id_noeud = 0;
                foreach ($info_606_9[$i] as $value) {
                    if (preg_match("/^id:([0-9]+)\$/", $value, $matches)) {
                        $id_noeud = $matches[1];
                        break;
                    }
                }
                if ($id_noeud) {
                    if (categories::exists($id_noeud, "fr_FR")) {
                        //echo "la : ".$info_606[$i]["a"]."<br>";
                        $categ = new categories($id_noeud, "fr_FR");
                        if ($categ->libelle_categorie == $libelle) {
                            //echo "ou la : ".$info_606[$i]["a"]."<br>";
                            // ajout de l'indexation à la notice dans la table notices_categories
                            $rqt_ajout = "insert into notices_categories set notcateg_notice='" . $notice_id . "', num_noeud='" . $categ->num_noeud . "', ordre_categorie='" . $incr_categ . "' ";
                            $res_ajout = @mysql_query($rqt_ajout);
                            $incr_categ++;
                            $trouve = true;
                        }
                    }
                }
                if (!$trouve) {
                    //Je regarde si il y a une autre catégorie avec ce libellé dans les thésaurus
                    $q = "SELECT id_noeud from noeuds JOIN categories ON noeuds.id_noeud = categories.num_noeud WHERE categories.libelle_categorie = '" . addslashes($libelle) . "'";
                    $res = mysql_query($q);
                    if ($res) {
                        if (mysql_num_rows($res) == 1) {
                            $rqt_ajout = "insert into notices_categories set notcateg_notice='" . $notice_id . "', num_noeud='" . mysql_result($res, 0, 0) . "', ordre_categorie='" . $incr_categ . "' ";
                            $res_ajout = @mysql_query($rqt_ajout);
                            $incr_categ++;
                        } elseif (mysql_num_rows($res) > 1) {
                            $mon_msg = "Catégorie non reprise car elle est présente plusieurs fois dans les thésaurus de PMB: " . $libelle;
                            affiche_mes_erreurs($mon_msg);
                        } else {
                            $n = new noeuds();
                            $n->num_parent = $thes->num_noeud_racine;
                            $n->num_thesaurus = $thesaurus_defaut;
                            $n->save();
                            $resultat = $id_n = $n->id_noeud;
                            $c = new categories($id_n, $thes->langue_defaut);
                            $c->libelle_categorie = $libelle;
                            $c->save();
                            $rqt_ajout = "insert into notices_categories set notcateg_notice='" . $notice_id . "', num_noeud='" . $id_n . "', ordre_categorie='" . $incr_categ . "' ";
                            $res_ajout = @mysql_query($rqt_ajout);
                            $incr_categ++;
                            $mon_msg = "Catégorie créée à la racine du thésaurus par défaut: " . $libelle;
                            affiche_mes_erreurs($mon_msg);
                        }
                    }
                }
            }
        }
    }
    if ($bibliographic_level == "s" && $hierarchic_level == "1" && count($info_950)) {
        foreach ($info_950 as $value) {
            //Emplacement
            if (!$value["c"]) {
                $mon_msg = "Etat de collection non importé car pas d'emplacement pour le périodique: " . $id_unimarc;
                affiche_mes_erreurs($mon_msg);
                continue;
            }
            $requete = "SELECT archempla_id FROM arch_emplacement WHERE archempla_libelle='" . addslashes($value["c"]) . "'";
            $res = mysql_query($requete);
            if (mysql_num_rows($res)) {
                $id_empl = mysql_result($res, 0, 0);
            } else {
                $requete = "INSERT INTO arch_emplacement(archempla_libelle) VALUES('" . addslashes($value["c"]) . "')";
                if (!mysql_query($requete)) {
                    $mon_msg = "Etat de collection non importé problème avec la requête: " . $requete;
                    affiche_mes_erreurs($mon_msg);
                    continue;
                } else {
                    $id_empl = mysql_insert_id();
                }
            }
            //Statut
            if (!$value["h"] && !$value["k"]) {
                $mon_msg = "Etat de collection non importé car pas de statut pour le périodique: " . $id_unimarc;
                affiche_mes_erreurs($mon_msg);
                continue;
            }
            $requete = "SELECT archstatut_id FROM arch_statut WHERE archstatut_gestion_libelle='" . addslashes($value["k"]) . "' AND  archstatut_opac_libelle='" . addslashes($value["h"]) . "'";
            $res = mysql_query($requete);
            if (mysql_num_rows($res)) {
                $id_statut = mysql_result($res, 0, 0);
            } else {
                $requete = "INSERT INTO arch_statut(archstatut_gestion_libelle,archstatut_opac_libelle) VALUES('" . addslashes($value["k"]) . "','" . addslashes($value["h"]) . "')";
                if (!mysql_query($requete)) {
                    $mon_msg = "Etat de collection non importé problème avec la requête: " . $requete;
                    affiche_mes_erreurs($mon_msg);
                    continue;
                } else {
                    $id_statut = mysql_insert_id();
                }
            }
            //Support
            if (!$value["d"]) {
                $mon_msg = "Etat de collection non importé car pas de support pour le périodique: " . $id_unimarc;
                affiche_mes_erreurs($mon_msg);
                continue;
            }
            $requete = "SELECT archtype_id FROM arch_type WHERE archtype_libelle='" . addslashes($value["d"]) . "'";
            $res = mysql_query($requete);
            if (mysql_num_rows($res)) {
                $id_support = mysql_result($res, 0, 0);
            } else {
                $requete = "INSERT INTO arch_type(archtype_libelle) VALUES('" . addslashes($value["d"]) . "')";
                if (!mysql_query($requete)) {
                    $mon_msg = "Etat de collection non importé problème avec la requête: " . $requete;
                    affiche_mes_erreurs($mon_msg);
                    continue;
                } else {
                    $id_support = mysql_insert_id();
                }
            }
            //Localisation
            if (!$value["a"]) {
                $mon_msg = "Etat de collection non importé car pas de localisation pour le périodique: " . $id_unimarc;
                affiche_mes_erreurs($mon_msg);
                continue;
            }
            $requete = "SELECT idlocation FROM docs_location WHERE location_libelle='" . addslashes($value["a"]) . "'";
            $res = mysql_query($requete);
            if (mysql_num_rows($res)) {
                $id_loc = mysql_result($res, 0, 0);
            } else {
                $requete = "INSERT INTO docs_location(location_libelle) VALUES('" . addslashes($value["a"]) . "')";
                if (!mysql_query($requete)) {
                    $mon_msg = "Etat de collection non importé problème avec la requête: " . $requete;
                    affiche_mes_erreurs($mon_msg);
                    continue;
                } else {
                    $id_loc = mysql_insert_id();
                }
            }
            $stat = $value["b"];
            $cote = $value["f"];
            $archive = $value["g"];
            $origine = $value["e"];
            $note = $value["j"];
            $lacune = $value["i"];
            $requete = "insert into collections_state(id_serial,location_id,state_collections,collstate_emplacement,collstate_type,collstate_origine,collstate_cote,collstate_archive,collstate_statut,collstate_lacune,collstate_note) values (" . "'" . $notice_id . "','" . $id_loc . "','" . addslashes($stat) . "','" . $id_empl . "','" . $id_support . "','" . addslashes($origine) . "','" . addslashes($cote) . "','" . addslashes($archive) . "','" . $id_statut . "','" . addslashes($lacune) . "','" . addslashes($note) . "'" . ")";
            if (!mysql_query($requete)) {
                $mon_msg = "Etat de collection non importé problème avec la requete: " . $requete;
                affiche_mes_erreurs($mon_msg);
                continue;
            } else {
                $id_coll_stat = mysql_insert_id();
                if (count($info_951)) {
                    foreach ($info_951 as $cle => $val) {
                        if ($val["f"] == $id_coll_stat) {
                            //Je suis bien sur un cp de cet exemplaire
                            if (!renseigne_cp($val, $id_coll_stat, "collstate")) {
                                $mon_msg = "La valeur  : " . $value["a"] . " n'a pas été reprise dans le champ personnalisé : " . $value["n"] . " car le champ n'existe pas";
                                affiche_mes_erreurs($mon_msg);
                            } else {
                                unset($info_951[$cle]);
                            }
                        }
                    }
                }
            }
        }
    }
    if (count($info_900)) {
        for ($i = 0; $i < count($info_900); $i++) {
            if (trim($info_900[$i]["a"])) {
                if (!renseigne_cp($info_900[$i], $notice_id)) {
                    $mon_msg = "La valeur  : " . $info_900[$i]["a"] . " n'a pas été reprise dans le champ personnalisé : " . $info_900[$i]["n"] . " car le champ n'existe pas ou n'est pas défini de la même façon";
                    affiche_mes_erreurs($mon_msg);
                }
            }
        }
    }
}
Пример #4
0
             $categ_child_content .= $zoom_comment . '</td>';
             if ($notice_count && $notice_count != 0) {
                 $categ_child_content .= "<td style='cursor: pointer; width:20%; text-align:center;' onmousedown=\"document.location='./catalog.php?categ=search&mode=1&etat=aut_search&aut_type=categ&aut_id={$tcateg->id}'\">" . $notice_count . "</td>";
             } else {
                 $categ_child_content .= "<td>&nbsp;</td>";
             }
             $categ_child_content .= '</tr>';
         }
         $categ_child_content .= "</table>\n\t\t\t\t</div>";
     }
 }
 $categ_renvoivoir_content = "";
 if (noeuds::isTarget($id)) {
     $has_link = true;
     $odd_even = 1;
     if ($res = noeuds::listTargets($id)) {
         $categ_renvoivoir_content .= "\n\t\t\t\t<div class='row'>\n\t        \t\t<label for='' class='etiquette'>{$msg['categ_renvoivoir']}</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);
             $categ_renvoivoir_content .= "\t<tr class='even'>";
             if ($odd_even == 0) {
                 $categ_renvoivoir_content .= "\t<tr class='odd'>";
                 $odd_even = 1;
             } else {
                 if ($odd_even == 1) {
                     $categ_renvoivoir_content .= "\t<tr class='even'>";
                     $odd_even = 0;
                 }
             }
             $notice_count = $tcateg->notice_count(false);
             $categ_renvoivoir_content .= "<td class='colonne80'>";
Пример #5
0
                $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 . "' ";
Пример #6
0
                $arrayIdImpactes[] = $noeud->num_parent;
            }
            //renvoi_voir
            if ($noeud->num_renvoi_voir) {
                $arrayIdImpactes[] = $noeud->num_renvoi_voir;
            }
            //on supprime le rdf
            if (count($arrayIdImpactes)) {
                foreach ($arrayIdImpactes as $idNoeud) {
                    $synchro_rdf->delConcept($idNoeud);
                }
            }
            $synchro_rdf->delConcept($id_to_delete);
        }
        // nettoyage indexation concepts
        $index_concept = new index_concept($id_to_delete, TYPE_CATEGORY);
        $index_concept->delete();
        noeuds::delete($id_to_delete);
        //On remet à jour les noeuds impactes
        if ($pmb_synchro_rdf) {
            if (count($arrayIdImpactes)) {
                foreach ($arrayIdImpactes as $idNoeud) {
                    $synchro_rdf->storeConcept($idNoeud);
                }
            }
            //On met à jour le thésaurus pour les topConcepts
            $synchro_rdf->updateAuthority($noeud->num_thesaurus, 'thesaurus');
        }
    }
}
include './autorites/subjects/default.inc.php';
Пример #7
0
function add_categ($term, $id_thesaurus, $non_classes, $lang)
{
    $n = new noeuds();
    $n->num_thesaurus = $id_thesaurus;
    $n->num_parent = $non_classes;
    $n->save();
    $c = new categories($n->id_noeud, $lang);
    $c->libelle_categorie = $term;
    $c->index_categorie = ' ' . strip_empty_words($term) . ' ';
    $c->save();
    return $n->id_noeud;
}
//	}
//	$req="update noeuds set path='$path' where id_noeud=$id_noeud";
//	pmb_mysql_query($req,$dbh);
//}
//function process_categ_index() {
//	global $dbh;
//
//	$q = "select * from categories ";
//	$r = pmb_mysql_query($q, $dbh);
//	while ($obj = pmb_mysql_fetch_object($r)) {
//		$thes = new categories($obj->num_noeud,$obj->langue);
//		$thes->update_index_path_word();
//	}
//}
// Pour tous les thésaurus, on parcours les childs
$list_thesaurus = thesaurus::getThesaurusList();
foreach ($list_thesaurus as $id_thesaurus => $libelle_thesaurus) {
    $thes = new thesaurus($id_thesaurus);
    $noeud_rac = $thes->num_noeud_racine;
    $r = noeuds::listChilds($noeud_rac, 0);
    while ($row = pmb_mysql_fetch_object($r)) {
        noeuds::process_categ_path($row->id_noeud);
    }
}
if ($thesaurus_auto_postage_search) {
    categories::process_categ_index();
}
$spec = $spec - CLEAN_CATEGORIES_PATH;
$v_state = urldecode($v_state);
$v_state .= "<br /><img src=../../images/d.gif hspace=3>" . htmlentities($msg["clean_categories_path_end"], ENT_QUOTES, $charset) . ".";
print "<form class='form-{$current_module}' name='process_state' action='./clean.php' method='post'>\n\t\t\t<input type='hidden' name='v_state' value=\"" . urlencode($v_state) . "\">\n\t\t\t<input type='hidden' name='spec' value=\"{$spec}\">\n\t\t</form>\n\t\t<script type=\"text/javascript\"><!--\n\t\t\tdocument.forms['process_state'].submit();\n\t\t\t-->\n\t\t</script>";
Пример #9
0
<?php

// +-------------------------------------------------+
// © 2002-2004 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net)
// +-------------------------------------------------+
// $Id: categ_replace.inc.php,v 1.2 2010-12-06 15:51:18 ngantier Exp $
if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) {
    die("no access");
}
// si tout est OK, on a les variables suivantes à exploiter :
// $id			identifiant du noeuds
// $parent	identifiant du parent du noeuds
// $by éventuelement l'identifiant du noeud à utiliser à la place
require_once "{$class_path}/noeuds.class.php";
$noeuds = new noeuds($id);
if (!$by) {
    if (noeuds::hasChild($id)) {
        //On regarde si le noeud remplacé a des enfants
        error_message($msg[321], $msg["categ_imposible_remplace_avec_fille"], 1, "./autorites.php?categ=categories&id={$id}&sub=categ_form&parent={$parent}");
        exit;
    } else {
        $noeuds->replace_categ_form($parent);
    }
} else {
    $rep = $noeuds->replace($by, $aut_link_save);
    if (!$rep) {
        $id = 0;
        $parent = 0;
        include "./autorites/subjects/default.inc.php";
    } else {
        error_message($msg[132], $rep, 1, "./autorites.php?categ=categories&sub=categ_replace&id={$id}&parent={$parent}");
Пример #10
0
 function fetch_node($node_id, $OPACUserId = -1)
 {
     $node_id += 0;
     if (!$node_id) {
         return FALSE;
     }
     $node = new noeuds($node_id);
     $result = array('node_id' => $node->id_noeud, 'node_thesaurus' => $node->num_thesaurus, 'node_target_id' => 0, 'node_target_categories' => array());
     global $dbh;
     if ($node->num_renvoi_voir) {
         $result['node_target_id'] = $node->num_renvoi_voir;
         $q = "select * from categories where num_noeud = '" . $node->num_renvoi_voir . "'";
         $r = pmb_mysql_query($q, $dbh);
         $result['node_target_categories'] = array();
         while ($obj = pmb_mysql_fetch_object($r)) {
             $categ = array();
             $categ['node_id'] = $node_id;
             $categ['category_caption'] = utf8_normalize($obj->libelle_categorie);
             $categ['category_lang'] = utf8_normalize($obj->langue);
             $result['node_target_categories'][] = $categ;
         }
     }
     $q = "select * from categories where num_noeud = '" . $node_id . "'";
     $r = pmb_mysql_query($q, $dbh);
     $result['node_categories'] = array();
     while ($obj = pmb_mysql_fetch_object($r)) {
         $categ = array();
         $categ['node_id'] = $node_id;
         $categ['category_caption'] = utf8_normalize($obj->libelle_categorie);
         $categ['category_lang'] = utf8_normalize($obj->langue);
         $result['node_categories'][] = $categ;
     }
     $path_ids = noeuds::listAncestors($node_id);
     $result['node_path'] = array();
     if ($path_ids) {
         $q = "select * from categories where num_noeud IN(" . implode(',', $path_ids) . ") order by num_noeud";
         $r = pmb_mysql_query($q, $dbh);
         $result['node_path'] = array();
         $current_node_id = 0;
         $categs = array();
         while ($obj = pmb_mysql_fetch_object($r)) {
             if (!$current_node_id) {
                 $current_node_id = $obj->num_noeud;
             }
             if ($current_node_id != $obj->num_noeud) {
                 $result['node_path'][] = array('node_id' => $current_node_id, 'categories' => $categs);
                 $categs = array();
                 $current_node_id = $obj->num_noeud;
             }
             $categ = array();
             $categ['node_id'] = $current_node_id;
             $categ['category_caption'] = utf8_normalize($obj->libelle_categorie);
             $categ['category_lang'] = utf8_normalize($obj->langue);
             $categs[] = $categ;
         }
         if ($current_node_id) {
             $result['node_path'][] = array('node_id' => $current_node_id, 'categories' => $categs);
         }
     }
     $children = array();
     $children_res = noeuds::listChilds($node_id, 1);
     while ($row = pmb_mysql_fetch_assoc($children_res)) {
         $children[] = $row['id_noeud'];
     }
     $result['node_children'] = array();
     if ($children) {
         $q = "select noeuds.id_noeud, noeuds.num_renvoi_voir, categories.* from categories left join noeuds on (noeuds.id_noeud = categories.num_noeud) where noeuds.id_noeud IN(" . implode(',', $children) . ") order by num_noeud, libelle_categorie";
         $r = pmb_mysql_query($q, $dbh);
         $result['node_children'] = array();
         $current_node_id = 0;
         $current_islink = false;
         $categs = array();
         while ($obj = pmb_mysql_fetch_object($r)) {
             if (!$current_node_id) {
                 $current_node_id = $obj->num_noeud;
             }
             if ($current_node_id != $obj->num_noeud) {
                 $result['node_children'][] = array('node_id' => $current_node_id, 'categories' => $categs, 'is_link' => $current_islink);
                 $categs = array();
                 $current_node_id = $obj->num_noeud;
                 $current_islink = $obj->num_renvoi_voir > 0 ? true : false;
             }
             $categ = array();
             $categ['node_id'] = $current_node_id;
             $categ['category_caption'] = utf8_normalize($obj->libelle_categorie);
             $categ['category_lang'] = utf8_normalize($obj->langue);
             $categs[] = $categ;
         }
         if ($current_node_id) {
             $result['node_children'][] = array('node_id' => $current_node_id, 'categories' => $categs, 'is_link' => $current_islink);
         }
     }
     $result['node_seealso'] = array();
     $q = "select voir_aussi.num_noeud_dest, categories.* from voir_aussi left join categories on (voir_aussi.num_noeud_dest = categories.num_noeud) where num_noeud_orig = " . $node_id . " order by voir_aussi.num_noeud_dest";
     $r = pmb_mysql_query($q, $dbh);
     $current_node_id = 0;
     $categs = array();
     while ($obj = pmb_mysql_fetch_object($r)) {
         if (!$current_node_id) {
             $current_node_id = $obj->num_noeud;
         }
         if ($current_node_id != $obj->num_noeud) {
             $result['node_seealso'][] = array('node_id' => $current_node_id, 'categories' => $categs);
             $categs = array();
             $current_node_id = $obj->num_noeud;
         }
         $categ = array();
         $categ['node_id'] = $current_node_id;
         $categ['category_caption'] = utf8_normalize($obj->libelle_categorie);
         $categ['category_lang'] = utf8_normalize($obj->langue);
         $categs[] = $categ;
     }
     if ($current_node_id) {
         $result['node_seealso'][] = array('node_id' => $current_node_id, 'categories' => $categs);
     }
     return $result;
 }
Пример #11
0
 function save()
 {
     global $dbh;
     global $msg;
     if ($this->libelle_thesaurus == '') {
         die("Erreur de création thésaurus");
     }
     if ($this->langue_defaut == '') {
         $this->langue_defaut = 'fr_FR';
     }
     if ($this->id_thesaurus) {
         //mise à jour thesaurus
         $q = "update thesaurus set libelle_thesaurus = '" . $this->libelle_thesaurus . "' ";
         $q .= ", active = '" . $this->active . "' ";
         $q .= ", opac_active = '" . $this->opac_active . "' ";
         $q .= ", langue_defaut = '" . $this->langue_defaut . "' ";
         $q .= "where id_thesaurus = '" . $this->id_thesaurus . "' ";
         $r = pmb_mysql_query($q, $dbh);
     } else {
         //création thesaurus
         $q = "insert into thesaurus set libelle_thesaurus = '" . $this->libelle_thesaurus . "', active = '1', opac_active = '1', langue_defaut = '" . $this->langue_defaut . "' ";
         $r = pmb_mysql_query($q, $dbh);
         $this->id_thesaurus = pmb_mysql_insert_id($dbh);
         //creation noeud racine
         $noeud = new noeuds();
         $noeud->autorite = 'TOP';
         $noeud->num_parent = 0;
         $noeud->num_renvoi_voir = 0;
         $noeud->visible = '0';
         $noeud->num_thesaurus = $this->id_thesaurus;
         $noeud->save();
         $this->num_noeud_racine = $noeud->id_noeud;
         //rattachement noeud racine au thesaurus
         $q = "update thesaurus set num_noeud_racine = '" . $this->num_noeud_racine . "' ";
         $q .= "where id_thesaurus = '" . $this->id_thesaurus . "' ";
         $r = pmb_mysql_query($q, $dbh);
         //creation noeud orphelins
         $noeud = new noeuds();
         $noeud->autorite = 'ORPHELINS';
         $noeud->num_parent = $this->num_noeud_racine;
         $noeud->num_renvoi_voir = 0;
         $noeud->visible = '0';
         $noeud->num_thesaurus = $this->id_thesaurus;
         $noeud->save();
         $this->num_noeud_orphelins = $noeud->id_noeud;
         //Creation catégorie orphelins langue par défaut
         $categ = new categories($this->num_noeud_orphelins, $this->langue_defaut);
         $categ->libelle_categorie = $msg["thes_orphelins"];
         $categ->save();
         //creation noeud non classes;
         $noeud = new noeuds();
         $noeud->autorite = 'NONCLASSES';
         $noeud->num_parent = $this->num_noeud_racine;
         $noeud->num_renvoi_voir = 0;
         $noeud->visible = '0';
         $noeud->num_thesaurus = $this->id_thesaurus;
         $noeud->save();
         $this->num_noeud_nonclasses = $noeud->id_noeud;
         //Creation catégorie non classes langue par défaut
         $categ = new categories($this->num_noeud_nonclasses, $this->langue_defaut);
         $categ->libelle_categorie = $msg["thes_non_classes"];
         $categ->save();
     }
 }
Пример #12
0
 function update($data, $id_thesaurus, $num_parent, $lang)
 {
     $lang = strtolower($lang);
     switch ($lang) {
         case "fr":
         case "fre":
         case "français":
         case "francais":
         case "french":
             $lang = "fr_FR";
             break;
         default:
             $lang = "fr_FR";
             break;
     }
     if ($data['label'] == "") {
         return 0;
     }
     if ($num_parent) {
         //Le noeud parent doit être dans le même thésaurus
         $req = "SELECT id_noeud FROM noeuds WHERE id_noeud='" . $num_parent . "' AND num_thesaurus='" . $id_thesaurus . "'";
         $res = pmb_mysql_query($req);
         if ($res && !pmb_mysql_num_rows($res)) {
             return 0;
         }
     }
     if ($this->id == 0) {
         $query = "select * from thesaurus where id_thesaurus = " . $id_thesaurus;
         $result = pmb_mysql_query($query);
         if (pmb_mysql_num_rows($result)) {
             $row = pmb_mysql_fetch_object($result);
             //création
             $n = new noeuds();
             $n->num_parent = $num_parent != 0 ? $num_parent : $row->num_noeud_racine;
             $n->num_thesaurus = $id_thesaurus;
             $n->save();
             $id = $n->id_noeud;
             $c = new categories($id, $lang);
             $c->libelle_categorie = $data['label'];
             $c->note_application = $data['note'];
             $c->comment_public = $data['comment'];
             $c->save();
             $this->id = $c->num_noeud;
             return 1;
         }
     } else {
         $c = new categories($this->id, $lang);
         $c->libelle_categorie = $data['label'];
         $c->note_application = $data['note'];
         $c->comment_public = $data['comment'];
         $c->save();
         return 1;
     }
 }
Пример #13
0
 function delete($id_thes = 0)
 {
     global $dbh;
     global $msg;
     global $pmb_synchro_rdf;
     if (!$id_thes) {
         $id_thes = $this->id_thesaurus;
     }
     if ($pmb_synchro_rdf) {
         $synchro_rdf = new synchro_rdf();
     }
     $q = "select id_noeud from noeuds where num_thesaurus = '" . $id_thes . "' ";
     $r = mysql_query($q, $dbh);
     while ($row = mysql_fetch_row($r)) {
         noeuds::delete($row[0]);
         /*$q1 = "delete from categories where num_noeud = '".$row[0]."' ";
         		$r1 = mysql_query($q1, $dbh);
         		$q2 = "delete from noeuds where id_noeud = '".$row[0]."' ";
         		$r2 = mysql_query($q2, $dbh);
         		*/
         if ($pmb_synchro_rdf) {
             $synchro_rdf->delConcept($row[0]);
         }
     }
     $q = "delete from thesaurus where id_thesaurus = '" . $id_thes . "' ";
     $r = mysql_query($q, $dbh);
     if ($pmb_synchro_rdf) {
         $synchro_rdf->delThesaurusDefinition($id_thes);
     }
 }
Пример #14
0
        $noeud = new noeuds($id);
        $thes = new thesaurus($noeud->num_thesaurus);
        //parent
        if ($noeud->num_parent != $thes->num_noeud_racine) {
            $arrayIdImpactes[] = $noeud->num_parent;
        }
        //renvoi_voir
        if ($noeud->num_renvoi_voir) {
            $arrayIdImpactes[] = $noeud->num_renvoi_voir;
        }
        //on supprime le rdf
        if (count($arrayIdImpactes)) {
            foreach ($arrayIdImpactes as $idNoeud) {
                $synchro_rdf->delConcept($idNoeud);
            }
        }
        $synchro_rdf->delConcept($id);
    }
    noeuds::delete($id);
    //On remet à jour les noeuds impactes
    if ($pmb_synchro_rdf) {
        if (count($arrayIdImpactes)) {
            foreach ($arrayIdImpactes as $idNoeud) {
                $synchro_rdf->storeConcept($idNoeud);
            }
        }
        //On met à jour le thésaurus pour les topConcepts
        $synchro_rdf->updateAuthority($noeud->num_thesaurus, 'thesaurus');
    }
}
include './autorites/subjects/default.inc.php';
Пример #15
0
function import_new_notice_suite()
{
    global $info_461, $info_463, $info_530;
    global $info_900, $info_901, $tit_200a;
    global $info_215, $titre_ppal_200, $champ_210, $titre_perio_530a;
    global $info_606_a, $info_897;
    global $notice_id;
    global $bull_id;
    global $bl, $hl;
    echo "<pre>";
    $bull_id = 0;
    //cas d'un article
    if ($bl == "a" && $hl == "2") {
        //on peut pas découper une date, on a pas de date mais une mention
        if (decoupe_date($info_463[0]["d"]) == 0 && clean_string($info_463[0]["e"]) == "") {
            $info_463[0]["e"] = $info_463[0]["d"];
            $info_463[0]["d"] = "";
        }
        $bulletin = array('titre' => clean_string($info_463[0]["t"]), 'date' => decoupe_date($info_463[0]["d"]), 'mention' => clean_string($info_463[0]["e"]), 'num' => clean_string($info_463[0]["v"]));
        $perio = array('titre' => $info_461[0]['t'], 'code' => $info_461[0]['x']);
        notice_to_article($perio, $bulletin);
        $update = " update notices set typdoc='t' where notice_id = {$notice_id}";
        mysql_query($update);
        //cas d'un bulletin
    } else {
        if ($bl == "s" && $hl == "2") {
            if (decoupe_date($champ_210[0]['h']) == 0 && clean_string($titre_ppal_200[0]['h']) == "") {
                $titre_ppal_200[0]['h'] = $champ_210[0]['h'];
                $champ_210[0]['h'] = "";
            }
            $bulletin = array('titre' => clean_string($titre_ppal_200[0]['i']), 'date' => decoupe_date($champ_210[0]['h']), 'mention' => clean_string($champ_210[0]['d']), 'num' => clean_string($titre_ppal_200[0]['h']));
            $perio = array('titre' => $info_461[0]['t'], 'code' => $info_461[0]['x']);
            $bull_id = genere_bulletin($perio, $bulletin);
            $update = " update notices set typdoc='t' where notice_id = {$notice_id}";
            mysql_query($update);
        }
    }
    //on s'occupe des descripteurs;
    $id_thesaurus = 1;
    $non_classes = 3;
    $lang = "fr_FR";
    $ordre_categ = 0;
    foreach ($info_606_a as $terms) {
        foreach ($terms as $term) {
            $categ_id = categories::searchLibelle(addslashes($term), $id_thesaurus, $lang);
            if ($categ_id) {
                //le terme existe
                $noeud = new noeuds($categ_id);
                if ($noeud->num_renvoi_voir) {
                    $categ_to_index = $noeud->num_renvoi_voir;
                } else {
                    $categ_to_index = $categ_id;
                }
            } else {
                //le terme est à créé
                $n = new noeuds();
                $n->num_thesaurus = $id_thesaurus;
                $n->num_parent = $non_classes;
                $n->save();
                $c = new categories($n->id_noeud, $lang);
                $c->libelle_categorie = $term;
                $c->index_categorie = ' ' . strip_empty_words($term) . ' ';
                $c->save();
                $categ_to_index = $n->id_noeud;
            }
            $requete = "INSERT INTO notices_categories (notcateg_notice,num_noeud,ordre_categorie) VALUES({$notice_id},{$categ_to_index},{$ordre_categ})";
            mysql_query($requete);
            $ordre_categ++;
        }
    }
    //on traite le commentaire de gestion
    $up = "update notices set commentaire_gestion = '" . addslashes($info_901[0][0]) . "' where notice_id = {$notice_id}";
    mysql_query($up);
    //traitement des Champs perso
    //classique on commence par cherché l'id
    foreach ($info_900 as $champperso) {
        $champ = array('libelle' => $champperso['l'], 'nom' => $champperso['n'], 'value' => $champperso['a']);
        recup_champ_perso($champ, "notices", $notice_id);
    }
    //gestion des 897$...
    foreach ($info_897 as $docnum) {
        //si on a pas d'url, on traite pas
        if ($docnum['u']) {
            //on reprend pas les site web...
            if ($docnum['m'] != "text/html") {
                $doc = array('titre' => clean_string($docnum['a']), 'mimetype' => $docnum['m'], 'nom_fic' => clean_string($docnum['f']), 'url' => $docnum['u']);
                create_docnum($doc);
            }
        }
    }
    echo "</pre>";
}
Пример #16
0
 function replace($by = 0, $link_save = 0)
 {
     global $msg, $dbh;
     global $pmb_synchro_rdf;
     if ($this->id_noeud == $by || !$this->id_noeud || !$by) {
         return $msg["categ_imposible_remplace_elle_meme"];
     }
     $aut_link = new aut_link(AUT_TABLE_CATEG, $this->id_noeud);
     // "Conserver les liens entre autorités" est demandé
     if ($link_save) {
         // liens entre autorités
         $aut_link->add_link_to(AUT_TABLE_CATEG, $by);
     }
     $aut_link->delete();
     //synchro_rdf : on empile les noeuds impactés pour les traiter plus loin
     if ($pmb_synchro_rdf) {
         $arrayIdImpactes = array();
         $arrayThesImpactes = array();
         $thes = thesaurus::getByEltId($this->id_noeud);
         $arrayThesImpactes[] = $thes->id_thesaurus;
         //parent
         if ($this->num_parent != $thes->num_noeud_racine) {
             $arrayIdImpactes[] = $this->num_parent;
         }
         //enfants
         $res = noeuds::listChilds($this->id_noeud, 1);
         if (pmb_mysql_num_rows($res)) {
             while ($row = pmb_mysql_fetch_array($res)) {
                 $arrayIdImpactes[] = $row[0];
             }
         }
         //renvoi_voir
         if ($this->num_renvoi_voir) {
             $arrayIdImpactes[] = $this->num_renvoi_voir;
         }
     }
     $noeuds_a_garder = new noeuds($by);
     //Si les noeuds sont du même thésaurus
     if ($noeuds_a_garder->num_thesaurus == $this->num_thesaurus) {
         //On déplace les catégories qui renvoi vers l'ancien noeuds pour qu'elle renvoie vers le nouveau
         if (noeuds::isTarget($this->id_noeud)) {
             $requete = "UPDATE noeuds SET num_renvoi_voir='" . $by . "' WHERE num_renvoi_voir='" . $this->id_noeud . "' and id_noeud!='" . $by . "' ";
             @pmb_mysql_query($requete, $dbh);
         }
         //On garde les liens voir_aussi
         $requete = "UPDATE ignore voir_aussi SET num_noeud_orig='" . $by . "' WHERE num_noeud_orig='" . $this->id_noeud . "' and num_noeud_dest!='" . $by . "' ";
         @pmb_mysql_query($requete, $dbh);
         $requete = "UPDATE ignore voir_aussi SET num_noeud_dest='" . $by . "' WHERE num_noeud_dest='" . $this->id_noeud . "' and num_noeud_orig!='" . $by . "'";
         @pmb_mysql_query($requete, $dbh);
     }
     if (noeuds::isTarget($this->id_noeud)) {
         //Si le noeuds à supprimé est utilisé pour des renvois et qu'il reste des liens on les supprime
         //On supprime les renvoies
         $requete = "UPDATE noeuds SET num_renvoi_voir='0' WHERE num_renvoi_voir='" . $this->id_noeud . "'";
         @pmb_mysql_query($requete, $dbh);
     }
     //On déplace les notices liées
     $requete = "UPDATE ignore notices_categories SET num_noeud='" . $by . "' where num_noeud = '" . $this->id_noeud . "' ";
     @pmb_mysql_query($requete, $dbh);
     //nettoyage d'autorities_sources
     $query = "select * from authorities_sources where num_authority = " . $this->id_noeud . " and authority_type = 'category'";
     $result = pmb_mysql_query($query);
     if (pmb_mysql_num_rows($result)) {
         while ($row = pmb_mysql_fetch_object($result)) {
             if ($row->authority_favorite == 1) {
                 //on suprime les références si l'autorité a été importée...
                 $query = "delete from notices_authorities_sources where num_authority_source = " . $row->id_authority_source;
                 pmb_mysql_result($query);
                 $query = "delete from authorities_sources where id_authority_source = " . $row->id_authority_source;
                 pmb_mysql_result($query);
             } else {
                 //on fait suivre le reste
                 $query = "update authorities_sources set num_authority = " . $by . " where num_authority_source = " . $row->id_authority_source;
                 pmb_mysql_query($query);
             }
         }
     }
     //On supprime le noeuds
     $this->delete();
     // effacement de l'identifiant unique d'autorité
     $authority = new authority(0, $this->id_noeud, AUT_TABLE_CATEG);
     $authority->delete();
     //synchro_rdf
     if ($pmb_synchro_rdf) {
         //on ajoute les noeuds impactés par le $by
         $thesBy = thesaurus::getByEltId($by);
         if (!in_array($thesBy->id_thesaurus, $arrayThesImpactes)) {
             $arrayThesImpactes[] = $thesBy->id_thesaurus;
         }
         $arrayIdImpactes[] = $by;
         //parent
         if ($noeuds_a_garder->num_parent != $thesBy->num_noeud_racine) {
             $arrayIdImpactes[] = $noeuds_a_garder->num_parent;
         }
         //enfants
         $res = noeuds::listChilds($noeuds_a_garder->id_noeud, 1);
         if (pmb_mysql_num_rows($res)) {
             while ($row = pmb_mysql_fetch_array($res)) {
                 $arrayIdImpactes[] = $row[0];
             }
         }
         //renvoi_voir
         if ($noeuds_a_garder->num_renvoi_voir) {
             $arrayIdImpactes[] = $noeuds_a_garder->num_renvoi_voir;
         }
         //On met le tout à jour
         $synchro_rdf = new synchro_rdf();
         $synchro_rdf->delConcept($this->id_noeud);
         if (count($arrayIdImpactes)) {
             foreach ($arrayIdImpactes as $idNoeud) {
                 $synchro_rdf->delConcept($idNoeud);
                 $synchro_rdf->storeConcept($idNoeud);
             }
         }
         if (count($arrayThesImpactes)) {
             foreach ($arrayThesImpactes as $idThes) {
                 $synchro_rdf->updateAuthority($idThes, 'thesaurus');
             }
         }
     }
     return "";
 }
Пример #17
0
function do_thesaurus_ascodocpsy($id_thesaurus, $nom_categ, $branch_values = array(), $lang = 'fr_FR', $ordre_categ = 0)
{
    global $notice_id;
    $res = pmb_mysql_query("select id_noeud from noeuds where autorite='TOP' and num_thesaurus='" . $id_thesaurus . "'");
    if ($res && pmb_mysql_num_rows($res)) {
        $parent_thes = pmb_mysql_result($res, 0, 0);
    } else {
        return;
    }
    $rqt = "select id_noeud from noeuds join categories on id_noeud=num_noeud and libelle_categorie='" . $nom_categ . "' and num_parent='" . $parent_thes . "'";
    $res = pmb_mysql_query($rqt);
    if ($res && pmb_mysql_num_rows($res)) {
        $num_parent = pmb_mysql_result($res, 0, 0);
        foreach ($branch_values as $terms) {
            foreach ($terms as $term) {
                $categ_id = categories::searchLibelle(addslashes($term), $id_thesaurus, $lang, $num_parent);
                if ($categ_id) {
                    //le terme existe
                    $noeud = new noeuds($categ_id);
                    if ($noeud->num_renvoi_voir) {
                        $categ_to_index = $noeud->num_renvoi_voir;
                    } else {
                        $categ_to_index = $categ_id;
                    }
                } else {
                    //le terme est à créé
                    $n = new noeuds();
                    $n->num_thesaurus = $id_thesaurus;
                    $n->num_parent = $num_parent;
                    $n->save();
                    $c = new categories($n->id_noeud, $lang);
                    $c->libelle_categorie = $term;
                    $c->index_categorie = ' ' . strip_empty_words($term) . ' ';
                    $c->save();
                    $categ_to_index = $n->id_noeud;
                }
                $requete = "INSERT INTO notices_categories (notcateg_notice,num_noeud,ordre_categorie) VALUES({$notice_id},{$categ_to_index},{$ordre_categ})";
                pmb_mysql_query($requete);
                $ordre_categ++;
            }
        }
    }
}
Пример #18
0
 function cleanCategories()
 {
     global $msg, $dbh, $charset, $PMBusername;
     if ($deleted == "") {
         $deleted = 0;
     }
     if (SESSrights & ADMINISTRATION_AUTH) {
         $result .= "<h3>" . htmlentities($msg["nettoyage_suppr_categories"], ENT_QUOTES, $charset) . "</h3>";
         $list_thesaurus = thesaurus::getThesaurusList();
         foreach ($list_thesaurus as $id_thesaurus => $libelle_thesaurus) {
             $thes = new thesaurus($id_thesaurus);
             $noeud_rac = $thes->num_noeud_racine;
             $r = noeuds::listChilds($noeud_rac, 0);
             while ($row = mysql_fetch_object($r)) {
                 noeuds::process_categ($row->id_noeud);
             }
         }
         //TODO non repris >> Utilité ???
         //	$delete = mysql_query("delete from categories where categ_libelle='#deleted#'");
         $result .= $deleted . " " . htmlentities($msg["nettoyage_res_suppr_categories"], ENT_QUOTES, $charset);
         $optn = noeuds::optimize();
         $optc = categories::optimize();
     } else {
         $result .= sprintf($msg["planificateur_rights_bad_user_rights"], $PMBusername);
     }
     return $result;
 }
Пример #19
0
        break;
    default:
        if (!$id_thes) {
            $id_thes = thesaurus::getSessionThesaurusId();
        }
        thesaurus::setSessionThesaurusId($id_thes);
        break;
}
$thes = new thesaurus($id_thes);
if ($aj == 'add' && SESSrights & THESAURUS_AUTH) {
    // on arrive du formulaire d'ajout à la volée
    if (!strlen($category_parent)) {
        $category_parent_id = $thes->num_noeud_racine;
    }
    $category_voir_id = 0;
    $noeud = new noeuds();
    $noeud->num_parent = $category_parent_id;
    $noeud->num_thesaurus = $thes->id_thesaurus;
    $noeud->save();
    $cat = new categories($noeud->id_noeud, $thes->langue_defaut);
    $cat->libelle_categorie = stripslashes($category_libelle);
    $cat->note_application = stripslashes($category_comment);
    $cat->index_categorie = " " . strip_empty_words($cat->libelle_categorie) . " ";
    $cat->save();
    if ($thesaurus_mode_pmb && $caller == 'notice') {
        $nom_tesaurus = '[' . $thes->getLibelle() . '] ';
    } else {
        $nom_tesaurus = '';
    }
    $browser_content = "<a href='#' {$java_comment} onclick=\"set_parent('{$caller}', '{$noeud->id_noeud}', '" . htmlentities(addslashes($nom_tesaurus . $cat->libelle_categorie), ENT_QUOTES, $charset) . "','{$callback}','" . $cat->num_thesaurus . "')\">";
    $browser_content .= $cat->libelle_categorie;
function create_categ($tab_categ, $id_thes, $id_parent, $create_node = true)
{
    global $lang;
    if (trim($tab_categ)) {
        $resultat = categories::searchLibelle(addslashes($tab_categ), $id_thes, $lang, $id_parent);
        if (!$resultat && $id_parent && $create_node) {
            // création de la catégorie
            $n = new noeuds();
            $n->num_parent = $id_parent;
            $n->num_thesaurus = $id_thes;
            $n->save();
            $resultat = $id_n = $n->id_noeud;
            $c = new categories($id_n, $lang);
            $c->libelle_categorie = $tab_categ;
            $c->save();
        }
        return $resultat;
    }
    return 0;
}
Пример #21
0
//			if(!$iuse) {
//				$deleted++ ;
//				noeuds::delete($id_noeud);
//			}
//	}
//
//}
$v_state = urldecode($v_state);
if ($deleted == "") {
    $deleted = 0;
}
print "<br /><br /><h2 align='center'>" . htmlentities($msg["nettoyage_suppr_categories"], ENT_QUOTES, $charset) . "</h2>";
$list_thesaurus = thesaurus::getThesaurusList();
foreach ($list_thesaurus as $id_thesaurus => $libelle_thesaurus) {
    $thes = new thesaurus($id_thesaurus);
    $noeud_rac = $thes->num_noeud_racine;
    $r = noeuds::listChilds($noeud_rac, 0);
    while ($row = mysql_fetch_object($r)) {
        noeuds::process_categ($row->id_noeud);
    }
}
//Nettoyage des informations d'autorités pour les sous collections
noeuds::delete_autority_sources();
$spec = $spec - CLEAN_CATEGORIES;
//TODO non repris >> Utilité ???
//	$delete = mysql_query("delete from categories where categ_libelle='#deleted#'");
$v_state .= "<br /><img src=../../images/d.gif hspace=3>" . htmlentities($msg["nettoyage_suppr_categories"], ENT_QUOTES, $charset) . " : ";
$v_state .= $deleted . " " . htmlentities($msg["nettoyage_res_suppr_categories"], ENT_QUOTES, $charset);
$optn = noeuds::optimize();
$optc = categories::optimize();
print "<form class='form-{$current_module}' name='process_state' action='./clean.php' method='post'>\n\t\t\t\t<input type='hidden' name='v_state' value=\"" . urlencode($v_state) . "\">\n\t\t\t\t<input type='hidden' name='spec' value=\"{$spec}\">\n\t\t\t</form>\n\t\t\t<script type=\"text/javascript\"><!--\n\t\t\t\tdocument.forms['process_state'].submit();\n\t\t\t\t-->\n\t\t\t</script>";
Пример #22
0
 static function build_categ($tab_categ, $id_thes, $id_parent, $do_lien = true, $do_create = true)
 {
     global $incr_categ, $notice_id, $lang;
     if (trim($tab_categ)) {
         $resultat = categories::searchLibelle(addslashes($tab_categ), $id_thes, $lang, $id_parent);
         if (!$resultat && $id_parent && $do_create) {
             // création de la catégorie
             $n = new noeuds();
             $n->num_parent = $id_parent;
             $n->num_thesaurus = $id_thes;
             $n->save();
             $resultat = $id_n = $n->id_noeud;
             $c = new categories($id_n, $lang);
             $c->libelle_categorie = $tab_categ;
             $c->save();
         }
         // ajout de l'indexation à la notice dans la table notices_categories
         if ($do_lien && $resultat && $notice_id) {
             $incr_categ++;
             $rqt_ajout = "insert IGNORE into notices_categories set notcateg_notice='" . $notice_id . "', num_noeud='" . $resultat . "', ordre_categorie='" . $incr_categ . "' ";
             pmb_mysql_query($rqt_ajout);
         }
         return $resultat;
     }
     return 0;
 }
function create_categ_cpt_rameau_first_level($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;
}
Пример #24
0
 function getRdfConcept($idNoeud)
 {
     global $lang;
     $arrayTriples = array();
     $noeud = new noeuds($idNoeud);
     $thes = new thesaurus($noeud->num_thesaurus);
     $uriConcept = $this->baseUriConcept . $idNoeud;
     $uriThes = $this->baseUriThesaurus . $noeud->num_thesaurus;
     //Si le noeud possède un renvoi-voir, la catégorie n'est pas dans le graphe, il n'y a que son libellé en altLabel sur le renvoi
     if ($noeud->num_renvoi_voir) {
         return $arrayTriples;
     }
     //Type
     $triple = array();
     $triple[0] = '<' . $uriConcept . '>';
     $triple[1] = "rdf:type";
     $triple[2] = "skos:Concept";
     $arrayTriples[] = $triple;
     //Appartenance au schéma
     $triple = array();
     $triple[0] = '<' . $uriConcept . '>';
     $triple[1] = "skos:inScheme";
     $triple[2] = '<' . $uriThes . '>';
     $arrayTriples[] = $triple;
     //Catégorie
     $categ = new categories($idNoeud, $thes->langue_defaut);
     //Label
     $triple = array();
     $triple[0] = '<' . $uriConcept . '>';
     $triple[1] = "skos:prefLabel";
     $triple[2] = '"' . addslashes($categ->libelle_categorie) . '"';
     $arrayTriples[] = $triple;
     //Note application
     if ($tmp = trim($categ->note_application)) {
         $triple = array();
         $triple[0] = '<' . $uriConcept . '>';
         $triple[1] = "skos:scopeNote";
         $triple[2] = '"' . $tmp . '"';
         $arrayTriples[] = $triple;
     }
     //Commentaire public
     if ($tmp = trim($categ->comment_public)) {
         $triple = array();
         $triple[0] = '<' . $uriConcept . '>';
         $triple[1] = "skos:note";
         $triple[2] = '"' . $tmp . '"';
         $arrayTriples[] = $triple;
     }
     //Noeud
     if ($noeud->num_parent) {
         if ($thes->num_noeud_racine == $noeud->num_parent) {
             $triple = array();
             $triple[0] = '<' . $uriConcept . '>';
             $triple[1] = "skos:topConceptOf";
             $triple[2] = '<' . $uriThes . '>';
             $arrayTriples[] = $triple;
         } else {
             $triple = array();
             $triple[0] = '<' . $uriConcept . '>';
             $triple[1] = "skos:broader";
             $triple[2] = '<' . $this->baseUriConcept . $noeud->num_parent . '>';
             $arrayTriples[] = $triple;
         }
     }
     //Les renvois
     $res = $noeud->listTargets();
     if (mysql_num_rows($res)) {
         while ($row = mysql_fetch_array($res)) {
             $renvoi = new categories($row[0], $thes->langue_defaut);
             $triple = array();
             $triple[0] = '<' . $uriConcept . '>';
             $triple[1] = "skos:altLabel";
             $triple[2] = '"' . addslashes($renvoi->libelle_categorie) . '"';
             $arrayTriples[] = $triple;
         }
     }
     //Gestion des enfants : on veut les enfants, même avec renvois (poly-hiérarchie)
     $res = noeuds::listChilds($idNoeud, 1);
     if (mysql_num_rows($res)) {
         while ($row = mysql_fetch_array($res)) {
             $enfant = new noeuds($row[0]);
             if ($enfant->num_renvoi_voir) {
                 $triple = array();
                 $triple[0] = '<' . $uriConcept . '>';
                 $triple[1] = "skos:narrower";
                 $triple[2] = '<' . $this->baseUriConcept . $enfant->num_renvoi_voir . '>';
                 $arrayTriples[] = $triple;
             } else {
                 $triple = array();
                 $triple[0] = '<' . $uriConcept . '>';
                 $triple[1] = "skos:narrower";
                 $triple[2] = '<' . $this->baseUriConcept . $row[0] . '>';
                 $arrayTriples[] = $triple;
             }
         }
     }
     //Les voir aussi
     $res = $noeud->listUsedInSeeAlso();
     if (mysql_num_rows($res)) {
         while ($row = mysql_fetch_array($res)) {
             $triple = array();
             $triple[0] = '<' . $uriConcept . '>';
             $triple[1] = "skos:related";
             $triple[2] = '<' . $this->baseUriConcept . $row[0] . '>';
             $arrayTriples[] = $triple;
         }
     }
     return $arrayTriples;
 }
Пример #25
0
function import_new_notice_suite()
{
    global $dbh;
    global $notice_id;
    global $info_464, $info_676;
    global $info_606_a, $info_606_x;
    global $info_900, $info_901, $info_902, $info_200, $info_903, $info_904, $info_910;
    global $rs, $bl, $dt;
    global $bulletin_ex;
    global $m_thess;
    //si on est en multi-thesaurus
    if (!$m_thess) {
        $rqt = "SELECT count(1) FROM thesaurus WHERE active=1";
        $m_thess = mysql_result(mysql_query($rqt), 0, 0);
    }
    //Cas des périodiques
    if (is_array($info_464)) {
        $requete = "SELECT * FROM notices WHERE notice_id={$notice_id}";
        $resultat = mysql_query($requete);
        $r = mysql_fetch_object($resultat);
        //Notice chapeau existe-t-elle ?
        $requete = "SELECT notice_id FROM notices WHERE tit1='" . addslashes($info_464[0]['t']) . "' and niveau_hierar='1' and niveau_biblio='s'";
        $resultat = mysql_query($requete);
        if (@mysql_num_rows($resultat)) {
            //Si oui, récupération id
            $chapeau_id = mysql_result($resultat, 0, 0);
            //Mise à jour du champ commentaire de gestion si nécessaire
            if ($info_903[0]) {
                $requete = "UPDATE notices SET commentaire_gestion=concat(commentaire_gestion,' ','" . addslashes($info_903[0]) . "') WHERE notice_id={$chapeau_id}";
                mysql_query($requete);
            }
            //Bulletin existe-t-il ?
            $requete = "SELECT bulletin_id FROM bulletins WHERE bulletin_numero='" . addslashes($info_464[0]['v']) . "' AND mention_date='" . addslashes($info_464[0]['d']) . "' AND bulletin_notice={$chapeau_id}";
            $resultat = mysql_query($requete);
            if (@mysql_num_rows($resultat)) {
                //Si oui, récupération id bulletin
                $bulletin_id = mysql_result($resultat, 0, 0);
            } else {
                //Si non, création bulletin
                $info = array();
                $bulletin = new bulletinage("", $chapeau_id);
                if ($info_464[0]['u']) {
                    $info['bul_titre'] = addslashes($info_464[0]['u']);
                } else {
                    $info['bul_titre'] = addslashes("Bulletin " . $info_464[0]['v']);
                }
                $info['bul_no'] = addslashes($info_464[0]['v']);
                $info['bul_date'] = addslashes($info_464[0]['d']);
                if (!$info_464[0]['e']) {
                    if ($info_902[0]) {
                        $info['date_date'] = $info_902[0];
                    }
                } else {
                    $info['date_date'] = $info_464[0]['e'];
                }
                $bulletin_id = $bulletin->update($info);
            }
        } else {
            //Si non, création notice chapeau et bulletin
            $chapeau = new serial();
            $info = array();
            $info['tit1'] = addslashes($info_464[0]['t']);
            $info['niveau_biblio'] = 's';
            $info['niveau_hierar'] = '1';
            $info['typdoc'] = $r->typdoc;
            $chapeau->update($info);
            $chapeau_id = $chapeau->serial_id;
            //Mise à jour du champ commentaire de gestion si nécessaire
            if ($info_903[0]) {
                $requete = "UPDATE notices SET commentaire_gestion=concat(commentaire_gestion,' ','" . addslashes($info_903[0]) . "') WHERE notice_id={$chapeau_id}";
                mysql_query($requete);
            }
            $bulletin = new bulletinage("", $chapeau_id);
            $info = array();
            if ($info_464[0]['u']) {
                $info['bul_titre'] = addslashes($info_464[0]['u']);
            } else {
                $info['bul_titre'] = addslashes("Bulletin " . $info_464[0]['v']);
            }
            $info['bul_no'] = addslashes($info_464[0]['v']);
            $info['bul_date'] = addslashes($info_464[0]['d']);
            if (!$info_464[0]['e']) {
                if ($info_902[0]) {
                    $info['date_date'] = $info_902[0];
                }
            } else {
                $info['date_date'] = $info_464[0]['e'];
            }
            $bulletin_id = $bulletin->update($info);
        }
        //Passage de la notice en article
        $requete = "UPDATE notices SET niveau_biblio='a', niveau_hierar='2', npages='" . addslashes($info_464[0]['p']) . "' WHERE notice_id={$notice_id}";
        mysql_query($requete);
        $requete = "INSERT INTO analysis (analysis_bulletin,analysis_notice) VALUES({$bulletin_id},{$notice_id})";
        mysql_query($requete);
        $bulletin_ex = $bulletin_id;
    } else {
        $bulletin_ex = 0;
    }
    //Traitement du thésaurus
    if ($m_thess > 1) {
        //on est en multi-thesaurus
        for ($i = 0; $i < count($info_606_a); $i++) {
            for ($j = 0; $j < count($info_606_a[$i]); $j++) {
                $descripteur_tete = $info_606_a[$i][$j];
                $descripteur_fils = $info_606_x[$i][$j];
                //Recherche du thésaurus
                $thes_id = trouve_thesaurus($descripteur_tete);
                //Recherche du terme fils
                if ($thes_id > 0) {
                    $categ_id_fils = categories::searchLibelle(addslashes(trim($descripteur_fils)), $thes_id, "fr_FR");
                    if (!$categ_id_fils) {
                        //Création
                        $new_thes = $thes_id == 1 ? 4 : $thes_id;
                        //Choix du thesaurus Candidats descripteurs si descripteur inexistant
                        $categ_id_fils = categories::searchLibelle(addslashes(trim($descripteur_fils)), $new_thes, "fr_FR");
                        if (!$categ_id_fils) {
                            $noeud = new noeuds();
                            $noeud->num_thesaurus = $new_thes;
                            $thesau = new thesaurus($new_thes);
                            $noeud->num_parent = $thesau->num_noeud_racine;
                            $noeud->save();
                            $categ_id_fils = $noeud->id_noeud;
                            //Création du libellé
                            $categ = new categories($noeud->id_noeud, 'fr_FR');
                            $categ->libelle_categorie = $descripteur_fils;
                            $categ->index_categorie = " " . strip_empty_words($descripteur_fils) . " ";
                            $categ->save();
                        }
                    }
                    $requete = "INSERT INTO notices_categories (notcateg_notice, num_noeud, ordre_categorie) VALUES ({$notice_id},{$categ_id_fils}, " . ($i + 1) . ")";
                    mysql_query($requete);
                }
            }
        }
        //for($i
    } else {
        //Traitement du thésaurus unique
        for ($i = 0; $i < count($info_606_a); $i++) {
            for ($j = 0; $j < count($info_606_a[$i]); $j++) {
                $descripteur_tete = $info_606_a[$i][$j];
                $descripteur_fils = $info_606_x[$i][$j];
                //Recherche du terme de tête
                //$requete="SELECT num_noeud FROM categories WHERE libelle_categorie='".addslashes($descripteur_tete)."' AND langue='fr_FR'";
                $requete = "SELECT id_noeud FROM noeuds WHERE autorite='" . addslashes($descripteur_tete) . "'";
                $resultat = mysql_query($requete);
                if (@mysql_num_rows($resultat)) {
                    //la tête existe !
                    $categ_id_tete = mysql_result($resultat, 0, 0);
                } else {
                    //Création de la tête
                    //Nouveau Noeud !
                    $th = new thesaurus(1);
                    $noeud = new noeuds();
                    $noeud->num_thesaurus = $th->id_thesaurus;
                    $noeud->num_parent = $th->num_noeud_racine;
                    $noeud->autorite = $descripteur_tete;
                    $noeud->save();
                    $categ_id_tete = $noeud->id_noeud;
                    //Création du libellé
                    $categ = new categories($noeud->id_noeud, 'fr_FR');
                    $categ->libelle_categorie = $descripteur_tete;
                    $categ->index_categorie = " " . strip_empty_words($descripteur_tete) . " ";
                    $categ->save();
                }
                //Recherche du terme fils
                $categ_id_fils = categories::searchLibelle(addslashes($descripteur_fils), 1, "fr_FR");
                if (!$categ_id_fils) {
                    //Création
                    $noeud = new noeuds();
                    $noeud->num_thesaurus = 1;
                    $noeud->num_parent = $categ_id_tete;
                    $noeud->save();
                    $categ_id_fils = $noeud->id_noeud;
                    //Création du libellé
                    $categ = new categories($noeud->id_noeud, 'fr_FR');
                    $categ->libelle_categorie = $descripteur_fils;
                    $categ->index_categorie = " " . strip_empty_words($descripteur_fils) . " ";
                    $categ->save();
                }
                $requete = "INSERT INTO notices_categories (notcateg_notice, num_noeud, ordre_categorie) VALUES ({$notice_id}, {$categ_id_fils}, " . ($i + 1) . ")";
                mysql_query($requete);
            }
        }
    }
    //Indexation décimale
    if ($info_676[0]) {
        $requete = "select indexint_id from indexint where indexint_name='" . addslashes($info_676[0]) . "'";
        $resultat = mysql_query($requete);
        if (mysql_num_rows($resultat)) {
            $indexint = mysql_result($resultat, 0, 0);
        } else {
            $requete = "insert into indexint (indexint_name) values('" . addslashes($info_676[0]) . "')";
            mysql_query($requete);
            $indexint = mysql_insert_id();
        }
        $requete = "update notices set indexint=" . $indexint . " where notice_id=" . $notice_id;
        mysql_query($requete);
    }
    //Organisme
    if ($info_900[0]) {
        $no_champ = trouve_champ_perso("op");
        if ($no_champ > 0) {
            $requete = "SELECT max(notices_custom_list_value*1) FROM notices_custom_lists WHERE notices_custom_champ=" . $no_champ;
            $resultat = mysql_query($requete);
            $max = @mysql_result($resultat, 0, 0);
            $n = $max + 1;
            $requete = "SELECT notices_custom_list_value FROM notices_custom_lists WHERE notices_custom_list_lib='" . addslashes($info_900[0]) . "' AND notices_custom_champ=" . $no_champ;
            $resultat = mysql_query($requete);
            if (mysql_num_rows($resultat)) {
                $value = mysql_result($resultat, 0, 0);
            } else {
                $requete = "INSERT INTO notices_custom_lists (notices_custom_champ,notices_custom_list_value,notices_custom_list_lib) VALUES({$no_champ},{$n},'" . addslashes($info_900[0]) . "')";
                mysql_query($requete);
                $value = $n;
                $n++;
            }
            $requete = "INSERT INTO notices_custom_values (notices_custom_champ,notices_custom_origine,notices_custom_integer) VALUES({$no_champ},{$notice_id},{$value})";
            mysql_query($requete);
        }
    }
    //Genre
    if ($info_901[0]) {
        $no_champ = trouve_champ_perso("gen");
        if ($no_champ > 0) {
            $requete = "SELECT max(notices_custom_list_value*1) FROM notices_custom_lists WHERE notices_custom_champ=" . $no_champ;
            $resultat = mysql_query($requete);
            $max = @mysql_result($resultat, 0, 0);
            $n = $max + 1;
            $requete = "SELECT notices_custom_list_value FROM notices_custom_lists WHERE notices_custom_list_lib='" . addslashes($info_901[0]) . "' AND notices_custom_champ=" . $no_champ;
            $resultat = mysql_query($requete);
            if (mysql_num_rows($resultat)) {
                $value = mysql_result($resultat, 0, 0);
            } else {
                $requete = "INSERT INTO notices_custom_lists (notices_custom_champ,notices_custom_list_value,notices_custom_list_lib) VALUES({$no_champ},{$n},'" . addslashes($info_901[0]) . "')";
                mysql_query($requete);
                $value = $n;
                $n++;
            }
            $requete = "INSERT INTO notices_custom_values (notices_custom_champ,notices_custom_origine,notices_custom_integer) VALUES({$no_champ},{$notice_id},{$value})";
            mysql_query($requete);
        }
    }
    //Type de texte
    if (count($info_904)) {
        $no_champ = trouve_champ_perso("typtext");
        if ($no_champ > 0) {
            for ($i = 0; $i < count($info_904); $i++) {
                for ($j = 0; $j < count($info_904[$i]); $j++) {
                    $requete = "SELECT max(notices_custom_list_value*1) FROM notices_custom_lists WHERE notices_custom_champ=" . $no_champ;
                    $resultat = mysql_query($requete);
                    $max = @mysql_result($resultat, 0, 0);
                    $n = $max + 1;
                    $requete = "SELECT notices_custom_list_value FROM notices_custom_lists WHERE notices_custom_list_lib='" . addslashes($info_904[$i][$j]) . "' AND notices_custom_champ=" . $no_champ;
                    $resultat = mysql_query($requete);
                    if (mysql_num_rows($resultat)) {
                        $value = mysql_result($resultat, 0, 0);
                    } else {
                        $requete = "INSERT INTO notices_custom_lists (notices_custom_champ,notices_custom_list_value,notices_custom_list_lib) VALUES({$no_champ},{$n},'" . addslashes($info_904[$i][$j]) . "')";
                        mysql_query($requete);
                        $value = $n;
                        $n++;
                    }
                    $requete = "INSERT INTO notices_custom_values (notices_custom_champ,notices_custom_origine,notices_custom_integer) VALUES({$no_champ},{$notice_id},{$value})";
                    mysql_query($requete);
                }
            }
        }
    }
    //Date de saisie
    if ($info_902[0]) {
        $no_champ = trouve_champ_perso("ds");
        if ($no_champ > 0) {
            $requete = "INSERT INTO notices_custom_values (notices_custom_champ,notices_custom_origine,notices_custom_date) VALUES({$no_champ},{$notice_id},'" . str_replace(".", "-", $info_902[0]) . "')";
            mysql_query($requete);
        }
    }
    //N° de lot
    if ($info_903[0]) {
        $requete = "UPDATE notices SET commentaire_gestion='" . addslashes($info_903[0]) . "' WHERE notice_id={$notice_id}";
        mysql_query($requete);
    }
    //Cas de la mise à jour des périodiques ou du champ bord (notices chapeau)
    if ($bl == "s") {
        //Si c'est un périodique
        if ($dt == "a") {
            //Passage de la notice en notice chapeau
            $requete = "UPDATE notices SET niveau_biblio='s', niveau_hierar='1' WHERE notice_id={$notice_id}";
            mysql_query($requete);
            //Recherche si la notice existe déjà par rapport au titre
            $requete = "select notice_id FROM notices WHERE ucase(tit1)='" . addslashes(strtoupper($info_200[0])) . "' AND niveau_biblio='s' AND niveau_hierar='1' AND notice_id!={$notice_id}";
            $resultat = mysql_query($requete);
            $update = false;
            if (mysql_num_rows($resultat)) {
                $update = true;
                $n_update = mysql_result($resultat, 0, 0);
                //Mise à jour de tous les bulletins
                $requete = "UPDATE bulletins SET bulletin_notice=" . $notice_id . " WHERE bulletin_notice=" . $n_update;
                mysql_query($requete);
                //Suppression de l'ancienne notice
                $requete = "DELETE FROM notices WHERE notice_id={$n_update}";
                mysql_query($requete);
                $requete = "DELETE FROM notices_categories WHERE notcateg_notice=" . $n_update;
                mysql_query($requete);
                $requete = "DELETE FROM notices_custom_values WHERE notices_custom_origine=" . $n_update;
                mysql_query($requete);
                $requete = "DELETE FROM responsability WHERE responsability_author=" . $n_update;
                mysql_query($requete);
            }
            if (!$update && $rs != "n") {
                //Si il n'y a pas de création, on supprime la notice
                $requete = "DELETE FROM notices WHERE notice_id={$notice_id}";
                mysql_query($requete);
                $requete = "DELETE FROM notices_categories WHERE notcateg_notice=" . $notice_id;
                mysql_query($requete);
                $requete = "DELETE FROM notices_custom_values WHERE notices_custom_origine=" . $notice_id;
                mysql_query($requete);
                $requete = "DELETE FROM responsability WHERE responsability_author=" . $notice_id;
                mysql_query($requete);
            }
        } else {
            if ($dt == "l") {
                //Recherche si la notice existe déjà par rapport au titre
                $requete = "select notice_id FROM notices WHERE ucase(tit1)='" . addslashes(strtoupper($info_200[0])) . "' AND typdoc='l' AND notice_id!={$notice_id}";
                $resultat = mysql_query($requete);
                $update = false;
                if (mysql_num_rows($resultat)) {
                    $update = true;
                    $n_update = mysql_result($resultat, 0, 0);
                    //Suppression de l'ancienne notice
                    $requete = "DELETE FROM notices WHERE notice_id={$n_update}";
                    mysql_query($requete);
                    $requete = "DELETE FROM notices_categories WHERE notcateg_notice=" . $n_update;
                    mysql_query($requete);
                    $requete = "DELETE FROM notices_custom_values WHERE notices_custom_origine=" . $n_update;
                    mysql_query($requete);
                    $requete = "DELETE FROM responsability WHERE responsability_author=" . $n_update;
                    mysql_query($requete);
                }
            } else {
                if ($dt == "r") {
                    //Mise à jour du champ bord
                    if ($info_910[0]) {
                        $no_champ = trouve_champ_perso("bord");
                        if ($no_champ > 0) {
                            //Recherche si la notice existe déjà par rapport au titre
                            $requete = "SELECT notice_id FROM notices WHERE ucase(tit1)='" . addslashes(strtoupper($info_200[0])) . "' AND niveau_biblio='s' AND niveau_hierar='1' AND notice_id!={$notice_id}";
                            $resultat = mysql_query($requete);
                            if (mysql_num_rows($resultat)) {
                                $notice_update = mysql_result($resultat, 0, 0);
                                $requete = "UPDATE notices_custom_values SET notices_custom_text='" . addslashes(str_replace("##", "\n", $info_910[0])) . "' WHERE notices_custom_champ={$no_champ} AND notices_custom_origine=" . $notice_update;
                                mysql_query($requete);
                                if (!mysql_affected_rows()) {
                                    $requete = "INSERT INTO notices_custom_values (notices_custom_champ,notices_custom_origine,notices_custom_text) VALUES({$no_champ},{$notice_update},'" . addslashes(str_replace("##", "\n", $info_910[0])) . "')";
                                    mysql_query($requete);
                                }
                            }
                        }
                    }
                    //Suppression de la nouvelle notice
                    $requete = "DELETE FROM notices WHERE notice_id=" . $notice_id;
                    mysql_query($requete);
                }
            }
        }
    }
}
Пример #26
0
 function cleanCategoriesPath()
 {
     global $msg, $charset, $PMBusername;
     if (SESSrights & ADMINISTRATION_AUTH) {
         // Pour tous les thésaurus, on parcours les childs
         $list_thesaurus = thesaurus::getThesaurusList();
         foreach ($list_thesaurus as $id_thesaurus => $libelle_thesaurus) {
             $thes = new thesaurus($id_thesaurus);
             $noeud_rac = $thes->num_noeud_racine;
             $r = noeuds::listChilds($noeud_rac, 0);
             while ($row = mysql_fetch_object($r)) {
                 noeuds::process_categ_path($row->id_noeud);
             }
         }
         if ($thesaurus_auto_postage_search) {
             categories::process_categ_index();
         }
         $result .= htmlentities($msg["clean_categories_path_end"], ENT_QUOTES, $charset);
     } else {
         $result .= sprintf($msg["planificateur_rights_bad_user_rights"], $PMBusername);
     }
     return $result;
 }
Пример #27
0
 function process_categ_path($id_noeud = 0, $path = '')
 {
     global $dbh;
     if (!$id_noeud && is_object($this)) {
         $id_noeud = $this->id_noeud;
     }
     if ($path) {
         $path .= '/';
     }
     $path .= $id_noeud;
     $res = noeuds::listChilds($id_noeud, 0);
     while ($row = mysql_fetch_object($res)) {
         // la categorie a des filles qu'on va traiter
         $this->process_categ_path($row->id_noeud, $path);
     }
     $req = "update noeuds set path='{$path}' where id_noeud='{$id_noeud}' ";
     mysql_query($req, $dbh);
 }