'?> '?> '.$TbMsg[22].'
'.$TbMsg[24].'
'.$nombreambito.'

'; $cmd->texto="SELECT idcentro,nombrecentro FROM centros WHERE idcentro=".$idambito; RecorreCentro($cmd); break; case $LITAMBITO_GRUPOSAULAS : $ambito=$AMBITO_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 : $ambito=$AMBITO_AULAS; $cmd->texto="SELECT idaula, nombreaula, idordprofesor FROM aulas WHERE idaula=".$idambito; RecorreAulas($cmd); break; case $LITAMBITO_GRUPOSORDENADORES : $ambito=$AMBITO_GRUPOSORDENADORES; echo '

'.$TbMsg[22].'
'.$TbMsg[26].'
'.$nombreambito.'

'; $cmd->texto="SELECT idgrupo,nombregrupoordenador FROM gruposordenadores WHERE idgrupo=".$idambito; RecorreGruposOrdenadores($cmd); pintaordenadores(); break; } ?>
CreaMenuContextual($XMLcontextual); $XMLcontextual=ContextualXMLOrdenadores(); // Crea contextual de ordenadores echo $flotante->CreaMenuContextual($XMLcontextual); // Crea contextual de los comandos para los distintosn ámbitos $XMLcontextual=ContextualXMLComandos($LITAMBITO_AULAS,$AMBITO_AULAS); echo $flotante->CreaMenuContextual($XMLcontextual); $XMLcontextual=ContextualXMLComandos($LITAMBITO_ORDENADORES,$AMBITO_ORDENADORES); echo $flotante->CreaMenuContextual($XMLcontextual); // Crea contextual de los asistentes para los distintosn ámbitos $XMLcontextual=ContextualXMLAsistentes($LITAMBITO_AULAS,$AMBITO_AULAS); echo $flotante->CreaMenuContextual($XMLcontextual); $XMLcontextual=ContextualXMLAsistentes($LITAMBITO_ORDENADORES,$AMBITO_ORDENADORES); echo $flotante->CreaMenuContextual($XMLcontextual); // Crea contextual de los comandos para los distintos ámbitos $XMLcontextual=ContextualXMLSincronizacion($LITAMBITO_AULAS,$AMBITO_AULAS); echo $flotante->CreaMenuContextual($XMLcontextual); $XMLcontextual=ContextualXMLSincronizacion($LITAMBITO_ORDENADORES,$AMBITO_ORDENADORES); echo $flotante->CreaMenuContextual($XMLcontextual); // Crea contextual de los comandos para los distintos �bitos $XMLcontextual=ContextualXMLDiferenciacion($LITAMBITO_AULAS,$AMBITO_AULAS); echo $flotante->CreaMenuContextual($XMLcontextual); $XMLcontextual=ContextualXMLDiferenciacion($LITAMBITO_ORDENADORES,$AMBITO_ORDENADORES); echo $flotante->CreaMenuContextual($XMLcontextual); ?> 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,idordprofesor FROM aulas WHERE grupoid=".$idgrupo." ORDER BY nombreaula"; RecorreAulas($cmd); $rs->Siguiente(); } $rs->Cerrar(); } //________________________________________________________________________________________________________ function RecorreAulas($cmd){ global $idaula; global $nombreaula; global $idordprofesor; 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"]; $idordprofesor=$rs->campos["idordprofesor"]??0; $cmd->texto="SELECT * 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 * FROM ordenadores WHERE grupoid='$idgrupo'"; RecorreOrdenadores($cmd); $rs->Siguiente(); } $rs->Cerrar(); } //________________________________________________________________________________________________________ function RecorreOrdenadores($cmd){ global $Midordenador; global $Mnombreordenador; global $MimgOrdenador; global $Mrow; global $Mcol; global $Mip; global $Mmac; global $Mmaintenance; global $map; // Mapa del aula global $max_col; // Nº máximo de columnas del aula global $k; // Indice de la Matriz global $cadenaip; $cmd->texto.= " ORDER BY n_row, n_col"; $rs=new Recordset; $rs->Comando=&$cmd; if (!$rs->Abrir()) return; // Error al abrir recordset $rs->Primero(); $max_col=0; while (!$rs->EOF){ $idordenador=$rs->campos["idordenador"]; $Midordenador[$k]=$rs->campos["idordenador"]; $Mnombreordenador[$k]=$rs->campos["nombreordenador"]; $MimgOrdenador[$k]="ordenador_OFF.png"; $Mrow[$k]=$rs->campos["n_row"]??0; $Mcol[$k]=$rs->campos["n_col"]??0; // Calcula nº máximo de columnas para pintar el aula (-1, modo antiguo) if ($max_col === -1 or $Mrow[$k] === '0' or $Mcol[$k] === '0' or isset($map[$Mrow[$k]][$Mcol[$k]])) { $max_col = -1; } else { $max_col = max($max_col, $Mcol[$k]); $map[$Mrow[$k]][$Mcol[$k]]=$k; } $Mip[$k]=$rs->campos["ip"]; $Mmac[$k]=$rs->campos["mac"]; $cadenaip.=$rs->campos["ip"].";"; $Mmaintenance[$k]=$rs->campos["maintenance"]??0; $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 $Mrow; global $Mcol; global $Mip; global $Mmac; global $Mmaintenance; global $k; // Indice de la Matriz global $cadenaip; global $idaula; global $nombreaula; global $idordprofesor; global $servidorhidra,$hidraport; global $TbMsg; global $map; global $max_col; $clients = clients_v2(2, $Mip); $get_speed = function($cli) { return $cli['speed'] ? $cli['speed'] : '-1'; }; $speeds = array_map($get_speed, $clients['clients']); $ntr=0; // Numero de ordenadores por fila if ($nombreaula!=""){ echo '
'; echo '

  '.$TbMsg[23].'
'.$nombreaula.'

'; } echo ''; if ($max_col === -1) { // Modo antiguo echo ''; for($i=0;$i<$k;$i++){ // Vuelve a recorrer los datos de ordenadores para crear HTML $ntr++; echo ''; if ($ntr>4){ $ntr=0; echo ''; } } } else { foreach ($map as $i => $tmp) { echo ""; for ($j=1; $j<=$max_col; $j++) { echo ''; } } } echo '
'; echo ''; echo ''; echo ' '; echo ''; echo ''; echo ''; echo ''; echo '
'; echo ' '; echo '
'; echo ' '.$Mnombreordenador[$i].($Midordenador[$i]==$idordprofesor?' *':'').''; echo '
'; echo ' '; echo ' '.$Mip[$i].''; echo '
'; echo ' '.$Mmac[$i].''; echo '
'; if ($speeds[$i] > 0 && $speeds[$i] < 1000) { echo ' '.$speeds[$i].' Mbit'; } if ($speeds[$i] > 0 && $speeds[$i] >= 1000) { echo ' '.$speeds[$i].' Mbit'; } echo '
'; echo '
'; echo ''; echo ''; echo ' '; echo ''; echo '
'; if (isset($map[$i][$j])) { $n=$map[$i][$j]; echo '
'; echo ' '; echo '
'; echo ' '.$Mnombreordenador[$n].($Midordenador[$n]==$idordprofesor?' *':'').''; echo '
'; echo ' '; echo ' '.$Mip[$n].''; echo '
'; echo ' '.$Mmac[$n].''; } echo '
'; echo '
'; echo '

'; echo ''; echo ' '; foreach (Array ("OPG", "WIN", "LNX", "OSX") as $status) { echo ' '; } echo ' '; echo ' '; foreach (Array ("BSY", "WINS", "LNXS", "VDI") as $status) { echo ' '; } echo ' '; echo ' '; foreach (Array ("OFF", "MNT", "WOL_SENT") as $status) { echo ' '; } echo ' '; echo '
'.$status.'
'.$TbMsg["STATUS_$status"].'
'.$status.'
'.str_replace(" ", "
", $TbMsg["STATUS_$status"]).'
'.$status.'
'.str_replace(" ", "
", $TbMsg["STATUS_$status"]).'
'; if ($nombreaula!="") echo '

'; } //________________________________________________________________________________________________________ function ContextualXMLAulas(){ global $TbMsg; global $AMBITO_AULAS; global $LITAMBITO_AULAS; global $RESERVA_CONFIRMADA; global $OPERADOR; $layerXML='texto="SELECT idcomando,descripcion,pagina,gestor,funcion FROM comandos WHERE activo=1 AND submenu='' AND aplicambito & ".$ambito.">0 ORDER BY descripcion"; $rs->Comando=&$cmd; if ($rs->Abrir()){ $layerXML=""; $rs->Primero(); while (!$rs->EOF){ $descrip=$TbMsg["COMMAND_".$rs->campos["funcion"]]; if (empty ($descrip)) { $descrip=$rs->campos["descripcion"]; } $layerXML.='campos["idcomando"].',\''.$rs->campos["descripcion"].'\',\''.$rs->campos["pagina"]. '\',\''.$rs->campos["gestor"]. '\',\''.$rs->campos["funcion"]. '\')"'; $layerXML.=' textoitem="'.$descrip.'"'; $layerXML.='>'; if ($maxlongdescri < strlen($descrip)) // Toma la Descripción de mayor longitud $maxlongdescri=strlen($descrip); $rs->Siguiente(); } $layerXML.=''; $prelayerXML='texto="SELECT idcomando,descripcion,pagina,gestor,funcion FROM comandos WHERE activo=1 AND submenu='Sincronizacion' AND aplicambito & ".$ambito.">0 ORDER BY descripcion"; $rs->Comando=&$cmd; if ($rs->Abrir()){ $layerXML=""; $rs->Primero(); while (!$rs->EOF){ $descrip=$TbMsg["COMMAND_".$rs->campos["funcion"]]; if (empty ($descrip)) { $descrip=$rs->campos["descripcion"]; } $layerXML.='campos["idcomando"].',\''.$rs->campos["descripcion"].'\',\''.$rs->campos["pagina"]. '\',\''.$rs->campos["gestor"]. '\',\''.$rs->campos["funcion"]. '\')"'; $layerXML.=' textoitem="'.$descrip.'"'; $layerXML.='>'; if ($maxlongdescri < strlen($descrip)) // Toma la Descripción de mayor longitud $maxlongdescri=strlen($descrip); $rs->Siguiente(); } $layerXML.=''; $prelayerXML='texto="SELECT idcomando,descripcion,pagina,gestor,funcion FROM comandos WHERE activo=1 AND submenu='diferenciacion' AND aplicambito & ".$ambito.">0 ORDER BY descripcion"; $rs->Comando=&$cmd; if ($rs->Abrir()){ $layerXML=""; $rs->Primero(); while (!$rs->EOF){ $descrip=$TbMsg["COMMAND_".$rs->campos["funcion"]]; if (empty ($descrip)) { $descrip=$rs->campos["descripcion"]; } $layerXML.='campos["idcomando"].',\''.$rs->campos["descripcion"].'\',\''.$rs->campos["pagina"]. '\',\''.$rs->campos["gestor"]. '\',\''.$rs->campos["funcion"]. '\')"'; $layerXML.=' textoitem="'.$descrip.'"'; $layerXML.='>'; if ($maxlongdescri < strlen($descrip)) // Toma la Descripción de mayor longitud $maxlongdescri=strlen($descrip); $rs->Siguiente(); } $layerXML.=''; $prelayerXML='texto="SELECT idcomando,descripcion,pagina,gestor,funcion FROM asistentes WHERE activo=1 AND aplicambito & ".$ambito.">0 ORDER BY descripcion"; $rs->Comando=&$cmd; if ($rs->Abrir()){ $layerXML=""; $rs->Primero(); while (!$rs->EOF){ $descrip=$TbMsg["WIZARD_".$rs->campos["descripcion"]]; if (empty ($descrip)) { $descrip=$rs->campos["descripcion"]; } $layerXML.='campos["idcomando"].',\''.$rs->campos["descripcion"].'\',\''.$rs->campos["pagina"]. '\',\''.$rs->campos["gestor"]. '\',\''.$rs->campos["funcion"]. '\')"'; $layerXML.=' textoitem="'.$descrip.'"'; $layerXML.='>'; if($maxlongdescriSiguiente(); } $layerXML.=''; $prelayerXML='