// *************************************************************************************************************************************************
// Aplicación WEB: ogAdmWebCon
// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
// Fecha Creación: Año 2003-2004
// Fecha Última modificación: Marzo-2005
// Nombre del fichero: aula.php
// Descripción :
// Visualiza los ordenadores de las aulas de un determinado Centro
// *************************************************************************************************************************************************
include_once("../includes/ctrlacc.php");
include_once("../clases/AdoPhp.php");
include_once("../clases/XmlPhp.php");
include_once("../clases/MenuContextual.php");
include_once("../clases/SockHidra.php");
include_once("../includes/constantes.php");
include_once("../includes/comunes.php");
include_once("../includes/CreaComando.php");
include_once("../idiomas/php/".$idioma."/aulas_".$idioma.".php");
//________________________________________________________________________________________________________
$litambito=0;
$idambito=0;
$nombreambito="";
$idsrvrembo=0;
$idsrvdhcp=0;
if (isset($_GET["litambito"])) $litambito=$_GET["litambito"]; // Recoge parametros
if (isset($_GET["idambito"])) $idambito=$_GET["idambito"];
if (isset($_GET["nombreambito"])) $nombreambito=$_GET["nombreambito"];
if (isset($_GET["idsrvrembo"])) $idsrvrembo=$_GET["idsrvrembo"];
if (isset($_GET["idsrvdhcp"])) $idsrvdhcp=$_GET["idsrvdhcp"];
$Midordenador= Array();
$Mnombreordenador= Array();
$MimgOrdenador=Array();
$Mip= Array();
$Mmac= Array();
$k=0; // Indice de la Matriz
$cadenaip="";
$idaula=0;
$nombreaula="";
$cmd=CreaComando($cadenaconexion);
if (!$cmd)
Header('Location: '.$pagerror.'?herror=2'); // Error de conexióncon servidor B.D.
//________________________________________________________________________________________________________
?>
';
$cmd->texto="SELECT idcentro,nombrecentro FROM centros WHERE idcentro=".$idambito;
RecorreCentro($cmd);
break;
case $LITAMBITO_GRUPOSAULAS :
echo '
'.$TbMsg[22].' '.$TbMsg[25].' '.$nombreambito.'
';
$cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE tipo=".$AMBITO_GRUPOSAULAS." AND idgrupo=".$idambito;
RecorreGruposAulas($cmd);
break;
case $LITAMBITO_AULAS :
$cmd->texto="SELECT idaula,nombreaula FROM aulas WHERE idaula=".$idambito;
RecorreAulas($cmd);
break;
case $LITAMBITO_GRUPOSORDENADORES :
echo '
'.$TbMsg[22].' '.$TbMsg[26].' '.$nombreambito.'
';
$cmd->texto="SELECT idgrupo,nombregrupoordenador FROM gruposordenadores WHERE idgrupo=".$idambito;
RecorreGruposOrdenadores($cmd);
pintaordenadores();
break;
}
$flotante=new MenuContextual(); // Crea objeto MenuContextual
$XMLcontextual=ContextualXMLAulas(); // Crea contextual de aulas
echo $flotante->CreaMenuContextual($XMLcontextual);
$XMLcontextual=ContextualXMLOrdenadores(); // Crea contextual de ordenadores
echo $flotante->CreaMenuContextual($XMLcontextual);
// Crea contextual de los comandos para los distintos �bitos
$XMLcontextual=ContextualXMLComandos($LITAMBITO_AULAS,$AMBITO_AULAS);
echo $flotante->CreaMenuContextual($XMLcontextual);
$XMLcontextual=ContextualXMLComandos($LITAMBITO_ORDENADORES,$AMBITO_ORDENADORES);
echo $flotante->CreaMenuContextual($XMLcontextual);
// Crea submenu contextual de clas de acciones
$XMLcontextual=ContextualXMLColasAcciones(); // Crea submenu contextual de acciones
echo $flotante->CreaMenuContextual($XMLcontextual);
//________________________________________________________________________________________________________
include_once("../includes/iframecomun.php");
//________________________________________________________________________________________________________
?>
//________________________________________________________________________________________________________
function RecorreCentro($cmd){
global $AMBITO_GRUPOSAULAS;
$rs=new Recordset;
$rs->Comando=&$cmd;
if (!$rs->Abrir()) return; // Error al abrir recordset
$rs->Primero();
if(!$rs->EOF){
$idcentro=$rs->campos["idcentro"];
$cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE idcentro=".$idcentro." AND grupoid=0 AND tipo=".$AMBITO_GRUPOSAULAS." ORDER BY nombregrupo ";
RecorreGruposAulas($cmd);
$cmd->texto="SELECT idaula,nombreaula FROM aulas WHERE idcentro=".$idcentro." AND grupoid=0 ORDER BY nombreaula";
RecorreAulas($cmd);
}
$rs->Cerrar();
}
//________________________________________________________________________________________________________
function RecorreGruposAulas($cmd){
global $AMBITO_GRUPOSAULAS;
$rs=new Recordset;
$rs->Comando=&$cmd;
if (!$rs->Abrir()) return; // Error al abrir recordset
$rs->Primero();
while (!$rs->EOF){
$idgrupo=$rs->campos["idgrupo"];
$cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE grupoid=".$idgrupo." AND tipo=".$AMBITO_GRUPOSAULAS." ORDER BY nombregrupo";
RecorreGruposAulas($cmd);
$cmd->texto="SELECT idaula,nombreaula FROM aulas WHERE grupoid=".$idgrupo." ORDER BY nombreaula";
RecorreAulas($cmd);
$rs->Siguiente();
}
$rs->Cerrar();
}
//________________________________________________________________________________________________________
function RecorreAulas($cmd){
global $idaula;
global $nombreaula;
global $k; // Indice de la Matriz
global $cadenaip;
$rs=new Recordset;
$rs->Comando=&$cmd;
if (!$rs->Abrir()) return; // Error al abrir recordset
$rs->Primero();
while (!$rs->EOF){
$idaula=$rs->campos["idaula"];
$nombreaula=$rs->campos["nombreaula"];
$cmd->texto="SELECT idordenador,nombreordenador,ip,mac FROM ordenadores WHERE idaula=".$idaula;
$k=0;
$cadenaip="";
RecorreOrdenadores($cmd);
pintaordenadores();
$rs->Siguiente();
}
$rs->Cerrar();
}
//________________________________________________________________________________________________________
function RecorreGruposOrdenadores($cmd){
$rs=new Recordset;
$rs->Comando=&$cmd;
if (!$rs->Abrir()) return; // Error al abrir recordset
$rs->Primero();
while (!$rs->EOF){
$idgrupo=$rs->campos["idgrupo"];
$cmd->texto="SELECT idgrupo,nombregrupoordenador FROM gruposOrdenadores WHERE grupoid=".$idgrupo." ORDER BY nombregrupoordenador";
RecorreGruposOrdenadores($cmd);
$cmd->texto="SELECT idordenador,nombreordenador,ip,mac FROM ordenadores WHERE grupoid=".$idgrupo;
RecorreOrdenadores($cmd);
$rs->Siguiente();
}
$rs->Cerrar();
}
//________________________________________________________________________________________________________
function RecorreOrdenadores($cmd){
global $Midordenador;
global $Mnombreordenador;
global $MimgOrdenador;
global $Mip;
global $Mmac;
global $k; // Indice de la Matriz
global $cadenaip;
global $idsrvrembo;
global $idsrvdhcp;
if (!empty($idsrvrembo)) $cmd->texto.=" AND idservidorrembo=".$idsrvrembo ;
if (!empty($idsrvdhcp)) $cmd->texto.=" AND idservidordhcp=".$idsrvdhcp ;
$cmd->texto.= " ORDER BY nombreordenador";
$rs=new Recordset;
$rs->Comando=&$cmd;
if (!$rs->Abrir()) return; // Error al abrir recordset
$rs->Primero();
while (!$rs->EOF){
$idordenador=$rs->campos["idordenador"];
$Midordenador[$k]=$rs->campos["idordenador"];
$Mnombreordenador[$k]=$rs->campos["nombreordenador"];
$MimgOrdenador[$k]="ordenador_OFF.gif";
$Mip[$k]=$rs->campos["ip"];
$Mmac[$k]=$rs->campos["mac"];
$cadenaip.=$rs->campos["ip"].";";
$k++;
$rs->Siguiente();
}
$rs->Cerrar();
}
//________________________________________________________________________________________________________
function pintaordenadores(){
global $AMBITO_AULAS;
global $AMBITO_ORDENADORES;
global $LITAMBITO_AULAS;
global $LITAMBITO_ORDENADORES;
global $LONCABECERA;
global $Midordenador;
global $Mnombreordenador;
global $MimgOrdenador;
global $Mip;
global $Mmac;
global $k; // Indice de la Matriz
global $cadenaip;
global $idaula;
global $nombreaula;
global $servidorhidra,$hidraport;
global $TbMsg;
$shidra=new SockHidra($servidorhidra,$hidraport);
$parametros="1"; // Ejecutor
$parametros.="nfn=Sondeo".chr(13);
$parametros.="iph=".$cadenaip.chr(13);
$resul=$shidra->conectar(); // Se ha establecido la conexióncon el servidor hidra
if($resul){
$resul=$shidra->envia_comando($parametros);
$trama=$shidra->recibe_respuesta();
$parametros=substr($trama,$LONCABECERA,strlen($trama)-$LONCABECERA);
$ValorParametros=extrae_parametros($parametros,chr(13),'=');
$trama_notificacion=$ValorParametros["tso"];
$shidra->desconectar();
}
for($i=0;$i<$k;$i++){ // Vuelve a recorrer los datos de ordenadores para crear HTML
$patron=$Mip[$i].'/';
$pos=EnCadena($trama_notificacion,$patron);
if($pos>-1){
$tiposo=substr($trama_notificacion,$pos+strlen($patron),3);
switch($tiposo){
case 'INI':
$MimgOrdenador[$i]="ordenador_INI.gif"; // Cliente ocupado
break;
case 'BSY':
$MimgOrdenador[$i]="ordenador_BSY.gif"; // Cliente ocupado
break;
case 'RMB':
$MimgOrdenador[$i]="ordenador_RMB.gif"; // Cliente Rembo
break;
case 'WS2':
$MimgOrdenador[$i]="ordenador_WS2.gif"; // Windows Server 2003
break;
case 'W2K':
$MimgOrdenador[$i]="ordenador_W2K.gif"; // Windows 2000
break;
case 'WXP':
$MimgOrdenador[$i]="ordenador_WXP.gif"; // Windows XP
break;
case 'WNT':
$MimgOrdenador[$i]="ordenador_WNT.gif"; // Windows NT
break;
case 'W95':
$MimgOrdenador[$i]="ordenador_W95.gif"; // Windows 95
break;
case 'W98':
$MimgOrdenador[$i]="ordenador_W98.gif"; // Windows 98
break;
case 'WML':
$MimgOrdenador[$i]="ordenador_WML.gif"; // Windows Millenium
break;
case 'LNX':
$MimgOrdenador[$i]="ordenador_LNX.gif"; // Linux
break;
}
}
}
$ntr=0; // Numero de ordenadores por fila
if ($nombreaula!=""){
echo '
';
echo '
'.$TbMsg[23].''.$nombreaula.'
';
}
echo '
';
for($i=0;$i<$k;$i++){ // Vuelve a recorrer los datos de ordenadores para crear HTML
$ntr++;
echo '