Example #1
0
function doContextoTermino($idTema, $i_profundidad)
{
    global $CFG;
    //recibe de HTMLbodyTermino
    //$idTema = id del término
    //$i_profundidad= contador de profundidad
    //Terminos específicos
    $sqlNT = SQLverTerminosE($idTema);
    //Se devolverá el tema_id para utilizar en fuentes XML y como tema_id canónico
    $tema_id = $idTema;
    while ($datosNT = mysqli_fetch_array($sqlNT[datos])) {
        $int = ++$int;
        if ($_SESSION[$_SESSION["CFGURL"]][ssuser_id]) {
            $td_delete = '[<a id="elimina_' . $datosNT[id_tema] . '" title="' . LABEL_borraRelacion . '"  class="eliminar" href="' . $PHP_SELF . '?ridelete=' . $datosNT[id_relacion] . '&amp;tema=' . $idTema . '" onclick="return askData();"><acronym title="' . LABEL_borraRelacion . '" lang="' . LANG . '">x</acronym></a>]';
        } else {
            $td_delete = '';
        }
        if ($datosNT[id_te]) {
            $link_next = ' [<a href="javascript:expand(\'' . $datosNT[id_tema] . '\')" title="' . LABEL_verDetalle . ' ' . $datosNT[tema] . '"><span id="expandTE' . $datosNT[id_tema] . '">+</span><span id="contraeTE' . $datosNT[id_tema] . '" style="display: none">~</span></a>]';
            $link_next .= HTMLverTE($datosNT[id_tema], $i_profundidad);
        } else {
            $link_next = '';
        }
        $row_NT .= ' <li id="t' . $datosNT[id_tema] . '">' . $td_delete . '<acronym title="' . TE_termino . '" lang="' . LANG . '">' . TE_acronimo . $i_profundidad . '</acronym>';
        //Editor de código
        if ($_SESSION[$_SESSION["CFGURL"]][ssuser_id] && $CFG["_USE_CODE"] == '1') {
            $row_NT .= '<div title="term code, click to edit" class="editable_textarea" id="code_tema' . $datosNT[id_tema] . '">' . $datosNT[code] . '</div>';
        } else {
            $row_NT .= ' ' . $datosNT[code] . ' ';
        }
        $row_NT .= '<a title="' . LABEL_verDetalle . ' ' . $datosNT[tema] . ' (' . TE_termino . ')"  href="index.php?tema=' . $datosNT[id_tema] . '&amp;/' . string2url($datosNT[tema]) . '">' . $datosNT[tema] . '</a>' . $link_next . '</li>';
    }
    // Terminos TG, UF y TR
    $sqlTotalRelacionados = SQLverTerminoRelaciones($idTema);
    while ($datosTotalRelacionados = mysqli_fetch_array($sqlTotalRelacionados[datos])) {
        if ($_SESSION[$_SESSION["CFGURL"]][ssuser_id]) {
            $td_delete = '[<a  class="eliminar" title="' . LABEL_borraRelacion . '" href="' . $PHP_SELF . '?ridelete=' . $datosTotalRelacionados[id_relacion] . '&amp;tema=' . $idTema . '" onclick="return askData();"><acronym title="' . LABEL_borraRelacion . '" lang="' . LANG . '">x</acronym></a>]';
        } else {
            $td_delete = '';
        }
        switch ($datosTotalRelacionados[t_relacion]) {
            case '3':
                // TG
                $itg = ++$itg;
                $row_TG .= '          <li>' . $td_delete . '<acronym title="' . TG_termino . '" lang="' . LANG . '">' . TG_acronimo . '</acronym>';
                $row_TG .= '          <a title="' . LABEL_verDetalle . ' ' . $datosTotalRelacionados[tema] . ' (' . TG_termino . ')"  href="index.php?tema=' . $datosTotalRelacionados[id] . '&amp;/' . string2url($datosTotalRelacionados[tema]) . '">' . $datosTotalRelacionados[tema] . '</a></li>';
                break;
            case '4':
                // UF
                $iuf = ++$iuf;
                $row_UP .= '          <li>' . $td_delete . '<acronym title="' . UP_termino . '" lang="' . LANG . '">' . UP_acronimo . '</acronym>';
                $row_UP .= '          <a title="' . LABEL_verDetalle . ' ' . $datosTotalRelacionados[tema] . ' (' . UP_termino . ')"  href="index.php?tema=' . $datosTotalRelacionados[id] . '&amp;/' . string2url($datosTotalRelacionados[tema]) . '">' . $datosTotalRelacionados[tema] . '</a></li>';
                break;
            case '2':
                // TR
                $irt = ++$irt;
                $row_TR .= '          <li>' . $td_delete . '<acronym title="' . TR_termino . '" lang="' . LANG . '">' . TR_acronimo . '</acronym>';
                $row_TR .= '          <a title="' . LABEL_verDetalle . ' ' . $datosTotalRelacionados[tema] . ' (' . TR_termino . ')"  href="index.php?tema=' . $datosTotalRelacionados[id] . '&amp;/' . string2url($datosTotalRelacionados[tema]) . '">' . $datosTotalRelacionados[tema] . '</a></li>';
                break;
            case '5':
                // parcialmente EQ
                $ieq = ++$ieq;
                $row_EQ .= '          <li>' . $td_delete . ' <acronym title="' . LABEL_termino_parcial_equivalente . '" lang="' . LANG . '">' . EQP_acronimo . '</acronym> ';
                $row_EQ .= '          <a title="' . LABEL_verDetalle . ' ' . $datosTotalRelacionados[tema] . ' (' . LABEL_termino_parcial_equivalente . ')"  href="index.php?tema=' . $datosTotalRelacionados[id] . '&amp;/' . string2url($datosTotalRelacionados[tema]) . '">' . $datosTotalRelacionados[tema] . '</a> (' . $datosTotalRelacionados[titulo] . ' / ' . $datosTotalRelacionados[idioma] . ')</li>';
                break;
            case '6':
                // EQ
                $ieq = ++$ieq;
                $row_EQ .= '          <li>' . $td_delete . ' <acronym title="' . LABEL_termino_equivalente . '" lang="' . LANG . '">' . EQ_acronimo . '</acronym> ';
                $row_EQ .= '          <a title="' . LABEL_verDetalle . ' ' . $datosTotalRelacionados[tema] . ' (' . LABEL_termino_equivalente . ')"  href="index.php?tema=' . $datosTotalRelacionados[id] . '&amp;/' . string2url($datosTotalRelacionados[tema]) . '">' . $datosTotalRelacionados[tema] . '</a> (' . $datosTotalRelacionados[titulo] . ' / ' . $datosTotalRelacionados[idioma] . ')</li>';
                break;
            case '7':
                // NO EQ
                $ieq = ++$ieq;
                $row_EQ .= '          <li>' . $td_delete . ' <acronym title="' . LABEL_termino_no_equivalente . '" lang="' . LANG . '">' . NEQ_acronimo . '</acronym> ';
                $row_EQ .= '          <a title="' . LABEL_verDetalle . ' ' . $datosTotalRelacionados[tema] . ' (' . LABEL_termino_no_equivalente . ')"  href="index.php?tema=' . $datosTotalRelacionados[id] . '&amp;/' . string2url($datosTotalRelacionados[tema]) . '">' . $datosTotalRelacionados[tema] . '</a> (' . $datosTotalRelacionados[titulo] . ' / ' . $datosTotalRelacionados[idioma] . ')</li>';
                break;
        }
    }
    //Si no es un término válido y es un UF.
    if ($sqlTotalRelacionados[cant] == 0) {
        $sqlTerminosValidosUF = SQLterminosValidosUF($idTema);
        while ($arrayTerminosValidosUF = mysqli_fetch_array($sqlTerminosValidosUF[datos])) {
            //Reasignación del tema_id para utilizar en fuentes XML y como tema_id canónico
            $tema_id = $arrayTerminosValidosUF[tema_pref_id];
            switch ($arrayTerminosValidosUF[t_relacion]) {
                case '4':
                    // USE
                    $leyendaConector = USE_termino;
                    $iuse = ++$iuse;
                    $row_USE .= '<li><em>' . $arrayTerminosValidosUF[tema] . '</em> ' . $leyendaConector . ' <a title="' . LABEL_verDetalle . $arrayTerminosValidosUF[tema_pref] . '" href="index.php?tema=' . $arrayTerminosValidosUF[tema_pref_id] . '">' . $arrayTerminosValidosUF[tema_pref] . '</a> </li>' . "\r\n";
                    break;
                case '5':
                    // parcialmente EQ
                    $leyendaConector = '<acronym title="' . LABEL_termino_parcial_equivalente . '" lang="' . LANG . '">' . EQP_acronimo . '</acronym>';
                    $ieq = ++$ieq;
                    $row_EQ = '<li><em>' . $arrayTerminosValidosUF[tema] . '</em> (' . $arrayTerminosValidosUF[titulo] . ' / ' . $arrayTerminosValidosUF[idioma] . ') ' . $leyendaConector . ' <a title="' . LABEL_verDetalle . $arrayTerminosValidosUF[tema_pref] . '" href="index.php?tema=' . $arrayTerminosValidosUF[tema_pref_id] . '">' . $arrayTerminosValidosUF[tema_pref] . '</a> </li>' . "\r\n";
                    break;
                case '6':
                    // EQ
                    $leyendaConector = '<acronym title="' . LABEL_termino_equivalente . '" lang="' . LANG . '">' . EQ_acronimo . '</acronym>';
                    $ieq = ++$ieq;
                    $row_EQ = '<li><em>' . $arrayTerminosValidosUF[tema] . '</em> (' . $arrayTerminosValidosUF[titulo] . ' / ' . $arrayTerminosValidosUF[idioma] . ') ' . $leyendaConector . ' <a title="' . LABEL_verDetalle . $arrayTerminosValidosUF[tema_pref] . '" href="index.php?tema=' . $arrayTerminosValidosUF[tema_pref_id] . '">' . $arrayTerminosValidosUF[tema_pref] . '</a> </li>' . "\r\n";
                    break;
                case '7':
                    // NO EQ
                    $leyendaConector = '<acronym title="' . LABEL_termino_no_equivalente . '" lang="' . LANG . '">' . NEQ_acronimo . '</acronym>';
                    $ieq = ++$ieq;
                    $row_EQ = '<li><em>' . $arrayTerminosValidosUF[tema] . '</em> (' . $arrayTerminosValidosUF[titulo] . ' / ' . $arrayTerminosValidosUF[idioma] . ') ' . $leyendaConector . ' <a title="' . LABEL_verDetalle . $arrayTerminosValidosUF[tema_pref] . '" href="index.php?tema=' . $arrayTerminosValidosUF[tema_pref_id] . '">' . $arrayTerminosValidosUF[tema_pref] . '</a> </li>' . "\r\n";
                    break;
            }
        }
    }
    $rows = array("UP" => doListaTag($iuf, "ul", $row_UP, "UP"), "USE" => doListaTag($iuse, "ul", $row_USE, "EQ"), "TR" => doListaTag($irt, "ul", $row_TR, "TR"), "TG" => doListaTag($itg, "ul", $row_TG, "TG"), "TE" => doListaTag($int, "ul", $row_NT, "TE"), "EQ" => doListaTag($ieq, "ul", $row_EQ, "EQ"));
    $cant_relaciones = array("cantUF" => $iuf, "cantRT" => $irt, "cantTG" => $itg, "cantNT" => $int, "cantTotal" => $iuf + $irt + $itg + $int);
    return array("HTMLterminos" => $rows, "cantRelaciones" => $cant_relaciones, "tema_id" => $tema_id);
}
function doTerminosVDEX($tema_id = "")
{
    global $CFG;
    $_URI_BASE_ID = $CFG["_URI_BASE_ID"] ? $CFG["_URI_BASE_ID"] : $_SESSION["CFGURL"];
    $_URI_SEPARATOR_ID = $CFG["_URI_SEPARATOR_ID"] ? $CFG["_URI_SEPARATOR_ID"] : '?tema=';
    $sql = SQLTerminosPreferidos($tema_id);
    while ($array = $sql->FetchRow()) {
        $row .= '<term>';
        $row .= '<termIdentifier>' . $_URI_BASE_ID . $_URI_SEPARATOR_ID . $array[id] . '</termIdentifier>';
        $row .= '<caption>' . xmlentities($array[tema]) . '</caption>';
        $row .= '</term>';
    }
    //Esta pidiendo el vocabulario completo -> incluir topic de términos no preferidos.
    if (!isset($tema_id)) {
        //Sql de términos no prereridos (UF)
        $sql = SQLterminosValidosUF();
        while ($array = $sql->FetchRow()) {
            $row .= '<term>';
            $row .= '<termIdentifier>' . $_URI_BASE_ID . $_URI_SEPARATOR_ID . $array[tema_id] . '</termIdentifier>';
            $row .= '<caption>' . xmlentities($array[tema]) . '</caption>';
            $row .= '</term>';
        }
    }
    return $row;
}
Example #3
0
function txtAlfabetico()
{
    $txt = ucfirst(LABEL_Titulo) . ': ' . $_SESSION["CFGTitulo"] . "\r\n";
    $txt .= ucfirst(LABEL_Autor) . ': ' . $_SESSION["CFGAutor"] . "\r\n";
    $txt .= ucfirst(LABEL_Keywords) . ': ' . $_SESSION["CFGKeywords"] . "\r\n";
    $txt .= ucfirst(LABEL_Cobertura) . ': ' . $_SESSION["CFGCobertura"] . "\r\n";
    $txt .= LABEL_URI . ': ' . $_SESSION["CFGURL"] . "\r\n";
    $txt .= ucfirst(LABEL_Version) . ': ' . $_SESSION["CFGVersion"] . "\r\n";
    $txt .= "__________________________________________________________________________\r\n";
    //Lista de todos los términos
    $sql = SQLlistaTemas();
    while ($arrayTema = mysqli_fetch_array($sql[datos])) {
        #Mantener vivo el navegador
        $time_now = time();
        if ($time_start >= $time_now + 10) {
            $time_start = $time_now;
            header('X-pmaPing: Pong');
        }
        // Diferenciar entre términos preferidos y términos no preferidos o referencias
        if ($arrayTema[t_relacion]) {
            //Remisiones de equivalencias y no preferidos
            $sqlNoPreferidos = SQLterminosValidosUF($arrayTema[id]);
            while ($arrayNoPreferidos = mysqli_fetch_array($sqlNoPreferidos[datos])) {
                $acronimo = arrayReplace(array("4", "5", "7", "8"), array(USE_termino, EQ_acronimo, EQP_acronimo, NEQ_acronimo), $arrayNoPreferidos[t_relacion]);
                $referencia_mapeo = $arrayNoPreferidos[vocabulario_id] !== '1' ? ' (' . $arrayNoPreferidos[titulo] . ' / ' . $arrayNoPreferidos[idioma] . ')' : '' . "\r\n";
                $txt .= "\n" . $arrayTema[tema] . $referencia_mapeo;
                $txt .= '	' . $acronimo . ': ' . $arrayNoPreferidos[tema_pref] . "\r\n";
            }
        } else {
            // Si es preferido: mostar notas y relaciones
            $txt .= "\n" . $arrayTema[tema] . "\r\n";
            $txt .= LABEL_fecha_creacion . ': ' . $arrayTema[cuando] . "\r\n";
            if ($arrayTema[cuando_final] > $arrayTema[cuando]) {
                $txt .= LABEL_fecha_modificacion . ': ' . $arrayTema[cuando_final] . "\r\n";
            }
            //Notas
            $sqlNotas = SQLdatosTerminoNotas($arrayTema[id], array("NB", "NH", "NA", "NC"));
            while ($arrayNotas = mysqli_fetch_array($sqlNotas[datos])) {
                $acronimo = arrayReplace(array("NB", "NH", "NA", "NC"), array(NB_acronimo, NH_acronimo, NA_acronimo, NC_acronimo), $arrayNotas[tipo_nota]);
                $txt .= '	' . $acronimo . ': ' . html2txt($arrayNotas[nota]) . "\r\n";
            }
            //Relaciones
            $sqlRelaciones = SQLverTerminoRelaciones($arrayTema[id]);
            $arrayRelacionesVisibles = array("2", "3", "4");
            // TG/TE/UP /TR
            while ($arrayRelaciones = mysqli_fetch_array($sqlRelaciones[datos])) {
                if (in_array($arrayRelaciones[t_relacion], $arrayRelacionesVisibles)) {
                    $acronimo = arrayReplace($arrayRelacionesVisibles, array(TR_acronimo, TG_acronimo, UP_acronimo), $arrayRelaciones[t_relacion]);
                    $txt .= '	' . $acronimo . ': ' . $arrayRelaciones[tema] . "\r\n";
                }
            }
            //Terminos especificos
            $SQLTerminosE = SQLverTerminosE($arrayTema[id]);
            while ($arrayTE = mysqli_fetch_array($SQLTerminosE[datos])) {
                $txt .= '	' . TE_acronimo . ': ' . $arrayTE[tema] . "\r\n";
            }
        }
    }
    $filname = string2url($_SESSION[CFGTitulo] . ' ' . MENU_ListaAbc) . '.txt';
    return sendFile("{$txt}", "{$filname}");
}
function txtAlfabetico($params = array())
{
    global $CFG;
    $txt = ucfirst(LABEL_Titulo) . ': ' . $_SESSION["CFGTitulo"] . "\r\n";
    $txt .= ucfirst(LABEL_Autor) . ': ' . $_SESSION["CFGAutor"] . "\r\n";
    $txt .= ucfirst(LABEL_Keywords) . ': ' . $_SESSION["CFGKeywords"] . "\r\n";
    $txt .= ucfirst(LABEL_Cobertura) . ': ' . $_SESSION["CFGCobertura"] . "\r\n";
    $txt .= LABEL_URI . ': ' . $_SESSION["CFGURL"] . "\r\n";
    $txt .= ucfirst(LABEL_Version) . ': ' . $_SESSION["CFGVersion"] . "\r\n";
    $txt .= "__________________________________________________________________________\r\n";
    //Lista de todos los términos
    $sql = SQLlistaTemas($params["hasTopTerm"]);
    if ($params["hasTopTerm"] > 0) {
        $txt .= txt4term($params["hasTopTerm"], $params);
    }
    while ($arrayTema = $sql->FetchRow()) {
        #Mantener vivo el navegador
        $time_now = time();
        if ($time_start >= $time_now + 10) {
            $time_start = $time_now;
            header('X-pmaPing: Pong');
        }
        // Diferenciar entre términos preferidos y términos no preferidos o referencias
        if ($arrayTema[t_relacion]) {
            //Remisiones de equivalencias y no preferidos
            $sqlNoPreferidos = SQLterminosValidosUF($arrayTema[id]);
            while ($arrayNoPreferidos = $sqlNoPreferidos->FetchRow()) {
                $acronimo = arrayReplace(array("4", "5", "6", "7"), array(USE_termino, EQP_acronimo, EQ_acronimo, NEQ_acronimo), $arrayNoPreferidos[t_relacion]);
                $referencia_mapeo = $arrayNoPreferidos[vocabulario_id] !== '1' ? ' (' . $arrayNoPreferidos[titulo] . ')' : '' . "\r\n";
                $txt .= "\n" . $arrayTema[tema] . $referencia_mapeo;
                $txt .= '	' . $acronimo . $arrayNoPreferidos[rr_code] . ': ' . $arrayNoPreferidos[tema_pref] . "\r\n";
            }
        } else {
            // Si es preferido: mostar notas y relaciones
            $txt .= "\n" . $arrayTema[tema] . "\r\n";
            //show code
            $txt .= $CFG["_SHOW_CODE"] == '1' && strlen($arrayTema["code"] > 0) ? '	' . ucfirst(LABEL_CODE) . ': ' . $arrayTema["code"] . "\r\n" : "";
            $label_target_vocabulary = '';
            $txt .= $params["includeCreatedDate"] == 1 ? LABEL_fecha_creacion . ': ' . $arrayTema[cuando] . "\r\n" : '';
            if ($arrayTema[cuando_final] > $arrayTema[cuando] && $params["includeModDate"] == 1) {
                $txt .= LABEL_fecha_modificacion . ': ' . $arrayTema[cuando_final] . "\r\n";
            }
            if ($params["includeTopTerm"] == 1) {
                $arrayMyTT = ARRAYmyTopTerm($arrayTema[id]);
                $txt .= $arrayMyTT["tema_id"] !== $arrayTema[id] ? '	TT: ' . $arrayMyTT["tema"] . "\r\n" : '';
            }
            //include or not notes
            if (is_array($params["includeNote"])) {
                //Notas
                $sqlNotas = SQLdatosTerminoNotas($arrayTema[id]);
                while ($arrayNotas = $sqlNotas->FetchRow()) {
                    $arrayNotas[label_tipo_nota] = in_array($arrayNotas[ntype_id], array(8, 9, 10, 11, 15)) ? arrayReplace(array(8, 9, 10, 11, 15), array(LABEL_NA, LABEL_NH, LABEL_NB, LABEL_NP, LABEL_NC), $arrayNotas[ntype_id]) : $arrayNotas[ntype_code];
                    if ($arrayNotas[tipo_nota] !== 'NP' && in_array($arrayNotas[tipo_nota], $params["includeNote"])) {
                        $txt .= '	' . $arrayNotas[label_tipo_nota] . ': ' . html2txt($arrayNotas[nota]) . "\r\n";
                    }
                }
            }
            //Relaciones
            $sqlRelaciones = SQLverTerminoRelaciones($arrayTema[id]);
            $arrayRelacionesVisibles = array(2, 3, 4, 5, 6, 7);
            // TG/TE/UP/TR
            while ($arrayRelaciones = $sqlRelaciones->FetchRow()) {
                if (in_array($arrayRelaciones[t_relacion], $arrayRelacionesVisibles)) {
                    $acronimo = arrayReplace($arrayRelacionesVisibles, array(TR_acronimo, TG_acronimo, UP_acronimo, EQP_acronimo, EQ_acronimo, NEQ_acronimo), $arrayRelaciones[t_relacion]);
                    if (in_array($arrayRelaciones[t_relacion], array(5, 6, 7))) {
                        //términos equivalentes .. se concatenan después de los TE/NT
                        $label_target_vocabulary .= '	' . $acronimo . ': ' . $arrayRelaciones[tema] . ' (' . $arrayRelaciones[titulo] . ')' . "\r\n";
                    } else {
                        if ($arrayRelaciones[t_relacion] == 4) {
                            # is UF and not hidden UF
                            $txt .= in_array($arrayRelaciones[rr_code], $CFG["HIDDEN_EQ"]) ? false : '	' . $acronimo . $arrayRelaciones[rr_code] . ': ' . $arrayRelaciones[tema] . "\r\n";
                        } else {
                            $txt .= '	' . $acronimo . $arrayRelaciones[rr_code] . ': ' . $arrayRelaciones[tema] . "\r\n";
                        }
                    }
                }
            }
            //Terminos especificos
            $SQLTerminosE = SQLverTerminosE($arrayTema[id]);
            while ($arrayTE = $SQLTerminosE->FetchRow()) {
                $txt .= '	' . TE_acronimo . $arrayTE[rr_code] . ': ' . $arrayTE[tema] . "\r\n";
            }
            $txt .= $label_target_vocabulary;
            //Terminos equivalentes web services
            $SQLtargetTerms = SQLtargetTerms($arrayTema[id]);
            while ($arrayTT = $SQLtargetTerms->FetchRow()) {
                $txt .= '	' . FixEncoding(ucfirst($arrayTT[tvocab_label])) . ': ' . FixEncoding($arrayTT[tterm_string]) . "\r\n";
            }
        }
    }
    $filname = string2url($_SESSION[CFGTitulo] . ' ' . MENU_ListaAbc) . '.txt';
    return sendFile("{$txt}", "{$filname}");
}
Example #5
0
function doTerminosXTM($tema_id = "")
{
    global $CFG;
    $_URI_BASE_ID = $CFG["_URI_BASE_ID"] ? $CFG["_URI_BASE_ID"] : $_SESSION["CFGURL"];
    $_URI_SEPARATOR_ID = $CFG["_URI_SEPARATOR_ID"] ? $CFG["_URI_SEPARATOR_ID"] : '?tema=';
    $sql = SQLTerminosValidos($tema_id);
    while ($array = mysqli_fetch_array($sql[datos])) {
        $row .= '<topic id="' . $_URI_BASE_ID . $_URI_SEPARATOR_ID . $array[id] . '">';
        $row .= '<instanceOf>';
        $row .= '<topicRef xlink:href="#term"/>';
        $row .= '</instanceOf>';
        $row .= '<baseName>';
        $row .= '<baseNameString>' . xmlentities($array[tema]) . '</baseNameString>';
        $row .= '</baseName>';
        $sqlNotas = SQLdatosTerminoNotas($array[id], array("NA"));
        while ($arrayNotas = mysqli_fetch_array($sqlNotas[datos])) {
            $row .= '  <occurrence>';
            $row .= '    <instanceOf>';
            $row .= '      <topicRef xlink:href="#scope-note"/>';
            $row .= '    </instanceOf>';
            $row .= '<baseName>';
            $row .= '<baseNameString>' . xmlentities($arrayNotas[nota], true) . '</baseNameString>';
            $row .= '</baseName>';
            $row .= '  </occurrence>';
        }
        $row .= '</topic>';
    }
    //Esta pidiendo el vocabulario completo -> incluir topic de términos no preferidos.
    if (!isset($tema_id)) {
        //Sql de términos no prereridos (UF)
        $sql = SQLterminosValidosUF();
        while ($array = mysqli_fetch_array($sql[datos])) {
            $row .= '<topic id="' . $_URI_BASE_ID . $_URI_SEPARATOR_ID . $array[tema_id] . '">';
            $row .= '<instanceOf>';
            $row .= '<topicRef xlink:href="#term"/>';
            $row .= '</instanceOf>';
            $row .= '<baseName>';
            $row .= '<baseNameString>' . xmlentities($array[tema]) . '</baseNameString>';
            $row .= '</baseName>';
            $row .= '</topic>';
        }
    }
    return $row;
}
function doContextoTermino($idTema, $i_profundidad)
{
    global $CFG;
    //recibe de HTMLbodyTermino
    //$idTema = id del término
    //$i_profundidad= contador de profundidad
    //Terminos específicos
    $sqlNT = SQLverTerminosE($idTema);
    //Se devolverá el tema_id para utilizar en fuentes XML y como tema_id canónico
    $tema_id = $idTema;
    while ($datosNT = $sqlNT->FetchRow()) {
        $int = ++$int;
        if ($datosNT["id_te"]) {
            $link_next = ' <a href="javascript:expand(\'' . $datosNT["id_tema"] . '\')" title="' . LABEL_verDetalle . ' ' . $datosNT[tema] . '"><span id="expandTE' . $datosNT["id_tema"] . '">&#x25ba;</span><span id="contraeTE' . $datosNT["id_tema"] . '" style="display: none">&#x25bc;</span></a>';
            $link_next .= HTMLverTE($datosNT["id_tema"], $i_profundidad);
        } else {
            $link_next = '';
        }
        //editor de relaciones
        if ($_SESSION[$_SESSION["CFGURL"]]["ssuser_id"]) {
            $td_delete = '<a type="button" class="btn btn-danger btn-xs" id="elimina_' . $datosNT["id_tema"] . '" title="' . LABEL_borraRelacion . '"  class="eliminar" href="index.php?ridelete=' . $datosNT["id_relacion"] . '&amp;tema=' . $idTema . '" onclick="return askData();"><span class="glyphicon glyphicon-remove"></span></a> ';
            $row_NT .= ' <li  id="t' . $datosNT[id_tema] . '">' . $td_delete . '<acronym class="thesacronym" title="' . TE_termino . ' ' . $datosNT["rr_value"] . '" lang="' . LANG . '" id="r' . $datosNT["rel_id"] . '"><span class="editable_selectTE" id="edit_rel_id' . $datosNT["rel_id"] . '" style="display: inline">' . TE_acronimo . $datosNT["rr_code"] . '</span>' . $i_profundidad . '</acronym> ';
            //Editor de código
            $row_NT .= $CFG["_USE_CODE"] == '1' ? '<div title="term code, click to edit" class="editable_textarea" id="code_tema' . $datosNT["id_tema"] . '">' . $datosNT["code"] . '</div>' : '';
        } else {
            $row_NT .= ' <li id="t' . $datosNT["id_tema"] . '"><acronym class="thesacronym" id="r' . $datosNT["rel_id"] . '" title="' . TE_termino . ' ' . $datosNT["rr_value"] . '" lang="' . LANG . '">' . TE_acronimo . $datosNT["rr_code"] . $i_profundidad . '</acronym> ';
            //ver  código
            $row_NT .= $CFG["_SHOW_CODE"] == '1' ? ' ' . $datosNT["code"] . ' ' : '';
        }
        $css_class_MT = $datosNT["isMetaTerm"] == 1 ? ' class="metaTerm" ' : '';
        $label_MT = $datosNT["isMetaTerm"] == 1 ? NOTE_isMetaTerm : '';
        $row_NT .= '<a ' . $css_class_MT . ' title="' . LABEL_verDetalle . ' ' . $datosNT["tema"] . ' (' . TE_termino . ') ' . $label_MT . '"  href="index.php?tema=' . $datosNT["id_tema"] . '&amp;/' . string2url($datosNT["tema"]) . '">' . $datosNT["tema"] . '</a>' . $link_next . '</li>';
    }
    // Terminos TG, UF y TR
    $sqlTotalRelacionados = SQLverTerminoRelaciones($tema_id);
    while ($datosTotalRelacionados = $sqlTotalRelacionados->FetchRow()) {
        if ($_SESSION[$_SESSION["CFGURL"]]["ssuser_id"]) {
            $td_delete = '<a type="button" class="btn btn-danger btn-xs" title="' . LABEL_borraRelacion . '" href="index.php?ridelete=' . $datosTotalRelacionados["id_relacion"] . '&amp;tema=' . $idTema . '" onclick="return askData();"><span class="glyphicon glyphicon-remove"></span></a> ';
            $classAcrnoyn = 'editable_select' . $datosTotalRelacionados["t_relacion"];
        } else {
            $td_delete = '';
            $classAcrnoyn = 'thesacronym';
        }
        #Change to metaTerm attributes
        if ($datosTotalRelacionados["BT_isMetaTerm"] == 1) {
            $css_class_MT = ' class="metaTerm" ';
            $label_MT = NOTE_isMetaTerm;
        } else {
            $css_class_MT = '';
            $label_MT = '';
        }
        switch ($datosTotalRelacionados["t_relacion"]) {
            case '3':
                // TG
                $itg = ++$itg;
                $row_TG .= '          <li>' . $td_delete . '<acronym class="' . $classAcrnoyn . '" id="edit_rel_id' . $datosTotalRelacionados[rel_id] . '" style="display: inline" title="' . TG_termino . ' ' . $datosTotalRelacionados[rr_value] . '" lang="' . LANG . '">' . TG_acronimo . $datosTotalRelacionados["rr_code"] . '</acronym>';
                $row_TG .= '          <a ' . $css_class_MT . ' title="' . LABEL_verDetalle . ' ' . $datosTotalRelacionados["tema"] . ' (' . TG_termino . ') ' . $label_MT . '"  href="index.php?tema=' . $datosTotalRelacionados["tema_id"] . '&amp;/' . string2url($datosTotalRelacionados["tema"]) . '">' . $datosTotalRelacionados["tema"] . '</a></li>';
                break;
            case '4':
                // UF
                //hide hidden equivalent terms
                if (!in_array($datosTotalRelacionados["rr_code"], $CFG["HIDDEN_EQ"]) || $_SESSION[$_SESSION["CFGURL"]]["ssuser_id"]) {
                    $iuf = ++$iuf;
                    $row_UP .= '          <li>' . $td_delete . '<acronym class="' . $classAcrnoyn . '" id="edit_rel_id' . $datosTotalRelacionados[rel_id] . '" style="display: inline" title="' . UP_termino . ' ' . $datosTotalRelacionados["rr_value"] . '" lang="' . LANG . '">' . UP_acronimo . $datosTotalRelacionados["rr_code"] . '</acronym>';
                    $row_UP .= '          <a class="NoTerm" title="' . LABEL_verDetalle . ' ' . $datosTotalRelacionados["tema"] . ' (' . UP_termino . ')"  href="index.php?tema=' . $datosTotalRelacionados[tema_id] . '&amp;/' . string2url($datosTotalRelacionados["tema"]) . '">' . $datosTotalRelacionados["tema"] . '</a></li>';
                }
                break;
            case '2':
                // TR
                $irt = ++$irt;
                $row_TR .= '          <li>' . $td_delete . '<acronym class="' . $classAcrnoyn . '" id="edit_rel_id' . $datosTotalRelacionados[rel_id] . '" style="display: inline" title="' . TR_termino . ' ' . $datosTotalRelacionados["rr_value"] . '" lang="' . LANG . '">' . TR_acronimo . $datosTotalRelacionados["rr_code"] . '</acronym>';
                $row_TR .= '          <a ' . $css_class_MT . ' title="' . LABEL_verDetalle . ' ' . $datosTotalRelacionados["tema"] . ' (' . TR_termino . ') ' . $label_MT . '"  href="index.php?tema=' . $datosTotalRelacionados["tema_id"] . '&amp;/' . string2url($datosTotalRelacionados["tema"]) . '">' . $datosTotalRelacionados["tema"] . '</a></li>';
                break;
            case '5':
                // parcialmente EQ
                $ieq = ++$ieq;
                $row_EQ .= '          <li>' . $td_delete . ' <acronym class="thesacronym" title="' . LABEL_termino_parcial_equivalente . '" lang="' . LANG . '">' . EQP_acronimo . '</acronym> ';
                $row_EQ .= '          <a title="' . LABEL_verDetalle . ' ' . $datosTotalRelacionados["tema"] . ' (' . LABEL_termino_parcial_equivalente . ')"  href="index.php?tema=' . $datosTotalRelacionados[tema_id] . '&amp;/' . string2url($datosTotalRelacionados["tema"]) . '">' . $datosTotalRelacionados["tema"] . '</a> (' . $datosTotalRelacionados["titulo"] . ')</li>';
                break;
            case '6':
                // EQ
                $ieq = ++$ieq;
                $row_EQ .= '          <li>' . $td_delete . ' <acronym class="thesacronym" title="' . LABEL_termino_equivalente . '" lang="' . LANG . '">' . EQ_acronimo . '</acronym> ';
                $row_EQ .= '          <a title="' . LABEL_verDetalle . ' ' . $datosTotalRelacionados["tema"] . ' (' . LABEL_termino_equivalente . ')"  href="index.php?tema=' . $datosTotalRelacionados[tema_id] . '&amp;/' . string2url($datosTotalRelacionados["tema"]) . '">' . $datosTotalRelacionados["tema"] . '</a> (' . $datosTotalRelacionados["titulo"] . ')</li>';
                break;
            case '7':
                // NO EQ
                $ieq = ++$ieq;
                $row_EQ .= '          <li>' . $td_delete . ' <acronym class="thesacronym" title="' . LABEL_termino_no_equivalente . '" lang="' . LANG . '">' . NEQ_acronimo . '</acronym> ';
                $row_EQ .= '          <a title="' . LABEL_verDetalle . ' ' . $datosTotalRelacionados["tema"] . ' (' . LABEL_termino_no_equivalente . ')"  href="index.php?tema=' . $datosTotalRelacionados[tema_id] . '&amp;/' . string2url($datosTotalRelacionados["tema"]) . '">' . $datosTotalRelacionados["tema"] . '</a> (' . $datosTotalRelacionados["titulo"] . ')</li>';
                break;
        }
    }
    //Si no es un término válido y es un UF.
    if (SQLcount($sqlTotalRelacionados) == 0) {
        $sqlTerminosValidosUF = SQLterminosValidosUF($idTema);
        while ($arrayTerminosValidosUF = $sqlTerminosValidosUF->FetchRow()) {
            //Reasignación del tema_id para utilizar en fuentes XML y como tema_id canónico
            $tema_id = $arrayTerminosValidosUF["tema_pref_id"];
            switch ($arrayTerminosValidosUF["t_relacion"]) {
                case '4':
                    // USE
                    $leyendaConector = USE_termino;
                    $iuse = ++$iuse;
                    $row_USE .= '<li><em>' . $arrayTerminosValidosUF["tema"] . '</em> ' . $leyendaConector . ' <a title="' . LABEL_verDetalle . $arrayTerminosValidosUF[tema_pref] . '" href="index.php?tema=' . $arrayTerminosValidosUF[tema_pref_id] . '">' . $arrayTerminosValidosUF["tema_pref"] . '</a> </li>' . "\r\n";
                    break;
                case '5':
                    // parcialmente EQ
                    $leyendaConector = '<acronym class="thesacronym" title="' . LABEL_termino_parcial_equivalente . '" lang="' . LANG . '">' . EQP_acronimo . '</acronym>';
                    $ieq = ++$ieq;
                    $row_EQ = '<li><em>' . $arrayTerminosValidosUF["tema"] . '</em> (' . $arrayTerminosValidosUF["titulo"] . ' / ' . $arrayTerminosValidosUF[idioma] . ') ' . $leyendaConector . ' <a title="' . LABEL_verDetalle . $arrayTerminosValidosUF[tema_pref] . '" href="index.php?tema=' . $arrayTerminosValidosUF["tema_pref_id"] . '">' . $arrayTerminosValidosUF["tema_pref"] . '</a> </li>' . "\r\n";
                    break;
                case '6':
                    // EQ
                    $leyendaConector = '<acronym class="thesacronym" title="' . LABEL_termino_equivalente . '" lang="' . LANG . '">' . EQ_acronimo . '</acronym>';
                    $ieq = ++$ieq;
                    $row_EQ = '<li><em>' . $arrayTerminosValidosUF["tema"] . '</em> (' . $arrayTerminosValidosUF["titulo"] . ' / ' . $arrayTerminosValidosUF[idioma] . ') ' . $leyendaConector . ' <a title="' . LABEL_verDetalle . $arrayTerminosValidosUF[tema_pref] . '" href="index.php?tema=' . $arrayTerminosValidosUF["tema_pref_id"] . '">' . $arrayTerminosValidosUF["tema_pref"] . '</a> </li>' . "\r\n";
                    break;
                case '7':
                    // NO EQ
                    $leyendaConector = '<acronym class="thesacronym" title="' . LABEL_termino_no_equivalente . '" lang="' . LANG . '">' . NEQ_acronimo . '</acronym>';
                    $ieq = ++$ieq;
                    $row_EQ = '<li><em>' . $arrayTerminosValidosUF["tema"] . '</em> (' . $arrayTerminosValidosUF["titulo"] . ' / ' . $arrayTerminosValidosUF[idioma] . ') ' . $leyendaConector . ' <a title="' . LABEL_verDetalle . $arrayTerminosValidosUF[tema_pref] . '" href="index.php?tema=' . $arrayTerminosValidosUF["tema_pref_id"] . '">' . $arrayTerminosValidosUF["tema_pref"] . '</a> </li>' . "\r\n";
                    break;
            }
        }
    }
    $rows = array("UP" => doListaTag($iuf, 'ul class="list-unstyled"', $row_UP, "UP"), "USE" => doListaTag($iuse, 'ul class="list-unstyled"', $row_USE, "EQ"), "TR" => doListaTag($irt, 'ul class="list-unstyled"', $row_TR, "TR"), "TG" => doListaTag($itg, 'ul class="list-unstyled"', $row_TG, "TG"), "TE" => doListaTag($int, 'ul class="list-unstyled"', $row_NT, "TE"), "EQ" => doListaTag($ieq, 'ul class="list-unstyled"', $row_EQ, "EQ"));
    $cant_relaciones = array("cantUF" => $iuf, "cantRT" => $irt, "cantTG" => $itg, "cantNT" => $int, "cantEQ" => $ieq, "cantTotal" => $iuf + $irt + $itg + $int + $iuse + $ieq);
    return array("HTMLterminos" => $rows, "cantRelaciones" => $cant_relaciones, "tema_id" => $tema_id);
}