summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRamón M. Gómez <ramongomez@us.es>2019-01-23 13:07:06 +0100
committerRamón M. Gómez <ramongomez@us.es>2019-01-23 13:07:06 +0100
commit8c7b3746124eb8ced825a20ab8dd17b573d2e2c1 (patch)
treef44928e8344be6b9faa6404fad6f74b74702958a
parent1985678d44b366a1b98107241c3ae6e059a67499 (diff)
#834: More PHP/HTML/CSS code cleanup.
-rw-r--r--admin/WebConsole/clases/AdoPhp.php12
-rw-r--r--admin/WebConsole/comandos/CrearImagenBasica.php49
-rw-r--r--admin/WebConsole/comandos/EliminarImagenCache.php11
-rw-r--r--admin/WebConsole/comandos/EliminarImagenRepositorio.php20
-rw-r--r--admin/WebConsole/idiomas/php/esp/boot_grub4dos_esp.php106
-rw-r--r--admin/WebConsole/principal/manual.php3
-rw-r--r--admin/WebConsole/rest/common.php1
-rw-r--r--admin/WebConsole/validacion/functions.php3
-rw-r--r--admin/WebConsole/varios/buscar.php6
-rw-r--r--admin/WebConsole/varios/perfilcomponente_soft.php2
10 files changed, 100 insertions, 113 deletions
diff --git a/admin/WebConsole/clases/AdoPhp.php b/admin/WebConsole/clases/AdoPhp.php
index 4265911c..b0dd5574 100644
--- a/admin/WebConsole/clases/AdoPhp.php
+++ b/admin/WebConsole/clases/AdoPhp.php
@@ -18,13 +18,13 @@ class Conexion{
var $controlador; // Controlador
var $estado; // Estado de la conexion
var $proveedor; // Proveedor de BD
- var $error; // Colecci� de errores ocurridos durante el proceso (C�igo de error)
- var $ultimoerror; // Ultimo error detectado
- var $inderror; // Nmero de errores ocurridos durante el proceso
+ var $error; // Colección de errores ocurridos durante el proceso (Código de error)
+ var $ultimoerror; // Último error detectado
+ var $inderror; // Número de errores ocurridos durante el proceso
var $msgerrores=array(
"No se ha producido ningn error",
- "001 : conexiónError - La conexion no se pudo establecer",
- "002 : conexiónError - Se estableció la conexióncon el servidor pero la base de datos no responde",
+ "001 : conexiónError - La conexión no se pudo establecer",
+ "002 : conexiónError - Se estableció la conexión con el servidor pero la base de datos no responde",
"003 : conexiónError - No se ha podido cerrar la actual conexión",
"004 : conexiónError - El objeto está ocupado intentando establecer una conexiónanterior",
"005 : conexiónError - La conexiónya está cerrada",
@@ -653,7 +653,6 @@ class Recordset{
$this->campos=mysqli_fetch_array($this->filas);
}
}
-}
/* -------------------------------------------------------------------------------------------
Esta función devuelve una matriz asociativa con el nombre de los campos del recordset
---------------------------------------------------------------------------------------------*/
@@ -676,4 +675,5 @@ class Recordset{
}
return($infocampos);
}
+}
diff --git a/admin/WebConsole/comandos/CrearImagenBasica.php b/admin/WebConsole/comandos/CrearImagenBasica.php
index 875aeb40..d3d048ef 100644
--- a/admin/WebConsole/comandos/CrearImagenBasica.php
+++ b/admin/WebConsole/comandos/CrearImagenBasica.php
@@ -1,12 +1,12 @@
<?php
// *************************************************************************************************************************************************
-// Aplicaci�n WEB: ogAdmWebCon
-// Autor: Jos� Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
-// Fecha Creaci�n: A�o 2012
-// Fecha �ltima modificaci�n: Noviembre-2012
+// Aplicación WEB: ogAdmWebCon
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: Año 2012
+// Fecha última modificación: Noviembre-2012
// Nombre del fichero: CrearImagenBas.php
-// Descripci�n :
-// Implementaci�n del comando "CrearImagenBas.php"
+// Descripción :
+// Implementación del comando "CrearImagenBas.php"
// *************************************************************************************************************************************************
include_once("../includes/ctrlacc.php");
include_once("../clases/AdoPhp.php");
@@ -35,9 +35,9 @@ if (!$resul){
//________________________________________________________________________________________________________
?>
<HTML>
-<TITLE>Administraci�n web de aulas</TITLE>
<HEAD>
- <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<TITLE>Administración web de aulas</TITLE>
+<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<LINK rel="stylesheet" type="text/css" href="../estilos.css">
<SCRIPT language="javascript" src="./jscripts/CrearImagenBasica.js"></SCRIPT>
<SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
@@ -50,29 +50,27 @@ if (!$resul){
Cabecera
------------------------------------------------------------------------------------------->
<P align=center class=cabeceras><?php echo $TbMsg[0] ?><P>
- <P align=center>
- <SPAN align=center class=subcabeceras><?php echo $TbMsg[1] ?></SPAN>
- </BR>
+ <P align=center><SPAN class=subcabeceras><?php echo $TbMsg[1] ?></SPAN></P>
+ <BR>
<TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos>
<TR>
- <TH align=center>&nbsp;<?php echo $TbMsg[2] ?>&nbsp;</TD>
+ <TH align=center>&nbsp;<?php echo $TbMsg[2] ?>&nbsp;</TH>
<?php echo '<TD>'.$nombreordenador.'</TD>';?>
<TD colspan=2 valign=top align=left rowspan=3><IMG border=2 style="border-color:#63676b" src="../images/fotoordenador.gif"></TD>
</TR>
<TR>
- <TH align=center>&nbsp;<?php echo $TbMsg[3] ?>&nbsp;</TD>
+ <TH align=center>&nbsp;<?php echo $TbMsg[3] ?>&nbsp;</TH>
<?php echo '<TD>'.$ip.'</TD>';?>
</TR>
<TR>
- <TH align=center>&nbsp;<?php echo $TbMsg[4] ?>&nbsp;</TD>
+ <TH align=center>&nbsp;<?php echo $TbMsg[4] ?>&nbsp;</TH>
<?php echo '<TD>'.$mac.'</TD>';?>
</TR>
</TABLE>
- </P>
<!------------------------------------------------------------------------------------------
Subcabecera
------------------------------------------------------------------------------------------->
- <P align=center><SPAN align=center class=subcabeceras><?php echo $TbMsg[6] ?></SPAN></p>
+ <P align=center><SPAN class=subcabeceras><?php echo $TbMsg[6] ?></SPAN></p>
<FORM align=center name="fdatos">
<TABLE width=90% align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos>
<TR>
@@ -114,7 +112,7 @@ if (!$resul){
/*----------------------------------------------------------------------------------------------
Recupera los datos de un ordenador
- Parametros:
+ Parámetros:
- ido: El identificador del ordenador
----------------------------------------------------------------------------------------------*/
function tomaPropiedades($cmd,$ido)
@@ -126,8 +124,8 @@ function tomaPropiedades($cmd,$ido)
$rs=new Recordset;
$cmd->texto="SELECT nombreordenador,ip,mac,idperfilhard,idrepositorio
- FROM ordenadores
- WHERE idordenador='".$ido."'";
+ FROM ordenadores
+ WHERE idordenador='".$ido."'";
$rs->Comando=&$cmd;
if (!$rs->Abrir()) return(false); // Error al abrir recordset
$rs->Primero();
@@ -184,13 +182,11 @@ function HTMLSELECT_imagenes($idimagen)
$SelectHtml="";
$cmd->texto="SELECT imagenes.idimagen,imagenes.descripcion,imagenes.nombreca,imagenes.ruta,
- repositorios.ip,repositorios.nombrerepositorio
- FROM imagenes
- INNER JOIN repositorios on imagenes.idrepositorio = repositorios.idrepositorio
- WHERE tipo=".$IMAGENES_BASICAS."
- AND imagenes.idcentro=".$idcentro;
-
- //echo $cmd->texto;
+ repositorios.ip,repositorios.nombrerepositorio
+ FROM imagenes
+ INNER JOIN repositorios on imagenes.idrepositorio = repositorios.idrepositorio
+ WHERE tipo=".$IMAGENES_BASICAS."
+ AND imagenes.idcentro=".$idcentro;
$rs=new Recordset;
$rs->Comando=&$cmd;
if (!$rs->Abrir()) return("");
@@ -209,5 +205,4 @@ function HTMLSELECT_imagenes($idimagen)
$SelectHtml.= '</SELECT>';
return($SelectHtml);
}
-?>
diff --git a/admin/WebConsole/comandos/EliminarImagenCache.php b/admin/WebConsole/comandos/EliminarImagenCache.php
index a49f6eac..600101f7 100644
--- a/admin/WebConsole/comandos/EliminarImagenCache.php
+++ b/admin/WebConsole/comandos/EliminarImagenCache.php
@@ -28,9 +28,9 @@ if (!$cmd)
//___________________________________________________________________________________________________
?>
<HTML>
-<TITLE>Administraci??n web de aulas</TITLE>
<HEAD>
- <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<TITLE>Administración web de aulas</TITLE>
<LINK rel="stylesheet" type="text/css" href="../estilos.css">
<SCRIPT language="javascript" src="./jscripts/EliminarImagenCache.js"></SCRIPT>
<SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
@@ -159,9 +159,7 @@ switch($ambito){
<?php }?>
<!-- //#agp-->
- <P align=center>
- <SPAN align=center class=subcabeceras><?php echo $TbMsg[7] ?></SPAN>
- </P>
+ <P align=center><SPAN class=subcabeceras><?php echo $TbMsg[7] ?></SPAN></P>
<form align=center name="fdatos">
<?php echo tabla_configuraciones($cmd,$idambito); ?>
@@ -330,8 +328,7 @@ switch($ambito){
$tablaHtml="";
- $rs->Comando=&$cmd;
- $rs=new Recordset;
+ $rs=new Recordset;
$rs->Comando=&$cmd;
if (!$rs->Abrir()) return($tablaHtml); // Error al abrir recordset
$rs->Primero();
diff --git a/admin/WebConsole/comandos/EliminarImagenRepositorio.php b/admin/WebConsole/comandos/EliminarImagenRepositorio.php
index 7fbb046a..76c9ca38 100644
--- a/admin/WebConsole/comandos/EliminarImagenRepositorio.php
+++ b/admin/WebConsole/comandos/EliminarImagenRepositorio.php
@@ -16,12 +16,9 @@ include_once("../idiomas/php/".$idioma."/comandos/opcionesacciones_".$idioma.".p
include_once("../gestores/relaciones/imagenes_eliminacion.php");
-if (isset($_POST["opcion"])) {$opcion=$_POST["opcion"];}else{$opcion;} // Recoge parametros
-//$opcion=$_POST["opcion"]; // Recoge parametros
-if (isset($_POST["idrepositorio"])) {$idrepositorio=$_POST["idrepositorio"];}else{$idrepositorio;}
-//$idrepositorio=$_POST["idrepositorio"];
+if (isset($_POST["opcion"])) {$opcion=$_POST["opcion"];}else{$opcion='';} // Recoge parametros
+if (isset($_POST["idrepositorio"])) {$idrepositorio=$_POST["idrepositorio"];}else{$idrepositorio=0;}
if (isset($_POST["grupoid"])) {$grupoid=$_POST["grupoid"];}else{$grupoid='';}
-//$grupoid=$_POST["grupoid"];
$idcentro=$_SESSION["widcentro"];
if (isset($_GET["opcion"])) $opcion=$_GET["opcion"]; // Recoge parametros
if (isset($_GET["idrepositorio"])) $idrepositorio=$_GET["idrepositorio"];
@@ -32,13 +29,12 @@ if (isset($_POST["modov"])) {$modov=$_POST["modov"];}else{$modov=0;}
//________________________________________________________________________________________________________
$idcomando=10;
$descricomando="Ejecutar Script";
-//echo $ambito."<br>";
-//echo $idambito."<br>";
$funcion="EjecutarScript";
-//echo $atributos."<br>";
-//echo $gestor;
$gestor="../comandos/gestores/gestor_Comandos.php";
//$gestor="./ElimininarImagenRepositorio.php";
+$espaciorepos=array();
+$separarogunit=0;
+$iprepositorio='';
//________________________________________________________________________________________________________
$cmd=CreaComando($cadenaconexion);
if (!$cmd)
@@ -145,8 +141,7 @@ $repolocal="si";
sort($imarepo); // Ordenamos el Array
- if (isset($_POST["contar"])) {$cuantos=$_POST["contar"];}else{$cuantos=0;$contar;}
- //$cuantos=$_POST["contar"];
+ if (isset($_POST["contar"])) {$cuantos=$_POST["contar"];}else{$cuantos=0;}
for ($i=1;$i<=$cuantos;$i++)
{
//#########################################################################
@@ -626,5 +621,4 @@ function confirmeliminar() {var mensaje="<?php echo $TbMsg[17];?>";if(confirm(me
</BODY>
</HTML>
-<?php } ?>
-
+<?php } ?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/boot_grub4dos_esp.php b/admin/WebConsole/idiomas/php/esp/boot_grub4dos_esp.php
index 60ac8877..c6173005 100644
--- a/admin/WebConsole/idiomas/php/esp/boot_grub4dos_esp.php
+++ b/admin/WebConsole/idiomas/php/esp/boot_grub4dos_esp.php
@@ -1,53 +1,53 @@
-<?php
-//____________________________________________________________
-//
-// Fichero de idiomas php: aulas_esp.php
-// Idioma: Espaol
-//_____________________________________________________________
- $TbMsg=array();
- $TbMsg[0]='Nuevo';
- $TbMsg[1]='Modificar';
- $TbMsg[2]='Eliminar';
- $TbMsg[3]='Nueva Columna de Arranque';
- $TbMsg[4]='Modificar Columna de Arranque';
- $TbMsg[5]='Eliminar Columna de Arranque';
- $TbMsg[6]='Arranque Creado Correctamente';
- $TbMsg[7]='Arranque Modificado Correctamente';
- $TbMsg[8]='Arranque Eliminado Correctamente';
- $TbMsg[9]='Selecciona Columna Arranque';
- $TbMsg[10]='"Modo Usuario"';
- $TbMsg[11]='"Modo Administracion"';
- $TbMsg[12]='Nombre';
- $TbMsg[13]='Aceptar';
- $TbMsg[14]='Introduzca un Nombre de Columna';
- $TbMsg[15]='"Renombrar"';
- $TbMsg[16]='Cancelar';
- $TbMsg[17]='Plantilla';
- $TbMsg[18]='Sin Plantilla';
- $TbMsg[19]='Comandos';
- $TbMsg[20]='Descripcion';
- $TbMsg[21]='Fichero';
- $TbMsg[22]='##NO-TOCAR-ESTA-LINEA ';
- $TbMsg[23]='NO HAY COLUMNA NUEVA';
- $TbMsg[24]='mbito: Centros';
- $TbMsg[25]='mbito: Grupo de aulas';
- $TbMsg[26]='mbito: Grupo de ordenadores';
- $TbMsg[27]='"Incorporar ordenadores"';
- $TbMsg[28]='"Procedimientos"';
- $TbMsg[29]='"Reservas de aulas"';
- $TbMsg[30]='"Confirmadas"';
- $TbMsg[31]='"Pendientes"';
- $TbMsg[32]='"Denegadas"';
- $TbMsg[33]='"Consola remota"';
- $TbMsg[34]='"Programacin reservas"';
- $TbMsg[35]='"Operadores"';
- $TbMsg[36]='"Eliminar Operador"';
- $TbMsg[37]='"Aadir nuevo Operador"';
- $TbMsg[38]='"Asistentes"';
- $TbMsg[39]='"Eco de Consola"';
- $TbMsg[40]='"NetBoot avanzado"';
- $TbMsg[41]='"Reubicar ordenadores"';
- $TbMsg[42]='Gesti&oacute;n Arranque Avanzado';
- $TbMsg[43]='"Guardar"';
- $TbMsg[44]='Ubicador Ordenadores';
- $TbMsg[45]='Nombre mbito';
+<?php
+//____________________________________________________________
+//
+// Fichero de idiomas php: boot_grub4dos_esp.php
+// Idioma: Español
+//_____________________________________________________________
+ if (!empty($TbMsg)) $TbMsg=array();
+ $TbMsg[0]='Nuevo';
+ $TbMsg[1]='Modificar';
+ $TbMsg[2]='Eliminar';
+ $TbMsg[3]='Nueva Columna de Arranque';
+ $TbMsg[4]='Modificar Columna de Arranque';
+ $TbMsg[5]='Eliminar Columna de Arranque';
+ $TbMsg[6]='Arranque Creado Correctamente';
+ $TbMsg[7]='Arranque Modificado Correctamente';
+ $TbMsg[8]='Arranque Eliminado Correctamente';
+ $TbMsg[9]='Selecciona Columna Arranque';
+ $TbMsg[10]='"Modo Usuario"';
+ $TbMsg[11]='"Modo Administracion"';
+ $TbMsg[12]='Nombre';
+ $TbMsg[13]='Aceptar';
+ $TbMsg[14]='Introduzca un Nombre de Columna';
+ $TbMsg[15]='"Renombrar"';
+ $TbMsg[16]='Cancelar';
+ $TbMsg[17]='Plantilla';
+ $TbMsg[18]='Sin Plantilla';
+ $TbMsg[19]='Comandos';
+ $TbMsg[20]='Descripcion';
+ $TbMsg[21]='Fichero';
+ $TbMsg[22]='##NO-TOCAR-ESTA-LINEA ';
+ $TbMsg[23]='NO HAY COLUMNA NUEVA';
+ $TbMsg[24]='Ámbito: Centros';
+ $TbMsg[25]='Ámbito: Grupo de aulas';
+ $TbMsg[26]='Ámbito: Grupo de ordenadores';
+ $TbMsg[27]='"Incorporar ordenadores"';
+ $TbMsg[28]='"Procedimientos"';
+ $TbMsg[29]='"Reservas de aulas"';
+ $TbMsg[30]='"Confirmadas"';
+ $TbMsg[31]='"Pendientes"';
+ $TbMsg[32]='"Denegadas"';
+ $TbMsg[33]='"Consola remota"';
+ $TbMsg[34]='"Programación reservas"';
+ $TbMsg[35]='"Operadores"';
+ $TbMsg[36]='"Eliminar Operador"';
+ $TbMsg[37]='"Añadir nuevo Operador"';
+ $TbMsg[38]='"Asistentes"';
+ $TbMsg[39]='"Eco de Consola"';
+ $TbMsg[40]='"NetBoot avanzado"';
+ $TbMsg[41]='"Reubicar ordenadores"';
+ $TbMsg[42]='Gesti&oacute;n Arranque Avanzado';
+ $TbMsg[43]='"Guardar"';
+ $TbMsg[44]='Ubicador Ordenadores';
+ $TbMsg[45]='Nombre ámbito';
diff --git a/admin/WebConsole/principal/manual.php b/admin/WebConsole/principal/manual.php
index ce9885cc..85921d75 100644
--- a/admin/WebConsole/principal/manual.php
+++ b/admin/WebConsole/principal/manual.php
@@ -37,7 +37,8 @@ foreach ($fichero as $ficheros) {
</head>
<body class='acercade'>
-<div><p align=center class=cabeceras><img border=0 nod="aulas-1" value="Sala Virtual" style="cursor:pointer" src="../images/iconos/aula.gif" >&nbsp;&nbsp;<?php echo $TbMsg["MANUAL"] ?><br>
+<p align=center class=cabeceras><img border=0 style="cursor: pointer;" src="../images/iconos/aula.gif" >&nbsp;&nbsp;<?php echo $TbMsg["MANUAL"] ?></p>
+<br>
<table width='100%' border='0'>
<tr>
diff --git a/admin/WebConsole/rest/common.php b/admin/WebConsole/rest/common.php
index bc39ced9..65ee5f80 100644
--- a/admin/WebConsole/rest/common.php
+++ b/admin/WebConsole/rest/common.php
@@ -248,6 +248,7 @@ $app->hook('slim.after', function() use ($app) {
* @return JSON object with basic server information (version, services, etc.)
*/
$app->get('/info', function() {
+ $hasOglive = false;
$response = new \stdClass;
// Reading version file.
$data = json_decode(@file_get_contents(VERSION_FILE));
diff --git a/admin/WebConsole/validacion/functions.php b/admin/WebConsole/validacion/functions.php
index a4780fd1..f9d0f3e1 100644
--- a/admin/WebConsole/validacion/functions.php
+++ b/admin/WebConsole/validacion/functions.php
@@ -79,7 +79,7 @@ function GeneraMenu($rs,$tipo,$iph){
global $ITEMS_PUBLICOS;
global $ITEMS_PRIVADOS;
global $UrlPaginaIconos;
-
+ $lit='';
$titulo=$rs->campos["titulo"];
$modalidad=$rs->campos["modalidad"];
$smodalidad=$rs->campos["smodalidad"];
@@ -163,5 +163,4 @@ function GeneraMenu($rs,$tipo,$iph){
return($codeHTML);
}
-?>
diff --git a/admin/WebConsole/varios/buscar.php b/admin/WebConsole/varios/buscar.php
index 552e32b7..884a75d9 100644
--- a/admin/WebConsole/varios/buscar.php
+++ b/admin/WebConsole/varios/buscar.php
@@ -186,7 +186,7 @@ if (!empty ($valor) or $criterio == "duplic" or $criterio == "profe" or $criteri
echo '<p class="subcabeceras" align="center">'.$TbMsg["SEARCH_NOMATCHES"].'</p>';
} else {
?>
-<div align="center" style="margin:20;">
+<div align="center" style="margin: 20px;">
<table class="tabla_listados">
<caption><?php echo $TbMsg["SEARCH_RESULTS"];?></caption>
<tr>
@@ -210,7 +210,7 @@ if (!empty ($valor) or $criterio == "duplic" or $criterio == "profe" or $criteri
<hr width="50%">
<?php } ?>
-<div align="center" style="margin:20;">
+<div align="center" style="margin: 20px;">
<form action="#" class="formulariodatos" name="fdatos" method="post">
<?php echo $TbMsg["SEARCH_CRITERIA"] ?>:
<select name="criterio" id="criterio" onchange="if (document.fdatos.criterio.value=='duplic' || document.fdatos.criterio.value=='profe' || document.fdatos.criterio.value=='norepo') document.fdatos.valor.disabled=true; else document.fdatos.valor.disabled=false">
@@ -223,7 +223,7 @@ if (!empty ($valor) or $criterio == "duplic" or $criterio == "profe" or $criteri
</select>
<input type="text" name="valor" id="valor" size="20" />
<div align="center">
- <img onclick="confirmar()" src="../images/botonok.png" style="margin:20;cursor: hand" />
+ <img onclick="confirmar()" src="../images/botonok.png" style="margin: 20px; cursor: hand" />
</div>
</form>
</div>
diff --git a/admin/WebConsole/varios/perfilcomponente_soft.php b/admin/WebConsole/varios/perfilcomponente_soft.php
index 58a90725..4a1d8fc0 100644
--- a/admin/WebConsole/varios/perfilcomponente_soft.php
+++ b/admin/WebConsole/varios/perfilcomponente_soft.php
@@ -40,7 +40,7 @@ if (!$cmd)
<SPAN align=center class=subcabeceras><?php echo $TbMsg[1]?></SPAN>&nbsp;<IMG src="../images/iconos/confisoft.gif"></P>
<BR>
<DIV align=center id="Layer_componentes">
- <SPAN align=center class=presentaciones><B><U><?php echo $TbMsg[2]?></U>:&nbsp;<?php echo $descripcionperfil?></B></SPAN></P>
+ <P align=center><SPAN class=presentaciones><B><U><?php echo $TbMsg[2]?></U>:&nbsp;<?php echo $descripcionperfil?></B></SPAN></P>
<TABLE width="100%" class="tabla_listados" cellspacing=1 cellpadding=0 >
<TR>
<TH>&nbsp</TH>