/** * Aiguilleur * @param array $context */ public function proceed($context = array()) { global $pmb_url_base, $categ, $sub, $id, $quoi; if (is_object($this->authority)) { // On va chercher les onglets de l'autorité $this->authority->set_authority_tabs($this->get_authority_tabs()); // On va chercher la liste d'éléments à afficher $authority_list_ui = $this->authority->get_authority_list_ui(); if ($authority_list_ui) { $authority_list_ui->set_current_url($pmb_url_base . 'autorites.php?categ=' . $categ . '&sub=' . $sub . '&id=' . $id . '&quoi=' . $quoi); } print $this->authority->render($context); } }
/** * Permet de générer l'affichage d'un élément de liste de type autorité * @param authority $authority * @param bool $recherche_ajax_mode * @param int $group_id Identifiant du groupe * @return string */ private function generate_authority($authority, $recherche_ajax_mode, $group_id) { global $include_path; $template_path = $include_path . '/templates/authorities/list/' . $authority->get_string_type_object() . '.html'; if (file_exists($include_path . '/templates/authorities/list/' . $authority->get_string_type_object() . '_subst.html')) { $template_path = $include_path . '/templates/authorities/list/' . $authority->get_string_type_object() . '_subst.html'; } if (file_exists($template_path)) { $h2o = new H2o($template_path); $context = array('list_element' => $authority, 'group_id' => $group_id); return $h2o->render($context); } return ''; }
public static function get_author_tu_per_role($tab, $filter, $element_id) { global $dbh, $msg; //Récupération du nombre de notice liées $groups = array(); $query = "SELECT count(responsability_tu_num) as nb, vedette_object.object_id from responsability_tu join vedette_link on vedette_link.num_object=responsability_tu.id_responsability_tu and vedette_link.type_object= " . TYPE_TU_RESPONSABILITY . " join vedette_object on vedette_object.num_vedette=vedette_link.num_vedette where responsability_tu.responsability_tu_author_num = " . $element_id . " and vedette_object.object_type > 1000 GROUP BY vedette_object.object_id"; $result = pmb_mysql_query($query, $dbh); if ($result && pmb_mysql_num_rows($result)) { while ($row = pmb_mysql_fetch_object($result)) { if (!isset($groups[$row->object_id])) { $authperso = new authority(0, $row->object_id, AUT_TABLE_AUTHPERSO); $groups[$row->object_id] = array('label' => $authperso->get_object_instance()->get_header(), 'nb_results' => $row->nb); } $nb_results += $row->nb; } } $elements_ids = array(); if (count($groups)) { // On trie le tableau uasort($groups, array('authority_tabs', '_sort_groups_by_label')); $tab->add_groups($filter['name'], array('label' => $filter['label'], 'elements' => $groups)); $filter_values = $tab->get_filter_values($filter['name']); //Si on a des résultats; on passe à la suite if ($filter_values && count($filter_values)) { $query = "select responsability_tu_num, vedette_object.object_id from responsability_tu join vedette_link on vedette_link.num_object=responsability_tu.id_responsability_tu and vedette_link.type_object= " . TYPE_TU_RESPONSABILITY . " join vedette_object on vedette_object.num_vedette=vedette_link.num_vedette join titres_uniformes on titres_uniformes.tu_id=responsability_tu.responsability_tu_num where responsability_tu.responsability_tu_author_num = " . $element_id . " and vedette_object.object_type > 1000"; $query .= ' and vedette_object.object_id in ("' . implode('","', $filter_values) . '")'; $query .= ' group by responsability_tu.responsability_tu_num'; $result = pmb_mysql_query($query, $dbh); if (pmb_mysql_num_rows($result)) { while ($row = pmb_mysql_fetch_object($result)) { $elements_ids[] = $row->responsability_tu_num; } } } } return $elements_ids; }
if ($nbr_lignes) { $authors_list_tmpl = str_replace("<! --!!nb_autorite_found!!-- >", $nbr_lignes . ' ', $authors_list_tmpl); $url_base = "./autorites.php?categ=auteurs&sub=reach&user_input=" . rawurlencode(stripslashes($user_input)); $author_list = "<tr>\n\t\t\t<th></th>\n\t\t\t<th>" . $msg['103'] . "</th>\n\t\t\t<!--!!col_num_autorite!!-->\n\t\t\t<th>" . $msg["count_notices_assoc"] . "</th>\n\t\t</tr>"; $num_auth_present = false; $req = "SELECT id_authority_source FROM authorities_sources WHERE authority_type='author' AND TRIM(authority_number) !='' LIMIT 1"; $res_aut = pmb_mysql_query($req, $dbh); if ($res_aut && pmb_mysql_num_rows($res_aut)) { $author_list = str_replace("<!--!!col_num_autorite!!-->", "<th>" . $msg["authorities_number"] . "</th>", $author_list); $num_auth_present = true; } $sorted_authors = $authors_searcher->get_sorted_result('default', $debut, $nb_per_page); $parity = 1; foreach ($sorted_authors as $authority_id) { // On va chercher les infos spécifique à l'autorité $authority = new authority($authority_id); $author_id = $authority->get_num_object(); $aut = $authority->get_object_instance(array('recursif' => 1)); $author_entry = $aut->isbd_entry; $link_auteur = "./autorites.php?categ=auteurs&sub=author_form&id=" . $author_id . "&user_input=" . rawurlencode(stripslashes($user_input)) . "&nbr_lignes=" . $nbr_lignes . "&page=" . $page; //$link_auteur = "./autorites.php?categ=see&sub=author&id=$author_id"; if ($aut->see) { // auteur avec renvoi // récupération des données de l'auteur cible $see = authorities_collection::get_authority(AUT_TABLE_AUTHORS, $aut->see, array('recursif' => 1)); $author_voir = $see->isbd_entry; //$author_voir = "<a href='./autorites.php?categ=auteurs&sub=author_form&id=$aut->see&user_input=".rawurlencode(stripslashes($user_input))."&nbr_lignes=$nbr_lignes&page=$page'>$author_voir</a>"; $author_voir = "<a href='./autorites.php?categ=see&sub=author&id={$aut->see}'>{$author_voir}</a>"; $author_entry .= ". - <u>{$msg['210']}</u> : " . $author_voir; } $notice_count_sql = "SELECT count(distinct responsability_notice) FROM responsability WHERE responsability_author = " . $author_id;
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; }
if ($nbr_lignes) { $titres_uniformes_list_tmpl = str_replace("<! --!!nb_autorite_found!!-- >", $nbr_lignes . ' ', $titres_uniformes_list_tmpl); $url_base = "./autorites.php?categ=titres_uniformes&sub=reach&user_input=" . rawurlencode(stripslashes($user_input)); $titre_uniforme_list = "<tr>\n\t\t\t<th></th>\n\t\t\t<th>" . $msg[103] . "</th>\n\t\t\t<!--!!col_num_autorite!!-->\n\t\t\t<th>" . $msg["count_notices_assoc"] . "</th>\n\t\t</tr>"; $num_auth_present = false; $req = "SELECT id_authority_source FROM authorities_sources WHERE authority_type='uniform_title' AND TRIM(authority_number) !='' LIMIT 1"; $res_aut = pmb_mysql_query($req, $dbh); if ($res_aut && pmb_mysql_num_rows($res_aut)) { $titre_uniforme_list = str_replace("<!--!!col_num_autorite!!-->", "<th>" . $msg["authorities_number"] . "</th>", $titre_uniforme_list); $num_auth_present = true; } $parity = 1; $sorted_tu = $tu_searcher->get_sorted_result('default', $debut, $nb_per_page); foreach ($sorted_tu as $authority_id) { // On va chercher les infos spécifique à l'autorité $authority = new authority($authority_id); $tu_id = $authority->get_num_object(); $tu = $authority->get_object_instance(); $tu->do_isbd(); $titre_uniforme_entry = $tu->tu_isbd; //$titre_uniforme_entry = $tu->display; $link_titre_uniforme = "./autorites.php?categ=titres_uniformes&sub=titre_uniforme_form&id=" . $tu_id . "&user_input=" . rawurlencode(stripslashes($user_input)) . "&nbr_lignes={$nbr_lignes}&page={$page}"; //$link_titre_uniforme = './autorites.php?categ=see&sub=titre_uniforme&id='.$tu_id; if ($parity % 2) { $pair_impair = "even"; } else { $pair_impair = "odd"; } $parity += 1; $notice_count_sql = "SELECT count(*) FROM notices_titres_uniformes WHERE ntu_num_tu = " . $tu_id; $notice_count = pmb_mysql_result(pmb_mysql_query($notice_count_sql), 0, 0);
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 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 ""; }
if ($nbr_lignes) { $collection_list_tmpl = str_replace("<! --!!nb_autorite_found!!-- >", $nbr_lignes . ' ', $collection_list_tmpl); $collection_list .= "<tr>\n\t\t<th></th>\n\t\t<th>" . $msg[103] . "</th>\n\t\t<th>" . $msg[165] . "</th>\n\t\t<!--!!col_num_autorite!!-->\n\t\t<th>" . $msg["count_notices_assoc"] . "</th>\n\t\t</tr>"; $num_auth_present = false; $req = "SELECT id_authority_source FROM authorities_sources WHERE authority_type='collection' AND TRIM(authority_number) !='' LIMIT 1"; $res_aut = pmb_mysql_query($req, $dbh); if ($res_aut && pmb_mysql_num_rows($res_aut)) { $collection_list = str_replace("<!--!!col_num_autorite!!-->", "<th>" . $msg["authorities_number"] . "</th>", $collection_list); $num_auth_present = true; } $parity = 1; $url_base = "./autorites.php?categ=collections&sub=reach&user_input=" . rawurlencode(stripslashes($user_input)); $sorted_collections = $collections_searcher->get_sorted_result('default', $debut, $nb_per_page); foreach ($sorted_collections as $authority_id) { // On va chercher les infos spécifique à l'autorité $authority = new authority($authority_id); $collection_id = $authority->get_num_object(); $coll = $authority->get_object_instance(); if ($parity % 2) { $pair_impair = "even"; } else { $pair_impair = "odd"; } $parity += 1; $notice_count_sql = "SELECT count(*) FROM notices WHERE coll_id = " . $collection_id; $notice_count = pmb_mysql_result(pmb_mysql_query($notice_count_sql), 0, 0); $tr_javascript = " onmouseover=\"this.className='surbrillance'\" onmouseout=\"this.className='{$pair_impair}'\" "; $collection_list .= "<tr class='{$pair_impair}' {$tr_javascript} style='cursor: pointer'>"; $collection_list .= "<td style='text-align:center; width:25px;'>\n \t\t\t\t\t\t<a title='" . $msg['authority_list_see_label'] . "' href='./autorites.php?categ=see&sub=collection&id=" . $collection_id . "'>\n \t\t\t\t\t\t\t<i class='fa fa-eye'></i>\n \t\t\t\t\t\t</a>\n \t\t\t\t\t</td>"; $collection_list .= "<td valign='top' onmousedown=\"document.location='./autorites.php?categ=collections&sub=collection_form&id={$collection_id}&user_input=" . rawurlencode(stripslashes($user_input)) . "&nbr_lignes={$nbr_lignes}&page={$page}';\">"; //$collection_list.= "<td valign='top' onmousedown=\"document.location='./autorites.php?categ=see&sub=collection&id=$collection_id';\">";
public static function delete_all_index($object_id, $table_prefix, $reference_key, $type = "") { global $dbh; if (!$type) { return false; } $authority = new authority(0, $object_id, $type); $id_authority = $authority->get_id(); $req_del = "delete from " . $table_prefix . "_words_global_index where " . $reference_key . "='" . $id_authority . "'"; pmb_mysql_query($req_del, $dbh); //la table pour les recherche exacte $req_del = "delete from " . $table_prefix . "_fields_global_index where " . $reference_key . "='" . $id_authority . "'"; pmb_mysql_query($req_del, $dbh); }
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; }
editeur::search_form(); print pmb_bidi($ed_list_tmpl); } if (!$page) { $page = 1; } $debut = ($page - 1) * $nb_per_page; if ($nbr_lignes) { $ed_list_tmpl = str_replace("<! --!!nb_autorite_found!!-- >", $nbr_lignes . ' ', $ed_list_tmpl); $ed_list = "<tr>\n\t\t<th></th>\n\t\t<th>" . $msg[103] . "</th>\n\t\t<th>" . $msg[72] . "</th>\n\t\t<th>" . $msg[147] . "</th>\n\t\t<th>" . $msg["count_notices_assoc"] . "</th>\n\t\t</tr>"; $parity = 1; $url_base = "./autorites.php?categ=editeurs&sub=reach&user_input=" . rawurlencode(stripslashes($user_input)); $sorted_publishers = $publishers_searcher->get_sorted_result('default', $debut, $nb_per_page); foreach ($sorted_publishers as $authority_id) { // On va chercher les infos spécifique à l'autorité $authority = new authority($authority_id); $publisher_id = $authority->get_num_object(); $ed = $authority->get_object_instance(); if ($parity % 2) { $pair_impair = "even"; } else { $pair_impair = "odd"; } $parity += 1; $notice_count_sql = "SELECT count(*) FROM notices WHERE ed1_id=" . $publisher_id; $notice_count1 = pmb_mysql_result(pmb_mysql_query($notice_count_sql), 0, 0); $notice_count_sql = "SELECT count(*) FROM notices WHERE ed2_id=" . $publisher_id; $notice_count = $notice_count1 + pmb_mysql_result(pmb_mysql_query($notice_count_sql), 0, 0); $tr_javascript = " onmouseover=\"this.className='surbrillance'\" onmouseout=\"this.className='{$pair_impair}'\" "; $ed_list .= "<tr class='{$pair_impair}' {$tr_javascript} style='cursor: pointer'>"; $ed_list .= "<td style='text-align:center; width:25px;'>\n \t\t\t\t<a title='" . $msg['authority_list_see_label'] . "' href='./autorites.php?categ=see&sub=publisher&id=" . $publisher_id . "'>\n \t\t\t\t\t<i class='fa fa-eye'></i>\n \t\t\t\t</a>\n \t\t\t</td>";
/** * Affiche les données renvoyées par les vues */ public function proceed() { $authority = new authority("concept", $this->concept->get_id()); $context['authority'] = array('broaders' => skos_view_concepts::get_broaders_list($this->concept->get_broaders()), 'title' => skos_view_concept::get_concept($this->concept), 'narrowers' => skos_view_concepts::get_narrowers_list($this->concept->get_narrowers()), 'details' => skos_view_concept::get_detail_concept($this->concept), 'composed_concepts' => skos_view_concepts::get_composed_concepts_list($this->concept->get_composed_concepts()), 'recordslist' => skos_view_concept::get_notices_indexed_with_concept($this->concept), 'authoritieslist' => skos_view_concept::get_authorities_indexed_with_concept($this->concept)); print $authority->render($context); }
} else { $pclass_url = "&id_pclass={$thesaurus_classement_defaut}"; } if (!$page) { $page = 1; } $debut = ($page - 1) * $nb_per_page; if ($nbr_lignes) { $indexint_list_tmpl = str_replace("<! --!!nb_autorite_found!!-- >", $nbr_lignes . ' ', $indexint_list_tmpl); $indexint_list = "<tr>\n\t\t<th></th>\n\t\t<th>" . $msg[103] . "</th>\n\t\t<th>" . $msg[707] . "</th>\n\t\t<th>" . $msg["count_notices_assoc"] . "</th>\n\t\t</tr>"; $sorted_indexint = $indexint_searcher->get_sorted_result('default', $debut, $nb_per_page); $parity = 1; $url_base = "./autorites.php?categ=indexint&sub=reach{$pclass_url}&user_input=" . rawurlencode(stripslashes($user_input)) . "&exact={$exact}"; foreach ($sorted_indexint as $authority_id) { // On va chercher les infos spécifique à l'autorité $authority = new authority($authority_id); $indexint_id = $authority->get_num_object(); $indexint = $authority->get_object_instance(); if ($parity % 2) { $pair_impair = "even"; } else { $pair_impair = "odd"; } $parity += 1; $notice_count_sql = "SELECT count(*) FROM notices WHERE indexint = " . $indexint_id; $notice_count = pmb_mysql_result(pmb_mysql_query($notice_count_sql), 0, 0); $tr_javascript = " onmouseover=\"this.className='surbrillance'\" onmouseout=\"this.className='{$pair_impair}'\" "; if ($thesaurus_classement_mode_pmb != 0) { $pclass_name = "[" . $indexint->name_pclass . "] "; } $indexint_list .= "<tr class='{$pair_impair}' {$tr_javascript} style='cursor: pointer'>";
$debut = ($page - 1) * $nb_per_page; if ($nbr_lignes) { $categ_list_tmpl = str_replace("<! --!!nb_autorite_found!!-- >", $nbr_lignes . ' ', $categ_list_tmpl); $parity = 1; $categ_list .= "<tr>\n\t\t<th></th>\n\t\t<th>" . $msg[103] . "</th>\n\t\t<th>" . $msg["categ_commentaire"] . "</th>\n\t\t<!--!!col_num_autorite!!-->\n\t\t<th>" . $msg["count_notices_assoc"] . "</th>\n\t\t</tr>"; $num_auth_present = false; $req = "SELECT id_authority_source FROM authorities_sources WHERE authority_type='category' AND TRIM(authority_number) !='' LIMIT 1"; $res_aut = pmb_mysql_query($req, $dbh); if ($res_aut && pmb_mysql_num_rows($res_aut)) { $categ_list = str_replace("<!--!!col_num_autorite!!-->", "<th>" . $msg["authorities_number"] . "</th>", $categ_list); $num_auth_present = true; } $sorted_categ = $categ_searcher->get_sorted_result('default', $debut, $nb_per_page); foreach ($sorted_categ as $authority_id) { // On va chercher les infos spécifique à l'autorité $authority = new authority($authority_id); $categ_id = $authority->get_num_object(); $categ = $authority->get_object_instance(); if ($id_thes == -1) { $display = '[' . htmlentities($categ->thes->libelle_thesaurus, ENT_QUOTES, $charset) . ']'; } else { $display = ''; } if ($lg_search) { $display .= '[' . $lg[$categ->langue] . '] '; } if ($categ->voir_id) { $temp = authorities_collection::get_authority(AUT_TABLE_CATEG, $categ->voir_id); $display .= $categ->libelle . " -> <i>"; $display .= $temp->catalog_form; $display .= "@</i>";
public function get_oeuvre_expressions_list_ui() { if (!$this->oeuvre_expressions_list_ui) { $contents = array(); $nb_results = 0; foreach ($this->oeuvre_expressions as $expression) { $authority = new authority(0, $expression['to_id'], AUT_TABLE_TITRES_UNIFORMES); $contents[] = $authority->get_id(); $nb_results++; } $this->oeuvre_expressions_list_ui = new elements_authorities_list_ui($contents, $nb_results, false); } return $this->oeuvre_expressions_list_ui; }
/** * Méthode permettant de récupérer les autorités indexées avec un concept utilisant cette autorité * @param elements_list_tab $tab * @param authority_tabs $authority_tabs * @return authority_tab Onglet */ protected static function get_tab_authorities_indexed_with_concept($tab, $authority) { global $dbh, $msg; $types_needed = array(TYPE_AUTHOR, TYPE_CATEGORY, TYPE_PUBLISHER, TYPE_COLLECTION, TYPE_SUBCOLLECTION, TYPE_SERIE, TYPE_TITRE_UNIFORME, TYPE_INDEXINT, TYPE_AUTHPERSO); $concepts_ids = $authority->get_concepts_ids(); $nb_result = 0; if (count($concepts_ids)) { $query = 'select count(distinct num_object, type_object) from index_concept where num_concept in (' . implode(',', $concepts_ids) . ') and type_object in (' . implode(',', $types_needed) . ')'; $nb_result = pmb_mysql_result(pmb_mysql_query($query, $dbh), 0, 0); } $tab->set_nb_results($nb_result); if (!$quoi && $nb_result) { // Si $quoi n'est pas valorisé et qu'on a des résultats, on valorise $quoi avec cet onglet $quoi = $tab->get_name(); } if ($nb_result && $quoi == $tab->get_name()) { // On définit les filtres $filter = array('name' => 'common_indexed_authorities_by_types', 'label' => $msg['authority_tabs_common_indexed_authorities_by_types']); $tab->set_filters(array($filter)); $groups = array(); $query = 'select count(distinct num_object) as nb, type_object, id_authperso, authperso_name from index_concept left join authperso_authorities on num_object = id_authperso_authority and type_object = ' . TYPE_AUTHPERSO . ' left join authperso on id_authperso = authperso_authority_authperso_num where num_concept in (' . implode(',', $concepts_ids) . ') and type_object in (' . implode(',', $types_needed) . ') group by type_object, id_authperso'; $result = pmb_mysql_query($query, $dbh); if ($result && pmb_mysql_num_rows($result)) { while ($row = pmb_mysql_fetch_object($result)) { if ($row->type_object == TYPE_AUTHPERSO && !isset($groups[1000 + $row->id_authperso])) { $groups[1000 + $row->id_authperso] = array('label' => $row->authperso_name, 'nb_results' => $row->nb); } else { if (!isset($groups[$row->type_object])) { $groups[$row->type_object] = array('label' => authority::get_type_label_from_type_id(index_concept::get_aut_table_type_from_type($row->type_object)), 'nb_results' => $row->nb); } } } } if (count($groups)) { // On trie le tableau uasort($groups, array('authority_tabs', '_sort_groups_by_label')); $tab->add_groups($filter['name'], array('label' => $filter['label'], 'elements' => $groups)); $filter_values = $tab->get_filter_values($filter['name']); $authpersos_needed = array(); if ($filter_values && count($filter_values)) { $types_needed = array(); foreach ($filter_values as $value) { if ($value > 1000) { if (!in_array(TYPE_AUTHPERSO, $types_needed)) { $types_needed[] = TYPE_AUTHPERSO; } $authpersos_needed[] = $value - 1000; } else { $types_needed[] = $value; } } } $query = 'select SQL_CALC_FOUND_ROWS num_object, type_object, authperso_authority_authperso_num'; $query .= ' from index_concept left join authperso_authorities on num_object = id_authperso_authority and type_object = ' . TYPE_AUTHPERSO; $query .= ' where num_concept in (' . implode(',', $concepts_ids) . ') and type_object in (' . implode(',', $types_needed) . ')'; // si on a des filtres sur des authorités persos if (count($authpersos_needed)) { $query .= ' and (authperso_authority_authperso_num is null or authperso_authority_authperso_num in (' . implode(',', $authpersos_needed) . '))'; } $query .= authority_tabs::get_limit(); // on lance la requête $result = pmb_mysql_query($query, $dbh); $records_ids = array(); if ($result && pmb_mysql_num_rows($result)) { while ($row = pmb_mysql_fetch_object($result)) { $authority = new authority(0, $row->num_object, index_concept::get_aut_table_type_from_type($row->type_object)); $records_ids[] = $authority->get_id(); } } $nb_filtered_results = pmb_mysql_result(pmb_mysql_query('select FOUND_ROWS()'), 0, 0); $tab->set_nb_filtered_results($nb_filtered_results); $tab->set_contents($records_ids); } } }
$infos_notice['nb_pages'] = ceil($nbr_lignes / $opac_nb_aut_rec_per_page); } $recordslist .= aff_notice(-2); $recordslist .= "</blockquote>\n"; pmb_mysql_free_result($res); // constitution des liens $nbepages = ceil($nbr_lignes / $opac_nb_aut_rec_per_page); // $recordslist.= "</div><!-- fermeture #aut_details_liste -->\n"; $recordslist .= "<div id='navbar'><hr /><center>" . printnavbar($page, $nbepages, "./index.php?lvl=coll_see&id={$id}&page=!!page!!&nbr_lignes={$nbr_lignes}&l_typdoc=" . rawurlencode($l_typdoc)) . "</center></div>\n"; } else { $recordslist .= $msg[no_document_found]; } $recordslist .= "</div>"; // Fermeture du div resultatrech_liste $context['authority']['recordslist'] = $recordslist; $authority = new authority("collection", $id); $authority->render($context); //FACETTES //gestion des facette si active require_once $base_path . '/classes/facette_search.class.php'; $records = ""; unset($_SESSION['facette']); if ($nbr_lignes) { $requete = "SELECT notices.notice_id FROM notices {$acces_j} {$statut_j} "; $requete .= "WHERE coll_id='{$id}' {$statut_r} "; $facettes_result = pmb_mysql_query($requete, $dbh); while ($row = pmb_mysql_fetch_object($facettes_result)) { if ($records) { $records .= ","; } $records .= $row->notice_id;
if ($nbr_lignes) { $serie_list_tmpl = str_replace("<! --!!nb_autorite_found!!-- >", $nbr_lignes . ' ', $serie_list_tmpl); $serie_list = "<tr>\n\t\t<th></th>\n\t\t<th>" . $msg[103] . "</th>\n\t\t<!--!!col_num_autorite!!-->\n\t\t<th>" . $msg["count_notices_assoc"] . "</th>\n\t\t</tr>"; $num_auth_present = false; $req = "SELECT id_authority_source FROM authorities_sources WHERE authority_type='serie' AND TRIM(authority_number) !='' LIMIT 1"; $res_aut = pmb_mysql_query($req, $dbh); if ($res_aut && pmb_mysql_num_rows($res_aut)) { $serie_list = str_replace("<!--!!col_num_autorite!!-->", "<th>" . $msg["authorities_number"] . "</th>", $serie_list); $num_auth_present = true; } $parity = 1; $url_base = "./autorites.php?categ=series&sub=reach&user_input=" . rawurlencode(stripslashes($user_input)); $sorted_series = $series_searcher->get_sorted_result('default', $debut, $nb_per_page); foreach ($sorted_series as $authority_id) { // On va chercher les infos spécifique à l'autorité $authority = new authority($authority_id); $serie_id = $authority->get_num_object(); $serie = $authority->get_object_instance(); if ($parity % 2) { $pair_impair = "even"; } else { $pair_impair = "odd"; } $parity += 1; $notice_count_sql = "SELECT count(*) FROM notices WHERE tparent_id = " . $serie_id; $notice_count = pmb_mysql_result(pmb_mysql_query($notice_count_sql), 0, 0); $tr_javascript = " onmouseover=\"this.className='surbrillance'\" onmouseout=\"this.className='{$pair_impair}'\" "; $serie_list .= "<tr class='{$pair_impair}' {$tr_javascript} style='cursor: pointer'>"; $serie_list .= "<td style='text-align:center; width:25px;'>\n \t\t\t\t\t\t<a title='" . $msg['authority_list_see_label'] . "' href='./autorites.php?categ=see&sub=serie&id=" . $serie_id . "'>\n \t\t\t\t\t\t\t<i class='fa fa-eye'></i>\n \t\t\t\t\t\t</a>\n \t\t\t\t\t</td>"; $serie_list .= "<td valign='top' onmousedown=\"document.location='./autorites.php?categ=series&sub=serie_form&id=" . $serie_id . "&user_input=" . rawurlencode(stripslashes($user_input)) . "&nbr_lignes={$nbr_lignes}&page={$page}';\">"; //$serie_list.= "<td valign='top' onmousedown=\"document.location='./autorites.php?categ=see&sub=serie&id=".$serie_id."';\">";
function replace($id, $by, $link_save = 0) { global $msg; global $dbh; global $pmb_synchro_rdf; if ($id == $by || !$id || !$by) { return $msg[223]; } $aut_link = new aut_link($this->id + 1000, $id); // "Conserver les liens entre autorités" est demandé if ($link_save) { // liens entre autorités $aut_link->add_link_to($this->id + 1000, $by); } $aut_link->delete(); // remplacement dans les notices $requete = "UPDATE notices_authperso SET notice_authperso_authority_num='{$by}' WHERE notice_authperso_authority_num='{$id}' "; @pmb_mysql_query($requete, $dbh); // effacement de $this->delete($id); // effacement de l'identifiant unique d'autorité $authority = new authority(0, $id, AUT_TABLE_AUTHPERSO); $authority->delete(); $this->update_global_index($by); }
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(); } }