protected function get_query_clauses($query_elements)
 {
     $query_clauses = array();
     $tables = array();
     // Clause from
     $query_clauses['from'] = ' from ' . $query_elements['table'];
     $tables[] = $query_elements['table'];
     foreach ($query_elements['join'] as $join) {
         $query_clauses['from'] .= ' join ' . $join['table'];
         $tables[] = $join['table'];
         $query_clauses['from'] .= ' on ' . $query_elements['table'] . '.' . $join['referencefield'] . ' = ' . $join['table'] . '.' . $join['externalfield'];
         if ($join['condition']) {
             $query_clauses['from'] .= ' and ' . $join['condition'];
         }
     }
     // Clause where
     $query_clauses['where'] = '';
     foreach ($query_elements['elementfield'] as $elementfield) {
         if (!$query_clauses['where']) {
             $query_clauses['where'] .= ' where (';
         } else {
             $query_clauses['where'] .= ' or';
         }
         $query_clauses['where'] .= ' ' . $query_elements['table'] . '.' . $elementfield . ' = ' . $this->authority->get_num_object();
     }
     if ($query_clauses['where']) {
         $query_clauses['where'] .= ')';
     }
     foreach ($query_elements['condition'] as $condition) {
         if (!$query_clauses['where']) {
             $query_clauses['where'] .= ' where';
         } else {
             $query_clauses['where'] .= ' and';
         }
         $query_clauses['where'] .= ' ' . $condition;
     }
     if ($query_elements['getconcepts'] == 'true') {
         $concepts_ids = $this->authority->get_concepts_ids();
         if (count($concepts_ids)) {
             if (!$query_clauses['where']) {
                 $query_clauses['where'] .= ' where';
             } else {
                 $query_clauses['where'] .= ' and';
             }
             $query_clauses['where'] .= ' ' . $query_elements['conceptfield'] . ' in (' . implode(',', $concepts_ids) . ')';
         }
     }
     // Clause order
     $query_clauses['order'] = '';
     if ($query_elements['order']) {
         // On commence par faire une jointure si nécessaire
         if ($query_elements['order']['table'] && !in_array($query_elements['order']['table'], $tables)) {
             $query_clauses['from'] .= ' join ' . $query_elements['order']['table'];
             $query_clauses['from'] .= ' on ' . $query_elements['table'] . '.' . $query_elements['order']['referencefield'] . ' = ' . $query_elements['order']['table'] . '.' . $query_elements['order']['externalfield'];
         }
         $query_clauses['order'] .= ' order by ' . ($query_elements['order']['table'] ? $query_elements['order']['table'] : $query_elements['table']) . '.' . $query_elements['order']['field'];
     }
     return $query_clauses;
 }
 function get_list()
 {
     global $msg, $charset, $dbh;
     global $user_query, $user_input, $page, $nbr_lignes, $last_param;
     global $url_base;
     global $authority_statut;
     if (!$user_input) {
         $user_input = '*';
     }
     $nb_per_page = 10;
     if (!$page) {
         $page = 1;
     }
     $debut = ($page - 1) * $nb_per_page;
     if (!($nb_per_page * 1)) {
         $nb_per_page = $nb_per_page_search;
     }
     $authperso_searcher = new searcher_authorities_authpersos(stripslashes($user_input));
     $nbr_lignes = $authperso_searcher->get_nb_results();
     $user_query = str_replace('!!user_query_title!!', $msg["authperso_search_title"], $user_query);
     $user_query = str_replace('!!action!!', "./autorites.php?categ=authperso&sub=reach&id_authperso=" . $this->id . "&id=", $user_query);
     $user_query = str_replace('!!add_auth_msg!!', $msg["authperso_search_add"], $user_query);
     $user_query = str_replace('!!add_auth_act!!', './autorites.php?categ=authperso&sub=authperso_form&id_authperso=' . $this->id, $user_query);
     $user_query = str_replace('<!-- lien_derniers -->', "<a href='./autorites.php?categ=authperso&sub=authperso_last&last_param=authperso_last&id_authperso=" . $this->id . "'>" . $msg["authperso_search_last"] . "</a>", $user_query);
     $user_query = str_replace("!!user_input!!", htmlentities(stripslashes($user_input), ENT_QUOTES, $charset), $user_query);
     $user_query = str_replace('!!user_input_url!!', rawurlencode(stripslashes($user_input)), $user_query);
     $user_query = str_replace("<!-- sel_authority_statuts -->", authorities_statuts::get_form_for($this->id + 1000, $authority_statut, true), $user_query);
     if ($nbr_lignes) {
         $sorted_authperso = $authperso_searcher->get_sorted_result('default', $debut, $nb_per_page);
         if (!$page) {
             $page = 1;
         }
         $parity = 1;
         foreach ($sorted_authperso as $id_authperso) {
             if ($parity % 2) {
                 $pair_impair = "even";
             } else {
                 $pair_impair = "odd";
             }
             $parity += 1;
             $authority = new authority($id_authperso);
             $authority_instance = $authority->get_object_instance();
             $id = $authority->get_num_object();
             $this->fetch_data_auth($id);
             $auth_line = "<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=authperso&id=" . $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  </td>";
             //$this->info['fields'][$i]['data'][$id][$field['name']]
             foreach ($this->info['fields'] as $field) {
                 $data_label = $field['data'][$id]['values'][0]['format_value'];
                 $auth_line .= "<td onmousedown=\"document.location='./autorites.php?categ=authperso&sub=authperso_form&id_authperso=" . $this->id . "&amp;id={$id}&amp;user_input=!!user_input_url!!&amp;nbr_lignes={$nbr_lignes}&amp;page={$page}';\" title='' valign='top'>";
                 //$auth_line.= "<td onmousedown=\"document.location='./autorites.php?categ=see&sub=authperso&id=$id';\" title='' valign='top'>";
                 $auth_line .= $data_label . "</td>";
                 $auth_line = str_replace('!!user_input_url!!', rawurlencode(stripslashes($user_input)), $auth_line);
             }
             // usage
             $auth_line .= "\n\t\t\t\t\t<td onmousedown=\"document.location='./catalog.php?categ=search&mode=" . ($this->id + 1000) . "&etat=aut_search&aut_type=authperso&authperso_id=" . $this->id . "&aut_id={$id}';\" title='' valign='top'>" . $this->get_count_notice($id) . "</td>";
             $auth_lines .= "\r\n\t\t\t\t<tr class='{$parity}' onmouseover=\"this.className='surbrillance'\" onmouseout=\"this.className='even'\" style=\"cursor: pointer\">\r\n\t\t\t\t\t{$auth_line}\r\n\t\t\t\t</tr>\r\n\t\t\t\t";
         }
         if ($error) {
             $user_query . error_message($msg["searcher_syntax_error"], sprintf($msg["searcher_syntax_error_desc"], $aq->current_car, $aq->input_html, $aq->error_message));
             exit;
         }
         $authperso_list_tpl = $user_query . "\n\t\t\t<br />\n\t\t\t<br />\n\t\t\t<div class='row'>\n\t\t\t\t<h3><! --!!nb_autorite_found!!-- >" . $msg["authperso_search_found"] . " !!cle!! </h3>\n\t\t\t\t</div>\n\t\t\t\t<script type='text/javascript' src='./javascript/sorttable.js'></script>\n\t\t\t\t<table class='sortable'>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th></th>\n\t\t\t\t\t!!th_fields!!\n\t\t\t\t\t</tr>\n\t\t\t\t\t!!list!!\n\t\t\t\t</table>\n\t\t\t<div class='row'>\n\t\t\t\t!!nav_bar!!\n\t\t\t</div>\n\t\t\t";
         foreach ($this->info['fields'] as $field) {
             $th_fields .= "<th>" . htmlentities($field['label'], ENT_QUOTES, $charset) . "</th>";
         }
         $th_fields .= "<th>" . htmlentities($msg['authperso_usage'], ENT_QUOTES, $charset) . "</th>";
         $nav_bar = aff_pagination($url_base, $nbr_lignes, $nb_per_page, $page, 10, false, true);
         $authperso_list_tpl = str_replace("<! --!!nb_autorite_found!!-- >", $nbr_lignes . ' ', $authperso_list_tpl);
         $authperso_list_tpl = str_replace("!!th_fields!!", $th_fields, $authperso_list_tpl);
         $authperso_list_tpl = str_replace("!!cle!!", $user_input, $authperso_list_tpl);
         $authperso_list_tpl = str_replace("!!list!!", $auth_lines, $authperso_list_tpl);
         $authperso_list_tpl = str_replace("!!nav_bar!!", $nav_bar, $authperso_list_tpl);
     } else {
         $authperso_list_tpl = $user_query;
         $error_message = str_replace('!!user_input!!', stripslashes($user_input), $msg['authority_authperso_no_authority_found_with_key']);
         $error_message = str_replace('!!authperso_name!!', $this->info['name'], $error_message);
         $authperso_list_tpl .= return_error_message($msg[211], $error_message);
     }
     return $authperso_list_tpl;
 }
 $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';\">";
     $collection_list .= htmlentities($coll->display, ENT_QUOTES, $charset);
    $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'>";
        $indexint_list .= "<td style='text-align:center; width:25px;'>\n        \t\t\t\t\t<a title='" . $msg['authority_list_see_label'] . "' href='./autorites.php?categ=see&sub=indexint&id=" . $indexint_id . "'>\n        \t\t\t\t\t\t<i class='fa fa-eye'></i>\n        \t\t\t\t\t</a>\n        \t\t    \t</td>";
 $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;
     $notice_count = pmb_mysql_result(pmb_mysql_query($notice_count_sql), 0, 0);
 $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."';\">";
     $serie_list .= $serie->name . "</td>";
Example #7
0
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>";
        } else {
    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>";
        $ed_list .= "<td valign='top' onmousedown=\"document.location='./autorites.php?categ=editeurs&sub=editeur_form&id=" . $publisher_id . "&user_input=" . rawurlencode(stripslashes($user_input)) . "&nbr_lignes={$nbr_lignes}&page={$page}';\">";