/**
  * 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 .= ".&nbsp;-&nbsp;<u>{$msg['210']}</u>&nbsp;:&nbsp;" . $author_voir;
        }
        $notice_count_sql = "SELECT count(distinct responsability_notice) FROM responsability WHERE responsability_author = " . $author_id;
Example #5
0
 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;
 }
Example #8
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 "";
 }
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);
 }
Example #11
0
 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;
 }
Example #12
0
 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;
 }
Example #13
0
 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'>";
Example #17
0
$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 . " -&gt; <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);
         }
     }
 }
Example #20
0
         $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;
Example #21
0
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."';\">";
Example #22
0
 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();
     }
 }