function fetchExactTerm($string)
 {
     $sql = SQLbuscaExacta($string);
     while ($array = $sql->FetchRow()) {
         $i = ++$i;
         $result["result"][$array[id_definitivo]] = array("term_id" => $array[id_definitivo], "string" => $array[termino_preferido] ? $array[termino_preferido] : $array[tema], "isMetaTerm" => $array["isMetaTerm"], "no_term_string" => $array[termino_preferido] ? $array[tema] : FALSE, "order" => $i);
     }
     return $result;
 }
Ejemplo n.º 2
0
function resultaBusca($texto, $tipo = "")
{
    $texto = trim($texto);
    //Anulación de sugerencia de términos
    $sgs = $_GET[sgs];
    //Ctrol lenght string
    if (strlen($texto) >= CFG_MIN_SEARCH_SIZE || $tipo == 'E') {
        $sql = $tipo == 'E' ? SQLbuscaExacta("{$texto}") : SQLbuscaSimple("{$texto}");
        $classMensaje = $sql[cant] ? 'information' : 'warning';
        $resumeResult = '<p class=' . $classMensaje . '><strong>' . $sql[cant] . '</strong> ' . MSG_ResultBusca . ' <strong> "<em>' . stripslashes($texto) . '</em>"</strong></p>';
    } else {
        $sql[cant] = '0';
        $resumeResult = '<p class="error">' . sprintf(MSG_minCharSerarch, stripslashes($texto), strlen($texto), CFG_MIN_SEARCH_SIZE - 1) . '</p>';
    }
    $body .= '<div id="bodyText"><h1>' . LABEL_busqueda . '</h1>';
    $body .= $resumeResult;
    if ($sql[cant] > 0) {
        $row_result .= '<div id="listaBusca"><ul>';
        while ($resulta_busca = mysqli_fetch_array($sql[datos])) {
            $ibusca = ++$ibusca;
            $acumula_indice .= $resulta_busca[indice];
            $acumula_temas .= $resulta_busca[id_definitivo] . '|';
            if ($ibusca == '1') {
                //Guardar el primer término para ver si hay coincidencia exacta
                $primerTermino = $resulta_busca[tema];
            }
            $leyendaTerminoLibre = $resulta_busca[esTerminoLibre] == 'SI' ? ' (' . LABEL_terminoLibre . ')' : '';
            //Si no es un término preferido
            if ($resulta_busca[termino_preferido]) {
                switch ($resulta_busca[t_relacion]) {
                    case '4':
                        //UF
                        $leyendaConector = USE_termino;
                        break;
                    case '5':
                        //Tipo relacion término equivalente parcialmente
                        $leyendaConector = '<acronym title="' . LABEL_termino_parcial_equivalente . '" lang="' . LANG . '">' . EQP_acronimo . '</acronym>';
                        break;
                    case '6':
                        //Tipo relacion término equivalente
                        $leyendaConector = '<acronym title="' . LABEL_termino_equivalente . '" lang="' . LANG . '">' . EQ_acronimo . '</acronym>';
                        break;
                    case '7':
                        //Tipo relacion término no equivalente
                        $leyendaConector = '<acronym title="' . LABEL_termino_no_equivalente . '" lang="' . LANG . '">' . NEQ_acronimo . '</acronym>';
                        break;
                    case '8':
                        //Tipo relacion término equivalente inexacta
                        $leyendaConector = '<acronym title="' . LABEL_termino_parcial_equivalente . '" lang="' . LANG . '">' . EQP_acronimo . '</acronym>';
                        break;
                }
                $row_result .= '<li><em><a title="' . LABEL_verDetalle . $resulta_busca[tema] . '" href="index.php?tema=' . $resulta_busca[tema_id] . '&amp;/' . string2url($resulta_busca[tema]) . '">' . $resulta_busca[tema] . '</a></em> ' . $leyendaConector . ' <a title="' . LABEL_verDetalle . $resulta_busca[tema] . '" href="index.php?tema=' . $resulta_busca[id_definitivo] . '">' . $resulta_busca[termino_preferido] . '</a> </li>' . "\r\n";
            } else {
                $row_result .= '<li><a title="' . LABEL_verDetalle . $resulta_busca[tema] . '" href="index.php?tema=' . $resulta_busca[id_definitivo] . '&amp;/' . string2url($resulta_busca[tema]) . '">' . $resulta_busca[tema] . '</a> ' . $leyendaTerminoLibre . '</li>' . "\r\n";
            }
        }
        //fin del while
        $row_result .= '</ul>';
        $row_result .= '</div>';
        //Si no hubo coincidencia exacta
        if (strtoupper($primerTermino) !== trim(strtoupper($texto)) && $_GET[sgs] != 'off') {
            $body .= HTMLsugerirTermino($texto, $acumula_temas);
        }
    } elseif (strlen($texto) >= CFG_MIN_SEARCH_SIZE) {
        $body .= HTMLsugerirTermino($texto);
    }
    // fin de if result
    $result_suplementa .= HTMLbusquedaExpandidaTG($acumula_indice, $acumula_temas);
    $result_suplementa .= HTMLbusquedaExpandidaTR($acumula_temas);
    if (strlen($result_suplementa) > 0) {
        $result_suplementa = '<div id="lista_secundaria">' . $result_suplementa . '</div>';
    }
    return $body . $row_result . $result_suplementa . '</div>';
}
function resultaBusca($texto, $tipo = "")
{
    global $CFG;
    $texto = trim($texto);
    //Anulación de sugerencia de términos
    $sgs = $_GET["sgs"];
    //Ctrol lenght string
    if (strlen($texto) >= CFG_MIN_SEARCH_SIZE || $tipo == 'E') {
        $sql = $tipo == 'E' ? SQLbuscaExacta("{$texto}") : SQLbuscaSimple("{$texto}");
        $sql_cant = SQLcount($sql);
        $classMensaje = $sql_cant > 0 ? 'information' : 'warning';
    } else {
        $sql_cant = '0';
        $resumeResult = '<p class="alert alert-danger" role="alert">' . sprintf(MSG_minCharSerarch, stripslashes($texto), strlen($texto), CFG_MIN_SEARCH_SIZE - 1) . '</p>';
    }
    $body .= '<div class="container" id="bodyText"><h2>' . LABEL_busqueda . '</h2>';
    $body .= $resumeResult;
    if ($sql_cant == 0) {
        $body .= '<p class="alert alert-danger" role="alert"><strong>0</strong> ' . MSG_ResultBusca . ' <strong> "<em>' . stripslashes($texto) . '</em>"</strong></p>';
    }
    if ($sql_cant > 0) {
        $row_result .= '<div class="tab-pane fade in active" id="results">';
        $row_result .= '<p class="alert alert-info" role="alert"><strong>' . $sql_cant . '</strong> ' . MSG_ResultBusca . ' <strong> "<em>' . stripslashes($texto) . '</em>"</strong></p>';
        $row_result .= '<ul>';
        while ($resulta_busca = $sql->FetchRow()) {
            $ibusca = ++$ibusca;
            $acumula_indice .= $resulta_busca["indice"];
            $acumula_temas .= $resulta_busca["id_definitivo"] . '|';
            if ($ibusca == '1') {
                //Guardar el primer término para ver si hay coincidencia exacta
                $primerTermino = $resulta_busca["tema"];
                $primerTermino_id = $resulta_busca["id_definitivo"] ? $resulta_busca["id_definitivo"] : $resulta_busca["tema_id"];
            }
            //si hubo coicidencia exacta y están apagadas las sugerencias
            if (strtoupper($primerTermino) == trim(strtoupper($texto)) && ($_GET["sgs"] == 'off' || $sql_cant == 1)) {
                return HTMLbodyTermino(ARRAYverDatosTermino($primerTermino_id));
            }
            $leyendaTerminoLibre = $resulta_busca[esTerminoLibre] == 'SI' ? ' (' . LABEL_terminoLibre . ')' : '';
            $styleClassLink = $resulta_busca["estado_id"] !== '13' ? 'class="estado_termino' . $resulta_busca["estado_id"] . '"' : '';
            //Si no es un término preferido
            if ($resulta_busca["termino_preferido"]) {
                switch ($resulta_busca["t_relacion"]) {
                    case '4':
                        //UF
                        $leyendaConector = USE_termino;
                        break;
                    case '5':
                        //Tipo relacion término equivalente parcialmente
                        $leyendaConector = '<acronym title="' . LABEL_termino_parcial_equivalente . '" lang="' . LANG . '">' . EQP_acronimo . '</acronym>';
                        break;
                    case '6':
                        //Tipo relacion término equivalente
                        $leyendaConector = '<acronym title="' . LABEL_termino_equivalente . '" lang="' . LANG . '">' . EQ_acronimo . '</acronym>';
                        break;
                    case '7':
                        //Tipo relacion término no equivalente
                        $leyendaConector = '<acronym title="' . LABEL_termino_no_equivalente . '" lang="' . LANG . '">' . NEQ_acronimo . '</acronym>';
                        break;
                    case '8':
                        //Tipo relacion término equivalente inexacta
                        $leyendaConector = '<acronym title="' . LABEL_termino_parcial_equivalente . '" lang="' . LANG . '">' . EQP_acronimo . '</acronym>';
                        break;
                }
                if (in_array($resulta_busca["rr_code"], $CFG["HIDDEN_EQ"]) && !$_SESSION[$_SESSION["CFGURL"]][ssuser_id]) {
                    $row_result .= '<li><a title="' . LABEL_verDetalle . $resulta_busca["tema"] . '" href="index.php?tema=' . $resulta_busca["id_definitivo"] . '">' . $resulta_busca["termino_preferido"] . '</a></li>' . "\r\n";
                } else {
                    $row_result .= '<li><em><a ' . $styleClassLink . ' title="' . LABEL_verDetalle . $resulta_busca["tema"] . '" href="index.php?tema=' . $resulta_busca["tema_id"] . '&amp;/' . string2url($resulta_busca["tema"]) . '">' . $resulta_busca["tema"] . '</a></em> ' . $leyendaConector . ' <a title="' . LABEL_verDetalle . $resulta_busca["tema"] . '" href="index.php?tema=' . $resulta_busca["id_definitivo"] . '">' . $resulta_busca["termino_preferido"] . '</a> </li>' . "\r\n";
                }
            } else {
                $row_result .= '<li><a ' . $styleClassLink . ' title="' . LABEL_verDetalle . $resulta_busca["tema"] . '" href="index.php?tema=' . $resulta_busca["id_definitivo"] . '&amp;/' . string2url($resulta_busca["tema"]) . '">' . $resulta_busca["tema"] . '</a> ' . $leyendaTerminoLibre . '</li>' . "\r\n";
            }
        }
        //fin del while
        $row_result .= '</ul>';
        $row_result .= '</div>';
        //fin de div de búsqueda
        //Si no hubo coincidencia exacta
        if (strtoupper($primerTermino) !== trim(strtoupper($texto)) && $_GET["sgs"] != 'off') {
            $body .= HTMLsugerirTermino($texto, $acumula_temas);
        }
        $result_suplementaTG = HTMLbusquedaExpandidaTG($acumula_indice, $acumula_temas, $texto);
        $result_suplementaTR = HTMLbusquedaExpandidaTR($acumula_temas, $texto);
        if ($result_suplementaTG["count"] > 0) {
            $row_resultTGmenu = '<li><a href="#suplementaTG" data-toggle="tab">' . ucfirst(LABEL_resultados_suplementarios) . ' (' . $result_suplementaTG["count"] . ')</a></li>';
            $row_resultTG = '<div class="tab-pane fade" id="suplementaTG">' . $result_suplementaTG["html"] . '</div>';
        }
        if ($result_suplementaTR["count"] > 0) {
            $row_resultTRmenu = '<li><a href="#suplementaTR" data-toggle="tab">' . ucfirst(LABEL_resultados_relacionados) . ' (' . $result_suplementaTR["count"] . ')</a></li>';
            $row_resultTR = '<div class="tab-pane fade" id="suplementaTR">' . $result_suplementaTR["html"] . '</div>';
        }
        $body .= '<div id="listaBusca">';
        $body .= '<ul id="myTermTab" class="nav nav-tabs" style="margin-bottom: 15px;">
		<li><a class="active" href="#results" data-toggle="tab">' . ucfirst(LABEL_results) . ' (' . $sql_cant . ') </a></li>';
        $body .= $row_resultTGmenu . $row_resultTRmenu;
        $body .= '</ul>';
        #Tabs content
        $body .= '<div id="tabContent" class="tab-content">';
        $body .= $row_result . $row_resultTG . $row_resultTR;
        $body .= '</div>';
        //fin de fiv de tabs
    } elseif (strlen($texto) >= CFG_MIN_SEARCH_SIZE) {
        //sugerir o mostrar que no hay resultados
        $body .= HTMLsugerirTermino($texto);
    }
    // fin de if result
    $body .= '</div>';
    //container;
    return $body;
}