function fetchAltTerms($tema_id) { $sql = SQLverTerminoRelaciones($tema_id); while ($array = mysqli_fetch_array($sql[datos])) { if ($array[t_relacion] == '4') { $result["result"][$array[id]] = array("term_id" => $array[id], "string" => $array[tema], "relation_type_id" => $array[t_relacion]); } } return $result; }
function fetchDirectTerms($tema_id) { /* $sql=SQLterminosDirectos($tema_id); */ $sql = SQLverTerminoRelaciones($tema_id); while ($array = $sql->FetchRow()) { $relation_type = arrayReplace(array("2", "3", "4"), array("RT", "BT", "UF"), $array[t_relacion]); $result["result"][$array[tema_id]] = array("term_id" => $array[tema_id], "code" => $array[code], "lang" => $array[idioma], "string" => $array[tema], "isMetaTerm" => $array[isMetaTerm], "relation_type_id" => $array[t_relacion], "relation_type" => $relation_type, "relation_code" => $array[rr_code], "relation_label" => $array[rr_value]); } return $result; }
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] . '&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] . '&/' . 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] . '&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] . '&/' . 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] . '&/' . 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] . '&/' . 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] . '&/' . 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] . '&/' . 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] . '&/' . 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 do_jsonld($tema_id) { global $CFG; $ARRAYjson_relations = array("skos:narrower" => array(), "skos:broader" => array(), "skos:altLabel" => array(), "skos:hiddenLabel" => array(), "skos:related" => array()); $_URI_BASE_ID = $CFG["_URI_BASE_ID"] ? $CFG["_URI_BASE_ID"] : $_SESSION["CFGURL"]; /* Tomar URL por default * Para que utilice URLs navegables: * $_URI_SEPARATOR_ID = ($CFG["_URI_SEPARATOR_ID"]) ? $CFG["_URI_SEPARATOR_ID"] : '?tema='; * Para que utilice URLs Skos core */ $_URI_SEPARATOR_ID = $CFG["_URI_SEPARATOR_ID"] ? $CFG["_URI_SEPARATOR_ID"] : 'xml.php?skosTema='; $datosTermino = ARRAYverDatosTermino($tema_id); if (!is_numeric($datosTermino["tema_id"])) { return null; } $SQLTerminosE = SQLverTerminosE($tema_id); while ($datosTerminosE = $SQLTerminosE->FetchRow()) { array_push($ARRAYjson_relations["skos:narrower"], $_URI_BASE_ID . $_URI_SEPARATOR_ID . $datosTerminosE[id_tema]); } $SQLterminosRelacionados = SQLverTerminoRelaciones($tema_id); while ($datosTerminosRelacionados = $SQLterminosRelacionados->FetchRow()) { if ($datosTerminosRelacionados[t_relacion] == '2') { // TR array_push($ARRAYjson_relations["skos:related"], $_URI_BASE_ID . $_URI_SEPARATOR_ID . $datosTerminosRelacionados[tema_id]); } if ($datosTerminosRelacionados[t_relacion] == '3') { // TG array_push($ARRAYjson_relations["skos:broader"], $_URI_BASE_ID . $_URI_SEPARATOR_ID . $datosTerminosRelacionados[tema_id]); } if ($datosTerminosRelacionados[t_relacion] == '4') { // UF //HiddenLabel if (in_array($datosTerminosRelacionados[rr_code], $CFG["HIDDEN_EQ"])) { array_push($ARRAYjson_relations["skos:hiddenLabel"], array("language" => $_SESSION["CFGIdioma"], "value" => $datosTerminosRelacionados[tema])); } else { array_push($ARRAYjson_relations["skos:altLabel"], array("language" => $_SESSION["CFGIdioma"], "value" => $datosTerminosRelacionados[tema])); } } } $SQLtargetTerms = SQLtargetTerms($tema_id); $ARRAYjson_map = array(); while ($datosTargetTerms = $SQLtargetTerms->FetchRow()) { $map_label = in_array(strtolower($datosTargetTerms[tvocab_tag]), array('exact', 'close', 'related', 'partial', 'broad', 'narrow')) ? strtolower($datosTargetTerms[tvocab_tag]) : 'exact'; $skos_tag = 'skos:' . $map_label . 'Match'; $ARRAYjson_map["{$skos_tag}"][] = array("@id" => $datosTargetTerms[tterm_url], "@type" => "skos:Concept", "skos:prefLabel" => array("@language" => $datosTargetTerms[tvocab_lang], "@value=" => $datosTargetTerms[tterm_string])); } $SQLURI2term = SQLURIxterm($tema_id); $ARRAYjson_URI = array(); while ($datosURI2term = $SQLURI2term->FetchRow()) { if (in_array(strtolower($datosURI2term[uri_code]), array('exactmatch', 'closematch', 'relatedmatch', 'partialmatch', 'broadmatch', 'narrowmatch'))) { $ARRAYjson_URI["{$datosURI2term['uri_code']}"][] = array("@id" => $datosURI2term[uri], "@type" => "skos:Concept"); } } $ARRAYjson_notes = array(); for ($iNota = 0; $iNota < count($datosTermino[notas]); ++$iNota) { if ($datosTermino[notas][$iNota][id]) { switch ($datosTermino[notas][$iNota][tipoNota]) { case 'NH': $ARRAYjson_notes["skos:historyNote"][] = array("@lang" => $datosTermino[notas][$iNota][lang_nota], "@value" => html2txt($datosTermino[notas][$iNota][nota])); break; case 'NA': $ARRAYjson_notes["skos:scopeNote"][] = array("@lang" => $datosTermino[notas][$iNota][lang_nota], "@value" => html2txt($datosTermino[notas][$iNota][nota])); break; case 'DF': $ARRAYjson_notes["skos:definition"][] = array("@lang" => $datosTermino[notas][$iNota][lang_nota], "@value" => html2txt($datosTermino[notas][$iNota][nota])); break; case 'ED': $ARRAYjson_notes["skos:editorialNote"][] = array("@lang" => $datosTermino[notas][$iNota][lang_nota], "@value" => html2txt($datosTermino[notas][$iNota][nota])); break; case 'EX': $ARRAYjson_notes["skos:example"][] = array("@lang" => $datosTermino[notas][$iNota][lang_nota], "@value" => html2txt($datosTermino[notas][$iNota][nota])); break; case 'CH': $ARRAYjson_notes["skos:changeNote"][] = array("@lang" => $datosTermino[notas][$iNota][lang_nota], "@value" => html2txt($datosTermino[notas][$iNota][nota])); break; case 'NB': $ARRAYjson_notes["skos:note"][] = array("@lang" => $datosTermino[notas][$iNota][lang_nota], "@value" => html2txt($datosTermino[notas][$iNota][nota])); break; } } } $ARRAY_json = array("@context" => array("dc" => "http://purl.org/dc/elements/1.1/", "skos" => "http://www.w3.org/2004/02/skos/core#", "skos:broader" => array("@type" => "@id"), "skos:inScheme" => array("@type" => "@id"), "skos:related" => array("@type" => "@id"), "skos:narrower" => array("@type" => "@id"), "skos:hasTopConcept" => array("@type" => "@id"), "skos:topConceptOf" => array("@type" => "@id")), "@id" => $_URI_BASE_ID . $_URI_SEPARATOR_ID . $datosTermino[idTema], "@type" => "skos:Concept", "skos:prefLabel" => array("@language" => $_SESSION["CFGIdioma"], "@value=" => xmlentities($datosTermino[titTema])), "skos:inScheme" => $_URI_BASE_ID, "dct:created" => $datosTermino[cuando]); if ($datosTermino[cuando_final]) { $ARRAY_json = array_merge($ARRAY_json, array("dct:modified" => $datosTermino[cuando_final])); } //Use or not term code / notation tag in Skos if ($CFG["_USE_CODE"] == '1' && strlen($datosTermino[code]) > 0) { $ARRAY_json = array_merge($ARRAY_json, array("skos:notation" => $datosTermino[code])); } //Unset empty array if (count($ARRAYjson_relations["skos:related"]) == 0) { unset($ARRAYjson_relations["skos:related"]); } if (count($ARRAYjson_relations["skos:broader"]) == 0) { unset($ARRAYjson_relations["skos:broader"]); } if (count($ARRAYjson_relations["skos:narrower"]) == 0) { unset($ARRAYjson_relations["skos:narrower"]); } if (count($ARRAYjson_relations["skos:altLabel"]) == 0) { unset($ARRAYjson_relations["skos:altLabel"]); } if (count($ARRAYjson_relations["skos:hiddenLabel"]) == 0) { unset($ARRAYjson_relations["skos:hiddenLabel"]); } return json_encode(array_merge($ARRAY_json, $ARRAYjson_notes, $ARRAYjson_relations, $ARRAYjson_map, $ARRAYjson_URI)); }
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 txt4term($tema_id, $params = array()) { $arrayTema = ARRAYverTerminoBasico($tema_id); $txt .= "\n" . $arrayTema[tema] . "\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"; } //Notas $sqlNotas = SQLdatosTerminoNotas($arrayTema[tema_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[tema_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 { $txt .= ' ' . $acronimo . $arrayRelaciones[rr_code] . ': ' . $arrayRelaciones[tema] . "\r\n"; } } } //Terminos especificos $SQLTerminosE = SQLverTerminosE($arrayTema[tema_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[tema_id]); while ($arrayTT = $SQLtargetTerms->FetchRow()) { $txt .= ' ' . FixEncoding(ucfirst($arrayTT[tvocab_label])) . ': ' . FixEncoding($arrayTT[tterm_string]) . "\r\n"; } return $txt; }
function do_nodo_BS8723($tema_id) { global $CFG; $_URI_BASE_ID = $CFG["_URI_BASE_ID"] ? $CFG["_URI_BASE_ID"] : $_SESSION["CFGURL"]; /* Tomar URL por default * Para que utilice URLs navegables: * $_URI_SEPARATOR_ID = ($CFG["_URI_SEPARATOR_ID"]) ? $CFG["_URI_SEPARATOR_ID"] : '?tema='; * Para que utilice URLs Skos core */ $_URI_SEPARATOR_ID = $CFG["_URI_SEPARATOR_ID"] ? $CFG["_URI_SEPARATOR_ID"] : 'xml.php?skosTema='; //Buscar datos del termino $datosTermino = ARRAYverDatosTermino($tema_id); //Términos específicos (NT) del término $SQLTerminosE = SQLverTerminosE($tema_id); //Otras relaciones del término (UF,RT, BT) del término $SQLterminosRelacionados = SQLverTerminoRelaciones($tema_id); //Nodos de NT while ($datosTerminosE = mysqli_fetch_array($SQLTerminosE[datos])) { $xmlnodosNT .= '<HasHierRelConcept Role="NT">' . $_URI_BASE_ID . $_URI_SEPARATOR_ID . $datosTerminosE[id_tema] . '</HasHierRelConcept>'; } //Nodos RT, BT y UF while ($datosTerminosRelacionados = mysqli_fetch_array($SQLterminosRelacionados[datos])) { switch ($datosTerminosRelacionados[t_relacion]) { case '2': //RT $xmlnodosRT .= '<HasRelatedConcept Role="RT">' . $_URI_BASE_ID . $_URI_SEPARATOR_ID . $datosTerminosRelacionados[id] . '</HasRelatedConcept>'; break; case '3': //BT $xmlnodosBT .= '<HasHierRelConcept Role="BT">' . $_URI_BASE_ID . $_URI_SEPARATOR_ID . $datosTerminosRelacionados[id] . '</HasHierRelConcept>'; break; case '4': //UF $xmlnodosUF .= '<NonPreferredTerm dc:identifier="' . $_URI_BASE_ID . $_URI_SEPARATOR_ID . $datosTerminosRelacionados[id] . '" xml:lang="' . $_SESSION["CFGIdioma"] . '">'; $xmlnodosUF .= ' <LexicalValue>' . xmlentities($datosTerminosRelacionados[tema]) . '</LexicalValue>'; $xmlnodosUF .= ' <dcterms:created>' . $datoTerminosRelacionados[t1_cuando] . '</dcterms:created>'; $xmlnodosUF .= ' <USE>' . $_URI_BASE_ID . $_URI_SEPARATOR_ID . $datoTerminosRelacionados[tema_id] . '</USE>'; $xmlnodosUF .= '</NonPreferredTerm>'; break; } } //Notas for ($iNota = 0; $iNota < count($datosTermino[notas]); ++$iNota) { if ($datosTermino[notas][$iNota][id]) { switch ($datosTermino[notas][$iNota][tipoNota]) { case 'NH': //HistoryNote $xmlnodosNotas .= '<HistoryNote xml:lang="' . $datosTermino[notas][$iNota][lang_nota] . '">'; $xmlnodosNotas .= ' <LexicalValue>' . xmlentities($datosTermino[notas][$iNota][nota], true) . '</LexicalValue>'; $xmlnodosNotas .= '</HistoryNote>'; break; case 'NA': //ScopeNote $xmlnodosNotas .= '<ScopeNote xml:lang="' . $datosTermino[notas][$iNota][lang_nota] . '">'; $xmlnodosNotas .= ' <LexicalValue>' . xmlentities($datosTermino[notas][$iNota][nota], true) . '</LexicalValue>'; $xmlnodosNotas .= '</ScopeNote>'; break; } } } //Nodo del término $xmlnodoTermino .= '<PreferredTerm dc:identifier="' . $_URI_BASE_ID . $_URI_SEPARATOR_ID . $datosTermino[idTema] . '" xml:lang="' . $_SESSION["CFGIdioma"] . '">'; $xmlnodoTermino .= ' <LexicalValue>' . xmlentities($datosTermino[titTema]) . '</LexicalValue>'; $xmlnodoTermino .= ' <dcterms:created>' . $datosTermino[cuando] . '</dcterms:created>'; if ($datosTermino[cuando_final]) { $xmlnodoTermino .= ' <dcterms:modified>' . $datosTermino[cuando_final] . '</dcterms:modified>'; } $xmlnodoTermino .= '</PreferredTerm>'; //Armado del nodo del concepto $xmlnodo = '<ThesaurusConcept dc:identifier="' . $_URI_BASE_ID . $_URI_SEPARATOR_ID . $datosTermino[idTema] . '">'; $xmlnodo .= ' <dcterms:created>' . $datosTermino[cuando] . '</dcterms:created>'; if ($datosTermino[cuando_final]) { $xmlnodo .= ' <dcterms:modified>' . $datosTermino[cuando_final] . '</dcterms:modified>'; } $xmlnodo .= $xmlnodoTermino; $xmlnodo .= $xmlnodosNotas; $xmlnodo .= $xmlnodosUF; $xmlnodo .= $xmlnodosBT; $xmlnodo .= $xmlnodosNT; $xmlnodo .= $xmlnodosRT; $xmlnodo .= '</ThesaurusConcept>'; return $xmlnodo; }
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"] . '">►</span><span id="contraeTE' . $datosNT["id_tema"] . '" style="display: none">▼</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"] . '&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"] . '&/' . 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"] . '&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"] . '&/' . 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] . '&/' . 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"] . '&/' . 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] . '&/' . 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] . '&/' . 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] . '&/' . 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); }