static function import($data) { // cette méthode prend en entrée un tableau constitué des informations éditeurs suivantes : // $data['name'] Nom de la collection // $data['parent'] id de l'éditeur parent de la collection // $data['issn'] numéro ISSN de la collection global $dbh; // check sur le type de la variable passée en paramètre if (!sizeof($data) || !is_array($data)) { // si ce n'est pas un tableau ou un tableau vide, on retourne 0 return 0; } // check sur les éléments du tableau (data['name'] est requis). $long_maxi_name = pmb_mysql_field_len(pmb_mysql_query("SELECT collection_name FROM collections limit 1"), 0); $data['name'] = rtrim(substr(preg_replace('/\\[|\\]/', '', rtrim(ltrim($data['name']))), 0, $long_maxi_name)); //si on a pas d'id, on peut avoir les infos de l'éditeur if (!$data['parent']) { if ($data['publisher']) { //on les a, on crée l'éditeur $data['parent'] = editeur::import($data['publisher']); } } if ($data['name'] == "" || $data['parent'] == 0) { /* il nous faut impérativement un éditeur */ return 0; } // préparation de la requête $key0 = addslashes($data['name']); $key1 = $data['parent']; $key2 = addslashes($data['issn']); /* vérification que l'éditeur existe bien ! */ $query = "SELECT ed_id FROM publishers WHERE ed_id='{$key1}' LIMIT 1 "; $result = @pmb_mysql_query($query, $dbh); if (!$result) { die("can't SELECT publishers " . $query); } if (pmb_mysql_num_rows($result) == 0) { return 0; } /* vérification que la collection existe */ $query = "SELECT collection_id FROM collections WHERE collection_name='{$key0}' AND collection_parent='{$key1}' LIMIT 1 "; $result = @pmb_mysql_query($query, $dbh); if (!$result) { die("can't SELECT collections " . $query); } $collection = pmb_mysql_fetch_object($result); /* la collection existe, on retourne l'ID */ if ($collection->collection_id) { return $collection->collection_id; } // id non-récupérée, il faut créer la forme. $query = 'INSERT INTO collections SET collection_name="' . $key0 . '", '; $query .= 'collection_parent="' . $key1 . '", '; $query .= 'collection_issn="' . $key2 . '", '; $query .= 'index_coll=" ' . strip_empty_words($key0) . ' ' . strip_empty_words($key2) . ' ", '; $query .= 'collection_comment = "' . addslashes($data['comment']) . '" '; $result = @pmb_mysql_query($query, $dbh); if (!$result) { die("can't INSERT into database"); } $id = pmb_mysql_insert_id($dbh); if ($data['subcollections']) { for ($i = 0; $i < count($data['subcollections']); $i++) { $subcoll = $data['subcollections'][$i]; $subcoll['coll_parent'] = $id; subcollection::import($subcoll); } } audit::insert_creation(AUDIT_COLLECTION, $id); //update authority informations $authority = new authority(0, $id, AUT_TABLE_COLLECTIONS); $authority->set_num_statut($data['statut']); $authority->update(); collection::update_index($id); return $id; }
function update_from_form($id = 0) { global $dbh; global $thesaurus_concepts_active; global $authority_statut; $id += 0; if (!$id) { $requete = "insert into authperso_authorities set authperso_authority_authperso_num=" . $this->id; pmb_mysql_query($requete); $id = pmb_mysql_insert_id($dbh); audit::insert_creation($this->id + 1000, $id); } else { audit::insert_modif($this->id + 1000, $id); } if (!$id) { return; } //update authority informations $authority = new authority(0, $id, AUT_TABLE_AUTHPERSO); $authority->set_num_statut($authority_statut); $authority->update(); $p_perso = new custom_parametres_perso("authperso", "authperso", $this->id); $p_perso->rec_fields_perso($id); $aut_link = new aut_link($this->id + 1000, $id); $aut_link->save_form(); // Indexation concepts if ($thesaurus_concepts_active == 1) { $index_concept = new index_concept($id, TYPE_AUTHPERSO); $index_concept->save(); } $this->update_global_index($id); }
static function import($value, $from_form = 0) { global $dbh; // Si vide on sort if (trim($value['name']) == '') { return FALSE; } if (!$from_form) { $value['name'] = addslashes($value['name']); $value['num_author'] = addslashes($value['num_author']); $value['form'] = addslashes($value['form']); $value['date'] = addslashes($value['date']); $value['subject'] = addslashes($value['subject']); $value['place'] = addslashes($value['place']); $value['history'] = addslashes($value['history']); $value['characteristic'] = addslashes($value['characteristic']); $value['intended_termination'] = addslashes($value['intended_termination']); $value['intended_audience'] = addslashes($value['intended_audience']); $value['context'] = addslashes($value['context']); $value['equinox'] = addslashes($value['equinox']); $value['coordinates'] = addslashes($value['coordinates']); $value['tonalite'] = addslashes($value['tonalite']); $value['comment'] = addslashes($value['comment']); $value['databnf_uri'] = addslashes($value['databnf_uri']); for ($i = 0; $i < count($value['distrib']); $i++) { $value['distrib'][$i] = addslashes($value['distrib'][$i]); } for ($i = 0; $i < count($value['ref']); $i++) { $value['ref'][$i] = addslashes($value['ref'][$i]); } for ($i = 0; $i < count($value['subdiv']); $i++) { $value['subdiv'][$i] = addslashes($value['subdiv'][$i]); } for ($i = 0; $i < count($value['authors']); $i++) { // les champs auteurs sont addslashes dans import auteur $value['authors'][$i]['type'] = addslashes($value['authors'][$i]['type']); $value['authors'][$i]['fonction'] = addslashes($value['authors'][$i]['fonction']); } } $marc_key = new marc_list("music_key"); $marc_form = new marc_list("music_form"); $flag_form = false; $flag_key = false; foreach ($marc_form->table as $value_form => $libelle_form) { if ($value_form == $value['form']) { $flag_form = true; } } foreach ($marc_key->table as $value_key => $libelle_key) { if ($value_key == $value['tonalite']) { $flag_key = true; } } if (count($value['authors'])) { for ($i = 0; $i < count($value['authors']); $i++) { if ($value['authors'][$i]['id']) { $tu_auteur = new auteur($value['authors'][$i]['id']); if (!$tu_auteur->id) { // id non valide $value['authors'][$i]['id'] = 0; } } if (!$value['authors'][$i]['id']) { // création ou déjà existant. auteur::import addslashes les champs $value['authors'][$i]['id'] = auteur::import($value['authors'][$i]); } } } // $value déjà addslashes plus haut -> 1 $titre = titre_uniforme::import_tu_exist($value, 1); if ($titre) { return $titre; } $requete = "INSERT INTO titres_uniformes SET "; $requete .= "tu_name='" . $value["name"] . "', "; $requete .= "tu_num_author='" . $value["num_author"] . "', "; $requete .= (!$flag_form ? "tu_forme='" : "tu_forme_marclist='") . $value['form'] . "', "; $requete .= "tu_date='" . $value["date"] . "', "; $requete .= "tu_sujet='" . $value["subject"] . "', "; $requete .= "tu_lieu='" . $value["place"] . "', "; $requete .= "tu_histoire='" . $value["history"] . "', "; $requete .= "tu_caracteristique='" . $value["characteristic"] . "', "; $requete .= "tu_completude='" . $value["intended_termination"] . "', "; $requete .= "tu_public='" . $value["intended_audience"] . "', "; $requete .= "tu_contexte='" . $value["context"] . "', "; $requete .= "tu_equinoxe='" . $value["equinox"] . "', "; $requete .= "tu_coordonnees='" . $value["coordinates"] . "', "; $requete .= (!$flag_key ? "tu_tonalite='" : "tu_tonalite_marclist='") . $value['tonalite'] . "', "; $requete .= "tu_comment='" . $value["comment"] . "', "; $requete .= "tu_databnf_uri='" . $value["databnf_uri"] . "' "; // insertion du titre uniforme et mise à jour de l'index tu if (pmb_mysql_query($requete, $dbh)) { $tu_id = pmb_mysql_insert_id(); } else { return FALSE; } if (count($value['authors'])) { $ordre = 0; $rqt_ins = "INSERT INTO responsability_tu (responsability_tu_author_num, responsability_tu_num, responsability_tu_fonction, responsability_tu_type, responsability_tu_ordre) VALUES "; foreach ($value['authors'] as $author) { if ($author['id']) { $rqt = $rqt_ins . " ('" . $author['id'] . "','" . $tu_id . "','" . $author['fonction'] . "','" . $author['type'] . "', {$ordre}) "; $res_ins = @pmb_mysql_query($rqt); $ordre++; } } } // Distribution instrumentale et vocale (pour la musique) for ($i = 0; $i < count($value['distrib']); $i++) { $requete = "INSERT INTO tu_distrib SET\n\t\t\tdistrib_num_tu='{$tu_id}',\n\t\t\tdistrib_name='" . $value['distrib'][$i] . "',\n\t\t\tdistrib_ordre='{$i}' "; pmb_mysql_query($requete, $dbh); } // Référence numérique (pour la musique) for ($i = 0; $i < count($value['ref']); $i++) { $requete = "INSERT INTO tu_ref SET\n\t\t\tref_num_tu='{$tu_id}',\n\t\t\tref_name='" . $value['ref'][$i] . "',\n\t\t\tref_ordre='{$i}' "; pmb_mysql_query($requete, $dbh); } // Subdivision de forme for ($i = 0; $i < count($value['subdiv']); $i++) { $requete = "INSERT INTO tu_subdiv SET\n\t\t\tsubdiv_num_tu='{$tu_id}',\n\t\t\tsubdiv_name='" . $value['subdiv'][$i] . "',\n\t\t\tsubdiv_ordre='{$i}' "; pmb_mysql_query($requete, $dbh); } audit::insert_creation(AUDIT_TITRE_UNIFORME, $tu_id); //update authority informations $authority = new authority(0, $tu_id, AUT_TABLE_TITRES_UNIFORMES); $authority->set_num_statut($value["statut"]); $authority->update(); // mise à jour du champ index du titre uniforme if ($tu_id) { titre_uniforme::update_index_tu($tu_id); titre_uniforme::tu_enrichment($tu_id); } return $tu_id; }
function save() { global $dbh; if (!$this->num_thesaurus) { die('Erreur de création noeud'); } if ($this->id_noeud) { //Mise à jour noeud $q = 'update noeuds set autorite =\'' . addslashes($this->autorite) . '\', '; $q .= 'num_parent = \'' . $this->num_parent . '\', num_renvoi_voir = \'' . $this->num_renvoi_voir . '\', '; $q .= 'visible = \'' . $this->visible . '\', num_thesaurus = \'' . $this->num_thesaurus . '\', '; $q .= 'authority_import_denied = \'' . $this->authority_import_denied . '\', not_use_in_indexation = \'' . $this->not_use_in_indexation . '\' '; $q .= 'where id_noeud = \'' . $this->id_noeud . '\' '; pmb_mysql_query($q, $dbh); audit::insert_modif(AUDIT_CATEG, $this->id_noeud); } else { $q = 'insert into noeuds set autorite = \'' . addslashes($this->autorite) . '\', '; $q .= 'num_parent = \'' . $this->num_parent . '\', num_renvoi_voir = \'' . $this->num_renvoi_voir . '\', '; $q .= 'visible = \'' . $this->visible . '\', num_thesaurus = \'' . $this->num_thesaurus . '\', '; $q .= 'authority_import_denied = \'' . $this->authority_import_denied . '\', not_use_in_indexation = \'' . $this->not_use_in_indexation . '\' '; pmb_mysql_query($q, $dbh); $this->id_noeud = pmb_mysql_insert_id($dbh); audit::insert_creation(AUDIT_CATEG, $this->id_noeud); } //update authority informations $authority = new authority(0, $this->id_noeud, AUT_TABLE_CATEG); $authority->set_num_statut($this->num_statut); $authority->update(); // Mis à jour du path de lui-meme, et de tous les fils $thes = thesaurus::getByEltId($this->id_noeud); $id_top = $thes->num_noeud_racine; $path = ''; $id_tmp = $this->id_noeud; while (true) { $q = "select num_parent from noeuds where id_noeud = '" . $id_tmp . "' limit 1"; $r = pmb_mysql_query($q, $dbh); $id_tmp = $id_cur = pmb_mysql_result($r, 0, 0); if (!$id_cur || $id_cur == $id_top) { break; } if ($path) { $path = '/' . $path; } $path = $id_tmp . $path; } noeuds::process_categ_path($this->id_noeud, $path); }
static function import($title, $statut = 1) { global $dbh; // check sur la variable passée en paramètre if (!$title) { return 0; } // tentative de récupérer l'id associée dans la base (implique que l'autorité existe) // préparation de la requête $key = addslashes($title); $query = "SELECT serie_id FROM series WHERE serie_name='" . rtrim(substr($key, 0, 255)) . "' LIMIT 1 "; $result = @pmb_mysql_query($query, $dbh); if (!$result) { die("can't SELECT series " . $query); } // résultat // récupération du résultat de la recherche $tserie = pmb_mysql_fetch_object($result); // du résultat et récupération éventuelle de l'id if ($tserie->serie_id) { return $tserie->serie_id; } // id non-récupérée, il faut créer la forme. $index = addslashes(strip_empty_words($title)); $query = 'INSERT INTO series SET serie_name="' . $key . '", serie_index=" ' . $index . ' "'; $result = @pmb_mysql_query($query, $dbh); if (!$result) { die("can't INSERT into series" . $query); } $id = pmb_mysql_insert_id($dbh); audit::insert_creation(AUDIT_SERIE, $id); //update authority informations $authority = new authority(0, $id, AUT_TABLE_SERIES); $authority->set_num_statut($statut); $authority->update(); serie::update_index($id); return $id; }
static function import($data) { global $dbh; // check sur le type de la variable passee en parametre if (!sizeof($data) || !is_array($data)) { // si ce n'est pas un tableau ou un tableau vide, on retourne 0 return 0; } // tentative de recuperer l'id associee dans la base (implique que l'autorite existe) // preparation de la requeªte $long_maxi = pmb_mysql_field_len(pmb_mysql_query("SELECT ed_name FROM publishers limit 1"), 0); $key = addslashes(rtrim(substr(preg_replace('/\\[|\\]/', '', rtrim(ltrim($data['name']))), 0, $long_maxi))); $ville = addslashes(trim($data['ville'])); $adr = addslashes(trim($data['adr'])); $adr2 = addslashes(trim($data['adr2'])); $cp = addslashes(trim($data['cp'])); $pays = addslashes(trim($data['pays'])); $web = addslashes(trim($data['web'])); $ed_comment = addslashes(trim($data['ed_comment'])); if ($key == "") { return 0; } /* on laisse tomber les editeurs sans nom !!! exact. FL*/ $query = "SELECT ed_id FROM publishers WHERE ed_name='{$key}' and ed_ville = '{$ville}' "; $result = @pmb_mysql_query($query, $dbh); if (!$result) { die("can't SELECT publisher " . $query); } // resultat // recuperation du resultat de la recherche $tediteur = pmb_mysql_fetch_object($result); // et recuperation eventuelle de l'id if ($tediteur->ed_id) { return $tediteur->ed_id; } // id non-recuperee, il faut creer la forme. $query = 'INSERT INTO publishers SET ed_name="' . $key . '", ed_ville = "' . $ville . '", ed_adr1 = "' . $adr . '", ed_comment="' . $ed_comment . '", ed_adr2="' . $adr2 . '", ed_cp="' . $cp . '", ed_pays="' . $pays . '", ed_web="' . $web . '", index_publisher=" ' . strip_empty_chars($key) . ' " '; $result = @pmb_mysql_query($query, $dbh); if (!$result) { die("can't INSERT into publisher : " . $query); } $id = pmb_mysql_insert_id($dbh); audit::insert_creation(AUDIT_PUBLISHER, $id); //update authority informations $authority = new authority(0, $id, AUT_TABLE_PUBLISHERS); $authority->set_num_statut($data['statut']); $authority->update(); editeur::update_index($id); return $id; }
public static function import($data) { // cette méthode prend en entrée un tableau constitué des informations éditeurs suivantes : // $data['type'] type de l'autorité (70 , 71 ou 72) // $data['name'] élément d'entrée de l'autorité // $data['rejete'] élément rejeté // $data['date'] dates de l'autorité // $data['lieu'] lieu du congrès 210$e // $data['ville'] ville du congrès // $data['pays'] pays du congrès // $data['subdivision'] 210$b // $data['numero'] numero du congrès 210$d // $data['voir_id'] id de la forme retenue (sans objet pour l'import de notices) // $data['author_comment'] commentaire // $data['authority_number'] Numéro d'autortité // TODO gestion du dédoublonnage ! global $dbh; global $opac_enrichment_bnf_sparql; // check sur le type de la variable passée en paramètre if (!sizeof($data) || !is_array($data)) { // si ce n'est pas un tableau ou un tableau vide, on retourne 0 return 0; } // check sur les éléments du tableau (data['name'] ou data['rejete'] est requis). $long_maxi_name = pmb_mysql_field_len(pmb_mysql_query("SELECT author_name FROM authors limit 1"), 0); $long_maxi_rejete = pmb_mysql_field_len(pmb_mysql_query("SELECT author_rejete FROM authors limit 1"), 0); $data['name'] = rtrim(substr(preg_replace('/\\[|\\]/', '', rtrim(ltrim($data['name']))), 0, $long_maxi_name)); $data['rejete'] = rtrim(substr(preg_replace('/\\[|\\]/', '', rtrim(ltrim($data['rejete']))), 0, $long_maxi_rejete)); if (!$data['name'] && !$data['rejete']) { return 0; } // check sur le type d'autorité if (!$data['type'] == 70 && !$data['type'] == 71 && !$data['type'] == 72) { return 0; } // tentative de récupérer l'id associée dans la base (implique que l'autorité existe) // préparation de la requête $key0 = $data['type']; $key1 = addslashes($data['name']); $key2 = addslashes($data['rejete']); $key3 = addslashes($data['date']); $key4 = addslashes($data['subdivision']); $key5 = addslashes($data['lieu']); $key6 = addslashes($data['ville']); $key7 = addslashes($data['pays']); $key8 = addslashes($data['numero']); $data['lieu'] = addslashes($data['lieu']); $data['ville'] = addslashes($data['ville']); $data['pays'] = addslashes($data['pays']); $data['subdivision'] = addslashes($data['subdivision']); $data['numero'] = addslashes($data['numero']); $data['author_comment'] = addslashes($data['author_comment']); $data['author_web'] = addslashes($data['author_web']); if (!$data['statut']) { $data['statut'] = 1; } else { $data['statut'] += 0; } $query = "SELECT author_id FROM authors WHERE author_type='{$key0}' AND author_name='{$key1}' AND author_rejete='{$key2}' AND author_date='{$key3}'"; if ($data["type"] > 70) { $query .= " and author_subdivision='{$key4}' and author_lieu='{$key5}' and author_ville='{$key6}' and author_pays='{$key7}' and author_numero='{$key8}'"; } $query .= " LIMIT 1"; $result = @pmb_mysql_query($query, $dbh); if (!$result) { die("can't SELECT in database"); } // résultat // récupération du résultat de la recherche $aut = pmb_mysql_fetch_object($result); // du résultat et récupération éventuelle de l'id if ($aut->author_id) { return $aut->author_id; } // id non-récupérée, il faut créer l'auteur $query = 'INSERT INTO authors SET author_type="' . $key0 . '", '; $query .= 'author_name="' . $key1 . '", '; $query .= 'author_rejete="' . $key2 . '", '; $query .= 'author_date="' . $key3 . '", '; $query .= 'author_lieu="' . $data['lieu'] . '", '; $query .= 'author_ville="' . $data['ville'] . '", '; $query .= 'author_pays="' . $data['pays'] . '", '; $query .= 'author_subdivision="' . $data['subdivision'] . '", '; $query .= 'author_numero="' . $data['numero'] . '", '; $query .= 'author_web="' . $data['author_web'] . '", '; $query .= 'author_comment="' . $data['author_comment'] . '", '; $word_to_index = $key1 . ' ' . $key2 . ' ' . $data['lieu'] . ' ' . $data['ville'] . ' ' . $data['pays'] . ' ' . $data['numero'] . ' ' . $data["subdivision"]; if ($key0 == "72") { $word_to_index .= " " . $key3; } $query .= 'index_author=" ' . strip_empty_chars($word_to_index) . ' " '; $result = @pmb_mysql_query($query, $dbh); if (!$result) { die("can't INSERT into table authors :<br /><b>{$query}</b> "); } $id = pmb_mysql_insert_id($dbh); audit::insert_creation(AUDIT_AUTHOR, $id); //update authority informations $authority = new authority(0, $id, AUT_TABLE_AUTHORS); $authority->set_num_statut($data['statut']); $authority->update(); auteur::update_index($id); return $id; }
static function import($name, $comment = "", $id_pclassement = "", $statut = 1) { global $dbh; global $pmb_limitation_dewey; global $thesaurus_classement_defaut; // check sur la variable passée en paramètre if (!$name) { return 0; } if ($pmb_limitation_dewey < 0) { return 0; } if ($pmb_limitation_dewey) { $name = substr($name, 0, $pmb_limitation_dewey); } // tentative de récupérer l'id associée dans la base (implique que l'autorité existe) // préparation de la requête $key = addslashes($name); $comment = addslashes($comment); if (!$id_pclassement) { $num_pclass = $thesaurus_classement_defaut; } else { $num_pclass = $id_pclassement; } //On regarde si le plan de classement existe $query = "SELECT name_pclass FROM pclassement WHERE id_pclass='" . addslashes($num_pclass) . "' LIMIT 1 "; $result = @pmb_mysql_query($query, $dbh); if (!$result) { die("can't SELECT pclassement " . $query); } if (!pmb_mysql_num_rows($result)) { //Le plan de classement demandé n'existe pas return 0; // -> pas d'import } $query = "SELECT indexint_id FROM indexint WHERE indexint_name='" . rtrim(substr($key, 0, 255)) . "' and num_pclass='{$num_pclass}' LIMIT 1 "; $result = @pmb_mysql_query($query, $dbh); if (!$result) { die("can't SELECT indexint " . $query); } // résultat // récupération du résultat de la recherche $tindexint = pmb_mysql_fetch_object($result); // du résultat et récupération éventuelle de l'id if ($tindexint->indexint_id) { return $tindexint->indexint_id; } // id non-récupérée >> création if (!$id_pclassement) { $num_pclass = $thesaurus_classement_defaut; } else { $num_pclass = $id_pclassement; } $query = "INSERT INTO indexint SET indexint_name='{$key}', indexint_comment='{$comment}', index_indexint=' " . strip_empty_words($key . " " . $comment) . " ', num_pclass={$num_pclass} "; $result = @pmb_mysql_query($query, $dbh); if (!$result) { die("can't INSERT into indexint " . $query); } $id = pmb_mysql_insert_id($dbh); audit::insert_creation(AUDIT_INDEXINT, $id); //update authority informations $authority = new authority(0, $id, AUT_TABLE_INDEXINT); $authority->set_num_statut($statut); $authority->update(); indexint::update_index($id); return $id; }
protected function proceed_save($list = true) { global $dbh; $this->item->get_values_from_form(); $result = $this->handler->save($this->item); if ($result !== true) { $ui_class_name = self::resolve_ui_class_name($this->params->sub, $this->handler->get_onto_name()); $ui_class_name::display_errors($this, $result); } else { //TODO: reprendre ce hack un peu crade //pour faciliter les requetes SPARQL en gestion, on ajoute une propriété qui sort de nulle part... pmb:showInTop si pas de parent dans le schéma $query = "select ?scheme ?broader ?broaderScheme where{\n\t\t\t\t\t<" . $this->item->get_uri() . "> rdf:type skos:Concept .\t\n\t\t\t\t\t<" . $this->item->get_uri() . "> skos:inScheme ?scheme .\n\t\t\t\t\toptional {\n\t\t\t\t\t\t<" . $this->item->get_uri() . "> skos:broader ?broader .\n\t\t\t\t\t\t?broader skos:inScheme ?broaderScheme\n\t\t\t\t\t}\n\t\t\t\t} order by ?scheme ?broader"; $this->handler->data_query($query); if ($this->handler->data_num_rows()) { $results = $this->handler->data_result(); $lastScheme = $results[0]->scheme; $flag = true; foreach ($results as $result) { if ($result->scheme == $result->broaderScheme) { $flag = false; } if ($lastScheme != $result->scheme) { if ($flag) { $query = "insert into <pmb> {<" . $this->item->get_uri() . "> pmb:showInTop <" . $lastScheme . ">}"; $this->handler->data_query($query); } $flag = true; $lastScheme = $result->scheme; } } if ($flag) { $query = "insert into <pmb> {<" . $this->item->get_uri() . "> pmb:showInTop <" . $lastScheme . ">}"; $this->handler->data_query($query); } } else { $query = "select * where{\n\t\t\t\t\t<" . $this->item->get_uri() . "> rdf:type skos:Concept .\t\n\t\t\t\t\toptional{\t\t\n\t\t\t\t\t <" . $this->item->get_uri() . "> skos:inScheme ?scheme .\n\t\t\t\t\t} . filter(!bound(?scheme)) .\n\t\t\t\t\t optional {\n\t\t\t\t\t\t<" . $this->item->get_uri() . "> skos:broader ?broader .\n\t\t\t\t\t\t?broader skos:inScheme ?broaderScheme\n\t\t\t\t\t} filter (!bound(?broaderScheme))\n\t\t\t\t} "; $this->handler->data_query($query); if (!$this->handler->data_num_rows()) { $query = "insert into <pmb> {<" . $this->item->get_uri() . "> pmb:showInTop owl:Nothing}"; $this->handler->data_query($query); } } //sauvegarde des autorités liées pour les concepts... //Ajout de la sauvegarde du statut si c'est un concept également if (get_class($this->item) == "onto_skos_concept_item") { global $authority_statut; $authority_statut += 0; $concept_id = onto_common_uri::get_id($this->item->get_uri()); $aut_link = new aut_link(AUT_TABLE_CONCEPT, $concept_id); $aut_link->save_form(); //Ajout de la référence dans la table authorities $authority = new authority(0, $concept_id, AUT_TABLE_CONCEPT); $authority->set_num_statut($authority_statut); $authority->update(); } // Mise à jour des vedettes composées contenant cette autorité vedette_composee::update_vedettes_built_with_element(onto_common_uri::get_id($this->item->get_uri()), "concept"); //réindexation des notices indexés avec le concepts $query = "select num_object from index_concept where type_object =1 and num_concept = " . onto_common_uri::get_id($this->item->get_uri()); $result = pmb_mysql_query($query, $dbh); if ($result && pmb_mysql_num_rows($result)) { while ($row = pmb_mysql_fetch_object($result)) { notice::majNoticesMotsGlobalIndex($row->num_object, "concept"); } } } if ($list) { $this->proceed_list(); } }