| [3ec149c] | 1 | <?php | 
|---|
|  | 2 | /*________________________________________________________________________________________________________ | 
|---|
|  | 3 | La clave de configuración está formada por una serie de valores separados por ";" | 
|---|
|  | 4 | Ejemplo:1;7;30000000;3;3;0;11 | 
|---|
|  | 5 |  | 
|---|
|  | 6 | Parámetros: | 
|---|
|  | 7 | 1) Número de partición | 
|---|
|  | 8 | 2) Código de la partición | 
|---|
|  | 9 | 3) Tamaño | 
|---|
|  | 10 | 4) Identificador del sistema de ficheros instalado en la partición | 
|---|
|  | 11 | 5) Identificador del nombre del sistema operativo instalado en la partición | 
|---|
|  | 12 | 6) Identificador de la imagen restaurada en la partición | 
|---|
|  | 13 | 7) Identificador del perfil software que contiene el S.O. instalado en la partición | 
|---|
|  | 14 |  | 
|---|
|  | 15 | Además de este campo, la consulta almacena la descripción de los identificadores que forman parte | 
|---|
|  | 16 | de esta clave compuesta de manera que el tiempo de acceso para recuperlarlos sean corto | 
|---|
|  | 17 | ya que están en memoria y no en tablas. | 
|---|
|  | 18 |  | 
|---|
|  | 19 | En el ejempo anterior podríamos tener datos | 
|---|
|  | 20 | 1        NTFS   30000000        Windows NTFS    Windows XP profesional          NULL    Perfil Software (CUR-8, Part:1) | 
|---|
|  | 21 | Que indica: | 
|---|
|  | 22 | 1) Número de partición | 
|---|
|  | 23 | 2) Código de la partición | 
|---|
|  | 24 | 3) Tamaño | 
|---|
|  | 25 | 4) Descripción del sistema de ficheros instalado en la partición | 
|---|
|  | 26 | 5) Descripción del nombre del sistema operativo instalado en la partición | 
|---|
|  | 27 | 6) Descripción de la imagen restaurada en la partición | 
|---|
|  | 28 | 7) Descripción del perfil software que contiene el S.O. instalado en la partición | 
|---|
|  | 29 |  | 
|---|
|  | 30 | Estos datos se guardan en la misma tabla de claves que será una matriz asociativa. | 
|---|
|  | 31 |  | 
|---|
|  | 32 | Parámetros de la función: | 
|---|
|  | 33 | $cmd: Objeto comando (Operativo) | 
|---|
|  | 34 | $idambito: Identificador del ámbito (identificador del Aula, grupo de ordenador u ordenador) | 
|---|
|  | 35 | $ambito: Tipo de ambito (Aulas, grupos de ordenadores u ordenadores) | 
|---|
|  | 36 | $sws: Switchs que indican el nivel de agrupamiento de los ordenadores para ser tratados | 
|---|
|  | 37 | Se trata de un octeto de manera que si tiene un "1" en la posición determinada | 
|---|
|  | 38 | indica que se requiere desplegar por ese parámetro: | 
|---|
|  | 39 | 00000001- No agrupar por Sistema de ficheros | 
|---|
|  | 40 | 00000010- No agrupar por Nombre de sistema Operativo | 
|---|
|  | 41 | 00000100- No agrupar por Tamaño de partición | 
|---|
|  | 42 | 00001000- No agrupar por Imagen instalada | 
|---|
|  | 43 | 00010000- No agrupar por Perfil software contenido | 
|---|
|  | 44 | $swr: Indica  si se se tiene en cuenta las particiones no clonables (si:true o no:false) | 
|---|
|  | 45 | ________________________________________________________________________________________________________*/ | 
|---|
|  | 46 | function cargaCaves($cmd,$idambito,$ambito,$sws,$swr) | 
|---|
|  | 47 | { | 
|---|
|  | 48 | global $tbKeys; // Tabla contenedora de claves de configuración | 
|---|
|  | 49 | global $conKeys; // Contador de claves de configuración | 
|---|
|  | 50 | global $AMBITO_AULAS; | 
|---|
|  | 51 | global $AMBITO_GRUPOSORDENADORES; | 
|---|
|  | 52 | global $AMBITO_ORDENADORES; | 
|---|
|  | 53 |  | 
|---|
|  | 54 | global $msk_sysFi; | 
|---|
|  | 55 | global $msk_nombreSO; | 
|---|
|  | 56 | global $msk_tamano; | 
|---|
|  | 57 | global $msk_imagen; | 
|---|
|  | 58 | global $msk_perfil; | 
|---|
|  | 59 |  | 
|---|
|  | 60 | $cmd->texto="SELECT | 
|---|
|  | 61 | concat_WS( ';', | 
|---|
|  | 62 | ordenadores_particiones.numpar, "; | 
|---|
|  | 63 |  | 
|---|
|  | 64 | if($sws & $msk_tamano) | 
|---|
|  | 65 | $cmd->texto.="  ordenadores_particiones.tamano,"; | 
|---|
|  | 66 |  | 
|---|
|  | 67 |  | 
|---|
|  | 68 | if($sws & $msk_sysFi) | 
|---|
|  | 69 | $cmd->texto.="  ordenadores_particiones.idsistemafichero, "; | 
|---|
|  | 70 |  | 
|---|
|  | 71 | if($sws & $msk_nombreSO) | 
|---|
|  | 72 | $cmd->texto.="  ordenadores_particiones.idnombreso, "; | 
|---|
|  | 73 |  | 
|---|
|  | 74 | if($sws & $msk_imagen) | 
|---|
|  | 75 | $cmd->texto.="  ordenadores_particiones.idimagen, "; | 
|---|
|  | 76 |  | 
|---|
|  | 77 | if($sws & $msk_perfil) | 
|---|
|  | 78 | $cmd->texto.="  ordenadores_particiones.idperfilsoft, "; | 
|---|
|  | 79 |  | 
|---|
|  | 80 | $cmd->texto.=" ordenadores_particiones.codpar) as configuracion, | 
|---|
|  | 81 | ordenadores_particiones.numpar , | 
|---|
| [b7b8b6f] | 82 | ordenadores_particiones.codpar , | 
|---|
| [3ec149c] | 83 | tipospar.tipopar, | 
|---|
|  | 84 | tipospar.clonable, | 
|---|
|  | 85 | ordenadores_particiones.tamano, | 
|---|
|  | 86 | sistemasficheros.descripcion as sistemafichero, | 
|---|
|  | 87 | ordenadores_particiones.idnombreso, | 
|---|
|  | 88 | nombresos.nombreso, | 
|---|
|  | 89 | imagenes.idimagen, | 
|---|
|  | 90 | imagenes.descripcion as imagen, | 
|---|
| [b7b8b6f] | 91 | imagenes.nombreca as nombreca, | 
|---|
|  | 92 | imagenes.idrepositorio as repositorio, | 
|---|
| [3ec149c] | 93 | ordenadores_particiones.idperfilsoft, | 
|---|
|  | 94 | perfilessoft.descripcion as perfilsoft | 
|---|
|  | 95 |  | 
|---|
|  | 96 | FROM ordenadores | 
|---|
|  | 97 | INNER JOIN ordenadores_particiones ON ordenadores_particiones.idordenador=ordenadores.idordenador | 
|---|
|  | 98 | LEFT OUTER JOIN nombresos ON nombresos.idnombreso=ordenadores_particiones.idnombreso | 
|---|
|  | 99 | INNER JOIN tipospar ON tipospar.codpar=ordenadores_particiones.codpar | 
|---|
|  | 100 | LEFT OUTER JOIN imagenes ON imagenes.idimagen=ordenadores_particiones.idimagen | 
|---|
|  | 101 | LEFT OUTER JOIN perfilessoft ON perfilessoft.idperfilsoft=ordenadores_particiones.idperfilsoft | 
|---|
|  | 102 | LEFT OUTER JOIN sistemasficheros ON sistemasficheros.idsistemafichero=ordenadores_particiones.idsistemafichero"; | 
|---|
|  | 103 |  | 
|---|
|  | 104 | switch($ambito){ | 
|---|
|  | 105 | case $AMBITO_AULAS : | 
|---|
|  | 106 | $cmd->texto.=" INNER JOIN aulas ON aulas.idaula = ordenadores.idaula | 
|---|
|  | 107 | WHERE aulas.idaula =".$idambito; | 
|---|
|  | 108 | break; | 
|---|
|  | 109 | case $AMBITO_GRUPOSORDENADORES : | 
|---|
|  | 110 | $cmd->texto.=" INNER JOIN gruposordenadores ON gruposordenadores.idgrupo = ordenadores.grupoid | 
|---|
|  | 111 | WHERE gruposordenadores.idgrupo =".$idambito; | 
|---|
|  | 112 | break; | 
|---|
|  | 113 | case $AMBITO_ORDENADORES : | 
|---|
|  | 114 | $cmd->texto.=" WHERE ordenadores.idordenador =".$idambito; | 
|---|
|  | 115 | break; | 
|---|
|  | 116 | } | 
|---|
|  | 117 | if($swr) // Si se trata de restauración no se tiene en cuenta las partciones no clonables | 
|---|
|  | 118 | $cmd->texto.=" AND tipospar.clonable=1 "; | 
|---|
|  | 119 |  | 
|---|
|  | 120 | $cmd->texto.=" GROUP by configuracion"; | 
|---|
|  | 121 | //echo "carga claves:".$cmd->texto; | 
|---|
|  | 122 | $rs=new Recordset; | 
|---|
|  | 123 | $rs->Comando=&$cmd; | 
|---|
|  | 124 | if (!$rs->Abrir()) return($tablaHtml); // Error al abrir recordset | 
|---|
|  | 125 | $rs->Primero(); | 
|---|
|  | 126 | $idx=0; | 
|---|
|  | 127 | //echo $cmd->texto; | 
|---|
|  | 128 | while (!$rs->EOF){ | 
|---|
|  | 129 | $tbKeys[$idx]["cfg"]=$rs->campos["configuracion"]; | 
|---|
|  | 130 | $tbKeys[$idx]["numpar"]=$rs->campos["numpar"]; | 
|---|
|  | 131 | $tbKeys[$idx]["codpar"]=$rs->campos["codpar"]; | 
|---|
|  | 132 | $tbKeys[$idx]["tipopar"]=$rs->campos["tipopar"]; | 
|---|
|  | 133 | $tbKeys[$idx]["clonable"]=$rs->campos["clonable"]; | 
|---|
|  | 134 | $tbKeys[$idx]["tamano"]=$rs->campos["tamano"]; | 
|---|
|  | 135 | $tbKeys[$idx]["sistemafichero"]=$rs->campos["sistemafichero"]; | 
|---|
|  | 136 | $tbKeys[$idx]["idnombreso"]=$rs->campos["idnombreso"]; | 
|---|
|  | 137 | $tbKeys[$idx]["nombreso"]=$rs->campos["nombreso"]; | 
|---|
|  | 138 | $tbKeys[$idx]["idimagen"]=$rs->campos["idimagen"]; | 
|---|
|  | 139 | $tbKeys[$idx]["imagen"]=$rs->campos["imagen"]; | 
|---|
|  | 140 | $tbKeys[$idx]["nombreca"]=$rs->campos["nombreca"]; | 
|---|
|  | 141 | $tbKeys[$idx]["repositorio"]=$rs->campos["repositorio"]; | 
|---|
|  | 142 | $tbKeys[$idx]["idperfilsoft"]=$rs->campos["idperfilsoft"]; | 
|---|
|  | 143 | $tbKeys[$idx]["perfilsoft"]=$rs->campos["perfilsoft"]; | 
|---|
|  | 144 | $idx++; | 
|---|
|  | 145 | $rs->Siguiente(); | 
|---|
|  | 146 | } | 
|---|
|  | 147 | $conKeys=$idx; // Guarda contador | 
|---|
|  | 148 | $rs->Cerrar(); | 
|---|
|  | 149 | } | 
|---|
|  | 150 | /*________________________________________________________________________________________________________ | 
|---|
|  | 151 | Dibuja la tabla de configuración de las particiones de un grupo de ordenadores | 
|---|
|  | 152 |  | 
|---|
|  | 153 | Parámetros de la función: | 
|---|
|  | 154 | $cmd: Objeto comando (Operativo) | 
|---|
|  | 155 | $idambito: Identificador del ámbito (identificador del Aula, grupo de ordenador u ordenador) | 
|---|
|  | 156 | $ambito: Tipo de ambito (Aulas, grupos de ordenadores u ordenadores) | 
|---|
|  | 157 | $sws: Switchs que indican el nivel de agrupamiento (ver comentarios de la función(cargaCaves) | 
|---|
|  | 158 | $swr: Indica  si se se tiene en cuenta las particiones no clonables (true:sólo conables , false:todas) | 
|---|
|  | 159 |  | 
|---|
|  | 160 | Especificaciones: | 
|---|
|  | 161 | Esta función llama a pintaParticiones() que es realmente la encargada de mostrar o bien la | 
|---|
|  | 162 | configuración de los ordenadores o la pantalla de los comandos "Configurar" o "RestaurarImagen" | 
|---|
|  | 163 | para permitir introducir los    datos necesarios. | 
|---|
|  | 164 | ________________________________________________________________________________________________________*/ | 
|---|
|  | 165 | function pintaConfiguraciones($cmd,$idambito,$ambito,$colums,$sws,$swr) | 
|---|
|  | 166 | { | 
|---|
|  | 167 | global $AMBITO_AULAS; | 
|---|
|  | 168 | global $AMBITO_GRUPOSORDENADORES; | 
|---|
|  | 169 | global $AMBITO_ORDENADORES; | 
|---|
|  | 170 |  | 
|---|
|  | 171 | global $msk_sysFi; | 
|---|
|  | 172 | global $msk_nombreSO; | 
|---|
|  | 173 | global $msk_tamano; | 
|---|
|  | 174 | global $msk_imagen; | 
|---|
|  | 175 | global $msk_perfil; | 
|---|
|  | 176 |  | 
|---|
|  | 177 | cargaCaves($cmd,$idambito,$ambito,$sws,$swr); | 
|---|
|  | 178 | cargaSistemasFicheros($cmd,$idambito,$ambito); | 
|---|
|  | 179 | cargaPerfiles($cmd,$idambito,$ambito); | 
|---|
|  | 180 | cargaImagenes($cmd,$idambito,$ambito); | 
|---|
|  | 181 | cargaNombresSO($cmd,$idambito,$ambito); | 
|---|
|  | 182 | cargaTamano($cmd,$idambito,$ambito); | 
|---|
|  | 183 |  | 
|---|
| [a57dbd8] | 184 | $cmd->texto="SELECT     COUNT(*) AS con, | 
|---|
|  | 185 | GROUP_CONCAT(CAST( temp2.idordenador AS CHAR(11) )  ORDER BY temp2.idordenador SEPARATOR ',' ) AS idordenadores, | 
|---|
| [b7b8b6f] | 186 | temp2.configuraciones | 
|---|
|  | 187 | FROM (SELECT | 
|---|
| [a57dbd8] | 188 | temp1.idordenador AS idordenador, | 
|---|
|  | 189 | GROUP_CONCAT(CAST( temp1.configuracion AS CHAR(250) )  ORDER BY temp1.configuracion SEPARATOR '@' ) AS configuraciones | 
|---|
| [b7b8b6f] | 190 | FROM (SELECT ordenadores_particiones.idordenador, | 
|---|
|  | 191 | ordenadores_particiones.numpar, | 
|---|
|  | 192 | concat_WS( ';', | 
|---|
|  | 193 | ordenadores_particiones.numpar, "; | 
|---|
|  | 194 |  | 
|---|
| [a57dbd8] | 195 | if($sws & $msk_tamano) | 
|---|
| [3ec149c] | 196 | $cmd->texto.="  ordenadores_particiones.tamano,"; | 
|---|
| [b7b8b6f] | 197 |  | 
|---|
| [a57dbd8] | 198 | if($sws & $msk_sysFi) | 
|---|
| [3ec149c] | 199 | $cmd->texto.="  ordenadores_particiones.idsistemafichero, "; | 
|---|
| [b7b8b6f] | 200 |  | 
|---|
| [a57dbd8] | 201 | if($sws & $msk_nombreSO) | 
|---|
| [b7b8b6f] | 202 | $cmd->texto.="  ordenadores_particiones.idnombreso, "; | 
|---|
|  | 203 |  | 
|---|
| [a57dbd8] | 204 | if($sws & $msk_imagen) | 
|---|
| [3ec149c] | 205 | $cmd->texto.="  ordenadores_particiones.idimagen, "; | 
|---|
| [b7b8b6f] | 206 |  | 
|---|
| [a57dbd8] | 207 | if($sws & $msk_perfil) | 
|---|
| [b7b8b6f] | 208 | $cmd->texto.="  ordenadores_particiones.idperfilsoft, "; | 
|---|
| [3ec149c] | 209 |  | 
|---|
| [a57dbd8] | 210 | $cmd->texto.="          ordenadores_particiones.codpar) AS configuracion | 
|---|
| [b7b8b6f] | 211 | FROM ordenadores | 
|---|
|  | 212 | INNER JOIN ordenadores_particiones ON ordenadores_particiones.idordenador=ordenadores.idordenador | 
|---|
|  | 213 | LEFT OUTER JOIN nombresos ON nombresos.idnombreso=ordenadores_particiones.idnombreso | 
|---|
|  | 214 | INNER JOIN tipospar ON tipospar.codpar=ordenadores_particiones.codpar | 
|---|
|  | 215 | LEFT OUTER JOIN imagenes ON imagenes.idimagen=ordenadores_particiones.idimagen | 
|---|
|  | 216 | LEFT OUTER JOIN perfilessoft ON perfilessoft.idperfilsoft=ordenadores_particiones.idperfilsoft | 
|---|
|  | 217 | LEFT OUTER JOIN sistemasficheros ON sistemasficheros.idsistemafichero=ordenadores_particiones.idsistemafichero"; | 
|---|
|  | 218 |  | 
|---|
| [3ec149c] | 219 | switch($ambito){ | 
|---|
|  | 220 | case $AMBITO_AULAS : | 
|---|
| [a57dbd8] | 221 | $cmd->texto.="  INNER JOIN aulas ON aulas.idaula = ordenadores.idaula WHERE aulas.idaula =".$idambito; | 
|---|
|  | 222 | break; | 
|---|
| [3ec149c] | 223 | case $AMBITO_GRUPOSORDENADORES : | 
|---|
| [a57dbd8] | 224 | $cmd->texto.="  INNER JOIN gruposordenadores ON gruposordenadores.idgrupo = ordenadores.grupoid WHERE gruposordenadores.idgrupo =".$idambito; | 
|---|
| [3ec149c] | 225 | break; | 
|---|
|  | 226 | case $AMBITO_ORDENADORES : | 
|---|
| [a57dbd8] | 227 | $cmd->texto.="  WHERE ordenadores.idordenador=".$idambito; | 
|---|
| [3ec149c] | 228 | break; | 
|---|
| [a57dbd8] | 229 | } | 
|---|
|  | 230 | if ($swr) // Si se trata de restauración no se tiene en cuenta las particiones no clonables | 
|---|
| [3ec149c] | 231 | $cmd->texto.=" AND tipospar.clonable=1 "; | 
|---|
|  | 232 |  | 
|---|
| [a57dbd8] | 233 | $cmd->texto.="  ORDER BY ordenadores_particiones.idordenador, ordenadores_particiones.numpar) AS temp1 | 
|---|
|  | 234 | GROUP BY temp1.idordenador) AS temp2 | 
|---|
| [3ec149c] | 235 | GROUP BY temp2.configuraciones | 
|---|
|  | 236 | ORDER BY con desc,idordenadores"; | 
|---|
|  | 237 |  | 
|---|
|  | 238 | //echo  $cmd->texto; | 
|---|
|  | 239 | $rs=new Recordset; | 
|---|
|  | 240 | $rs->Comando=&$cmd; | 
|---|
|  | 241 | if (!$rs->Abrir()) return; // Error al abrir recordset | 
|---|
|  | 242 | $rs->Primero(); | 
|---|
|  | 243 | $cc=0; // Contador de configuraciones | 
|---|
| [b7b8b6f] | 244 | echo '<table  id="tabla_conf" width="95%" class="tabla_listados_sin" align=center border=0 cellPadding=0 cellSpacing=1>'; | 
|---|
| [3ec149c] | 245 | while (!$rs->EOF){ | 
|---|
|  | 246 | $cc++; | 
|---|
|  | 247 | //Muestra ordenadores | 
|---|
| [b7b8b6f] | 248 | echo '<tr><td colspan='.$colums.' style="background-color: #ffffff;">'; | 
|---|
| [3ec149c] | 249 | echo pintaOrdenadores($cmd,$rs->campos["idordenadores"],10,$cc); | 
|---|
| [b7b8b6f] | 250 | echo '</td></tr>'; | 
|---|
| [3ec149c] | 251 | //Muestra particiones y configuración | 
|---|
|  | 252 |  | 
|---|
| [ad1f809] | 253 | echo pintaParticiones($cmd,$rs->campos["configuraciones"],$rs->campos["idordenadores"],$cc,$ambito,$idambito); | 
|---|
| [3ec149c] | 254 | $rs->Siguiente(); | 
|---|
|  | 255 | } | 
|---|
| [b7b8b6f] | 256 | if ($cc == 0) { | 
|---|
| [a57dbd8] | 257 | echo '<tr><th>'.$TbMsg[43].'</th><tr>';  // Cliente sin configuración. | 
|---|
| [b7b8b6f] | 258 | } | 
|---|
|  | 259 | echo "</table>"; | 
|---|
| [3ec149c] | 260 | $rs->Cerrar(); | 
|---|
|  | 261 | } | 
|---|
|  | 262 | //________________________________________________________________________________________________________ | 
|---|
|  | 263 | //      Descripción: | 
|---|
|  | 264 | //              Muestra una taba html con el icono de ordenadores | 
|---|
|  | 265 | //      Parametros: | 
|---|
|  | 266 | //              $cmd: Objeto comando (operativo) | 
|---|
|  | 267 | //              $idordenadores: Cadena con los identificadores de los ordenadores separados por "," | 
|---|
|  | 268 | //              $maxcontor: Número máximo de ordenadores por fila | 
|---|
|  | 269 | //              $cc: Identificador del bloque de configuración | 
|---|
|  | 270 | //________________________________________________________________________________________________________ | 
|---|
|  | 271 | function pintaOrdenadores($cmd,$idordenadores,$maxcontor,$cc) | 
|---|
|  | 272 | { | 
|---|
|  | 273 | $tablaHtml.=""; | 
|---|
|  | 274 | $contor=0; | 
|---|
|  | 275 | $maxcontor=10; // Número máximo de prodenadores por fila | 
|---|
| [a57dbd8] | 276 | $cmd->texto=" SELECT idordenador,nombreordenador,ip FROM ordenadores WHERE idordenador IN (".$idordenadores.") ORDER BY nombreordenador"; | 
|---|
| [3ec149c] | 277 | $rs=new Recordset; | 
|---|
|  | 278 | $rs->Comando=&$cmd; | 
|---|
|  | 279 | if (!$rs->Abrir()) return(""); // Error al abrir recordset | 
|---|
| [a57dbd8] | 280 | $tablaHtml.='<table align="left" border="0" id="tbOrd_'.$cc.'" value="'.$idordenadores.'"><tr>'; | 
|---|
| [3ec149c] | 281 | while (!$rs->EOF){ | 
|---|
|  | 282 | $contor++; | 
|---|
| [a57dbd8] | 283 | $tablaHtml.= '<td align="center" style="BACKGROUND-COLOR: #FFFFFF;"> | 
|---|
|  | 284 | <img src="../images/iconos/ordenador.gif" > | 
|---|
|  | 285 | <br><span style="FONT-SIZE:9px; COLOR: #4f4f4f;" >'.$rs->campos["nombreordenador"].'</span></td>'; | 
|---|
| [3ec149c] | 286 | if($contor>$maxcontor){ | 
|---|
|  | 287 | $contor=0; | 
|---|
| [a57dbd8] | 288 | $tablaHtml.='</tr><tr>'; | 
|---|
| [3ec149c] | 289 | } | 
|---|
|  | 290 | $rs->Siguiente(); | 
|---|
|  | 291 | } | 
|---|
| [a57dbd8] | 292 | $tablaHtml.='</tr>'; | 
|---|
|  | 293 | $tablaHtml.= '</table>'; | 
|---|
| [3ec149c] | 294 | return($tablaHtml); | 
|---|
|  | 295 | } | 
|---|
|  | 296 | /*________________________________________________________________________________________________________ | 
|---|
|  | 297 |  | 
|---|
|  | 298 | Selecciona los ordenadores que tienen el mismo sistema de ficheros del ámbito elegido | 
|---|
|  | 299 | ________________________________________________________________________________________________________*/ | 
|---|
|  | 300 | function cargaSistemasFicheros($cmd,$idambito,$ambito) | 
|---|
|  | 301 | { | 
|---|
|  | 302 | global $tbSysFi; // Tabla contenedora de ordenadores incluidos en la consulta | 
|---|
|  | 303 | global $conSysFi; // Contador de elementos anteriores | 
|---|
|  | 304 | global $AMBITO_AULAS; | 
|---|
|  | 305 | global $AMBITO_GRUPOSORDENADORES; | 
|---|
|  | 306 | global $AMBITO_ORDENADORES; | 
|---|
|  | 307 |  | 
|---|
| [a57dbd8] | 308 | $cmd->texto="SELECT     COUNT(*) AS con, | 
|---|
|  | 309 | ordenadores_particiones.idsistemafichero, | 
|---|
|  | 310 | ordenadores_particiones.numpar, | 
|---|
|  | 311 | sistemasficheros.descripcion AS sistemafichero, | 
|---|
|  | 312 | GROUP_CONCAT(CAST(ordenadores_particiones.idordenador AS CHAR(11) ) | 
|---|
|  | 313 | ORDER BY ordenadores_particiones.idordenador SEPARATOR ',' ) AS ordenadores | 
|---|
|  | 314 | FROM ordenadores | 
|---|
|  | 315 | JOIN ordenadores_particiones ON ordenadores_particiones.idordenador=ordenadores.idordenador | 
|---|
|  | 316 | JOIN sistemasficheros ON sistemasficheros.idsistemafichero=ordenadores_particiones.idsistemafichero"; | 
|---|
| [3ec149c] | 317 |  | 
|---|
|  | 318 | switch($ambito){ | 
|---|
|  | 319 | case $AMBITO_AULAS : | 
|---|
| [a57dbd8] | 320 | $cmd->texto.="  JOIN aulas ON aulas.idaula = ordenadores.idaula | 
|---|
|  | 321 | WHERE aulas.idaula =".$idambito; | 
|---|
|  | 322 | break; | 
|---|
| [3ec149c] | 323 | case $AMBITO_GRUPOSORDENADORES : | 
|---|
| [a57dbd8] | 324 | $cmd->texto.="  INNER JOIN gruposordenadores ON gruposordenadores.idgrupo = ordenadores.grupoid | 
|---|
|  | 325 | WHERE gruposordenadores.idgrupo =".$idambito; | 
|---|
| [3ec149c] | 326 | break; | 
|---|
|  | 327 | case $AMBITO_ORDENADORES : | 
|---|
| [a57dbd8] | 328 | $cmd->texto.="  WHERE ordenadores.idordenador =".$idambito; | 
|---|
| [3ec149c] | 329 | break; | 
|---|
|  | 330 | } | 
|---|
| [a57dbd8] | 331 | $cmd->texto.="          GROUP BY ordenadores_particiones.numpar, ordenadores_particiones.idsistemafichero"; | 
|---|
| [3ec149c] | 332 | //echo "carga sistemas de ficheros:".$cmd->texto; | 
|---|
|  | 333 | $rs=new Recordset; | 
|---|
|  | 334 | $rs->Comando=&$cmd; | 
|---|
|  | 335 | if (!$rs->Abrir()) return; // Error al abrir recordset | 
|---|
|  | 336 | $rs->Primero(); | 
|---|
|  | 337 | $idx=0; | 
|---|
|  | 338 | //echo $cmd->texto; | 
|---|
|  | 339 | while (!$rs->EOF){ | 
|---|
|  | 340 | $tbSysFi[$idx]["idsistemafichero"]=$rs->campos["idsistemafichero"]; | 
|---|
|  | 341 | $tbSysFi[$idx]["numpar"]=$rs->campos["numpar"]; | 
|---|
|  | 342 | $tbSysFi[$idx]["sistemafichero"]=$rs->campos["sistemafichero"]; | 
|---|
|  | 343 | $tbSysFi[$idx]["ordenadores"]=$rs->campos["ordenadores"]; | 
|---|
|  | 344 | $idx++; | 
|---|
|  | 345 | $rs->Siguiente(); | 
|---|
|  | 346 | } | 
|---|
|  | 347 | $conSysFi=$idx; // Guarda contador | 
|---|
|  | 348 | $rs->Cerrar(); | 
|---|
|  | 349 | } | 
|---|
|  | 350 | /*________________________________________________________________________________________________________ | 
|---|
|  | 351 |  | 
|---|
|  | 352 | Toma sistema de ficheros común a los ordenadores pasados como parámetros | 
|---|
|  | 353 | ________________________________________________________________________________________________________*/ | 
|---|
|  | 354 | function tomaSistemasFicheros($numpar,$ordenadores,$sw=false) | 
|---|
|  | 355 | { | 
|---|
| [a57dbd8] | 356 | global $tbSysFi;  // Tabla contenedora de ordenadores incluidos en la consulta | 
|---|
| [3ec149c] | 357 | global $conSysFi; // Contador de elementos anteriores | 
|---|
|  | 358 |  | 
|---|
| [a57dbd8] | 359 | for ($k=0; $k<$conSysFi; $k++){ | 
|---|
|  | 360 | if ($tbSysFi[$k]["numpar"] == $numpar){ | 
|---|
|  | 361 | //$pos = strpos($tbSysFi[$k]["ordenadores"], $ordenadores); | 
|---|
|  | 362 | //if ($pos !== false) { // Cadena encontrada | 
|---|
|  | 363 | $pcs = explode (",", $ordenadores); | 
|---|
|  | 364 | $intersec = array_intersect (explode(",", $tbSysFi[$k]["ordenadores"]), $pcs); | 
|---|
|  | 365 | if (array_diff ($pcs, $intersec) == NULL) { | 
|---|
|  | 366 | if ($sw) {      // Retonar identificador | 
|---|
|  | 367 | return ($tbSysFi[$k]["idsistemafichero"]); | 
|---|
|  | 368 | } else { | 
|---|
|  | 369 | return ($tbSysFi[$k]["sistemafichero"]); | 
|---|
|  | 370 | } | 
|---|
| [3ec149c] | 371 | } | 
|---|
|  | 372 | } | 
|---|
|  | 373 | } | 
|---|
|  | 374 | } | 
|---|
|  | 375 | /*________________________________________________________________________________________________________ | 
|---|
|  | 376 |  | 
|---|
|  | 377 | Selecciona los ordenadores que tienen el mismo perfil software en la misma partición | 
|---|
|  | 378 | ________________________________________________________________________________________________________*/ | 
|---|
|  | 379 | function cargaPerfiles($cmd,$idambito,$ambito) | 
|---|
|  | 380 | { | 
|---|
| [a57dbd8] | 381 | global $tbPerfil;  // Tabla contenedora de ordenadores incluidos en la consulta | 
|---|
| [3ec149c] | 382 | global $conPerfil; // Contador de elementos anteriores | 
|---|
|  | 383 | global $AMBITO_AULAS; | 
|---|
|  | 384 | global $AMBITO_GRUPOSORDENADORES; | 
|---|
|  | 385 | global $AMBITO_ORDENADORES; | 
|---|
|  | 386 |  | 
|---|
| [a57dbd8] | 387 | $cmd->texto="SELECT count(*) AS con, | 
|---|
|  | 388 | ordenadores_particiones.idperfilsoft, | 
|---|
|  | 389 | ordenadores_particiones.numpar, | 
|---|
|  | 390 | perfilessoft.descripcion AS perfilsoft, | 
|---|
|  | 391 | GROUP_CONCAT(CAST(ordenadores_particiones.idordenador AS CHAR(11) ) | 
|---|
|  | 392 | ORDER BY ordenadores_particiones.idordenador SEPARATOR ',' ) AS ordenadores | 
|---|
|  | 393 | FROM ordenadores | 
|---|
|  | 394 | JOIN ordenadores_particiones ON ordenadores_particiones.idordenador=ordenadores.idordenador | 
|---|
|  | 395 | JOIN perfilessoft ON perfilessoft.idperfilsoft=ordenadores_particiones.idperfilsoft"; | 
|---|
| [3ec149c] | 396 |  | 
|---|
| [a57dbd8] | 397 | switch ($ambito) { | 
|---|
| [3ec149c] | 398 | case $AMBITO_AULAS : | 
|---|
| [a57dbd8] | 399 | $cmd->texto.="  JOIN aulas ON aulas.idaula = ordenadores.idaula | 
|---|
|  | 400 | WHERE aulas.idaula =".$idambito; | 
|---|
|  | 401 | break; | 
|---|
| [3ec149c] | 402 | case $AMBITO_GRUPOSORDENADORES : | 
|---|
| [a57dbd8] | 403 | $cmd->texto.="  JOIN gruposordenadores ON gruposordenadores.idgrupo = ordenadores.grupoid | 
|---|
|  | 404 | WHERE gruposordenadores.idgrupo =".$idambito; | 
|---|
| [3ec149c] | 405 | break; | 
|---|
|  | 406 | case $AMBITO_ORDENADORES : | 
|---|
| [a57dbd8] | 407 | $cmd->texto.="  WHERE ordenadores.idordenador =".$idambito; | 
|---|
| [3ec149c] | 408 | break; | 
|---|
|  | 409 | } | 
|---|
| [a57dbd8] | 410 | $cmd->texto.="                  GROUP BY ordenadores_particiones.numpar, ordenadores_particiones.idperfilsoft"; | 
|---|
| [3ec149c] | 411 | //echo "carga perfiles:".$cmd->texto; | 
|---|
|  | 412 | $rs=new Recordset; | 
|---|
|  | 413 | $rs->Comando=&$cmd; | 
|---|
|  | 414 | if (!$rs->Abrir()) return; // Error al abrir recordset | 
|---|
|  | 415 | $rs->Primero(); | 
|---|
|  | 416 | $idx=0; | 
|---|
|  | 417 | while (!$rs->EOF){ | 
|---|
|  | 418 | $tbPerfil[$idx]["idperfilsoft"]=$rs->campos["idperfilsoft"]; | 
|---|
|  | 419 | $tbPerfil[$idx]["perfilsoft"]=$rs->campos["perfilsoft"]; | 
|---|
|  | 420 | $tbPerfil[$idx]["numpar"]=$rs->campos["numpar"]; | 
|---|
|  | 421 | $tbPerfil[$idx]["ordenadores"]=$rs->campos["ordenadores"]; | 
|---|
|  | 422 | $idx++; | 
|---|
|  | 423 | $rs->Siguiente(); | 
|---|
|  | 424 | } | 
|---|
|  | 425 | $conPerfil=$idx; // Guarda contador | 
|---|
|  | 426 | $rs->Cerrar(); | 
|---|
|  | 427 | } | 
|---|
|  | 428 | /*________________________________________________________________________________________________________ | 
|---|
|  | 429 |  | 
|---|
|  | 430 | Toma perfilsoft común a los ordenadores pasados como parámetros | 
|---|
|  | 431 | ________________________________________________________________________________________________________*/ | 
|---|
|  | 432 | function tomaPerfiles($numpar,$ordenadores) | 
|---|
|  | 433 | { | 
|---|
| [a57dbd8] | 434 | global $tbPerfil;  // Tabla contenedora de ordenadores incluidos en la consulta | 
|---|
| [3ec149c] | 435 | global $conPerfil; // Contador de elementos anteriores | 
|---|
|  | 436 |  | 
|---|
| [a57dbd8] | 437 | for ($k=0; $k<$conPerfil; $k++){ | 
|---|
|  | 438 | //$pos = strpos($tbPerfil[$k]["ordenadores"], $ordenadores); | 
|---|
|  | 439 | //if ($pos !== false) { // Cadena encontrada | 
|---|
|  | 440 | //if($tbPerfil[$k]["numpar"]==$numpar) | 
|---|
|  | 441 | if ($tbPerfil[$k]["numpar"] == $numpar) { | 
|---|
|  | 442 | $pcs = explode (",", $ordenadores); | 
|---|
|  | 443 | $intersec = array_intersect (explode(",", $tbPerfil[$k]["ordenadores"]), $pcs); | 
|---|
|  | 444 | if (array_diff ($pcs, $intersec) == NULL) { | 
|---|
|  | 445 | return ($tbPerfil[$k]["perfilsoft"]); | 
|---|
|  | 446 | } | 
|---|
| [3ec149c] | 447 | } | 
|---|
|  | 448 | } | 
|---|
|  | 449 | } | 
|---|
|  | 450 | /*________________________________________________________________________________________________________ | 
|---|
|  | 451 |  | 
|---|
|  | 452 | Selecciona los ordenadores que tienen la misma imagen en la misma partición | 
|---|
|  | 453 | ________________________________________________________________________________________________________*/ | 
|---|
|  | 454 | function cargaImagenes($cmd,$idambito,$ambito) | 
|---|
|  | 455 | { | 
|---|
| [a57dbd8] | 456 | global $tbImg;  // Tabla contenedora de ordenadores incluidos en la consulta | 
|---|
| [3ec149c] | 457 | global $conImg; // Contador de elementos anteriores | 
|---|
|  | 458 | global $AMBITO_AULAS; | 
|---|
|  | 459 | global $AMBITO_GRUPOSORDENADORES; | 
|---|
|  | 460 | global $AMBITO_ORDENADORES; | 
|---|
|  | 461 |  | 
|---|
| [a57dbd8] | 462 | $cmd->texto="SELECT     count(*) as con, | 
|---|
|  | 463 | ordenadores_particiones.idimagen, | 
|---|
|  | 464 | ordenadores_particiones.numpar, | 
|---|
|  | 465 | imagenes.descripcion as imagen, | 
|---|
|  | 466 | GROUP_CONCAT(CAST(ordenadores_particiones.idordenador AS CHAR(11) ) | 
|---|
|  | 467 | ORDER BY ordenadores_particiones.idordenador SEPARATOR ',' ) AS ordenadores | 
|---|
|  | 468 | FROM ordenadores | 
|---|
|  | 469 | JOIN ordenadores_particiones ON ordenadores_particiones.idordenador=ordenadores.idordenador | 
|---|
|  | 470 | JOIN imagenes ON imagenes.idimagen=ordenadores_particiones.idimagen"; | 
|---|
| [3ec149c] | 471 |  | 
|---|
|  | 472 | switch($ambito){ | 
|---|
|  | 473 | case $AMBITO_AULAS : | 
|---|
| [a57dbd8] | 474 | $cmd->texto.="  JOIN aulas ON aulas.idaula = ordenadores.idaula | 
|---|
|  | 475 | WHERE aulas.idaula =".$idambito; | 
|---|
|  | 476 | break; | 
|---|
| [3ec149c] | 477 | case $AMBITO_GRUPOSORDENADORES : | 
|---|
| [a57dbd8] | 478 | $cmd->texto.="  JOIN gruposordenadores ON gruposordenadores.idgrupo = ordenadores.grupoid | 
|---|
|  | 479 | WHERE gruposordenadores.idgrupo =".$idambito; | 
|---|
| [3ec149c] | 480 | break; | 
|---|
|  | 481 | case $AMBITO_ORDENADORES : | 
|---|
| [a57dbd8] | 482 | $cmd->texto.="  WHERE ordenadores.idordenador =".$idambito; | 
|---|
| [3ec149c] | 483 | break; | 
|---|
|  | 484 | } | 
|---|
| [a57dbd8] | 485 | $cmd->texto.="                  GROUP BY ordenadores_particiones.numpar, ordenadores_particiones.idimagen"; | 
|---|
| [3ec149c] | 486 | //echo "carga imagenes:".$cmd->texto; | 
|---|
|  | 487 | $rs=new Recordset; | 
|---|
|  | 488 | $rs->Comando=&$cmd; | 
|---|
|  | 489 | if (!$rs->Abrir()) return; // Error al abrir recordset | 
|---|
|  | 490 | $rs->Primero(); | 
|---|
|  | 491 | $idx=0; | 
|---|
|  | 492 | while (!$rs->EOF){ | 
|---|
|  | 493 | $tbImg[$idx]["idimagen"]=$rs->campos["idimagen"]; | 
|---|
|  | 494 | $tbImg[$idx]["imagen"]=$rs->campos["imagen"]; | 
|---|
|  | 495 | $tbImg[$idx]["numpar"]=$rs->campos["numpar"]; | 
|---|
|  | 496 | $tbImg[$idx]["ordenadores"]=$rs->campos["ordenadores"]; | 
|---|
|  | 497 | $idx++; | 
|---|
|  | 498 | $rs->Siguiente(); | 
|---|
|  | 499 | } | 
|---|
|  | 500 | $conImg=$idx; // Guarda contador | 
|---|
|  | 501 | $rs->Cerrar(); | 
|---|
|  | 502 | } | 
|---|
|  | 503 | /*________________________________________________________________________________________________________ | 
|---|
|  | 504 |  | 
|---|
|  | 505 | Toma sistema operativo común a los ordenadores pasados como parámetros | 
|---|
|  | 506 | ________________________________________________________________________________________________________*/ | 
|---|
|  | 507 | function tomaImagenes($numpar,$ordenadores) | 
|---|
|  | 508 | { | 
|---|
| [a57dbd8] | 509 | global $tbImg;  // Tabla contenedora de ordenadores incluidos en la consulta | 
|---|
| [3ec149c] | 510 | global $conImg; // Contador de elementos anteriores | 
|---|
|  | 511 |  | 
|---|
| [a57dbd8] | 512 | for ($k=0; $k<$conImg; $k++) { | 
|---|
|  | 513 | //$pos = strpos($tbImg[$k]["ordenadores"], $ordenadores); | 
|---|
|  | 514 | //if ($pos !== false) { // Cadena encontrada | 
|---|
|  | 515 | //if($tbImg[$k]["numpar"]==$numpar){ | 
|---|
|  | 516 | if ($tbImg[$k]["numpar"] == $numpar) { | 
|---|
|  | 517 | $pcs = explode (",", $ordenadores); | 
|---|
|  | 518 | $intersec = array_intersect (explode(",", $tbImg[$k]["ordenadores"]), $pcs); | 
|---|
|  | 519 | if (array_diff ($pcs, $intersec) == NULL) { | 
|---|
|  | 520 | return ($tbImg[$k]["imagen"]); | 
|---|
|  | 521 | } | 
|---|
| [3ec149c] | 522 | } | 
|---|
|  | 523 | } | 
|---|
|  | 524 | } | 
|---|
|  | 525 | /*________________________________________________________________________________________________________ | 
|---|
|  | 526 |  | 
|---|
|  | 527 | Selecciona los ordenadores que tienen el mismo sistema de ficheros en la misma partición | 
|---|
|  | 528 | ________________________________________________________________________________________________________*/ | 
|---|
|  | 529 | function cargaNombresSO($cmd,$idambito,$ambito) | 
|---|
|  | 530 | { | 
|---|
| [a57dbd8] | 531 | global $tbSO;  // Tabla contenedora de ordenadores incluidos en la consulta | 
|---|
| [3ec149c] | 532 | global $conSO; // Contador de elementos anteriores | 
|---|
|  | 533 | global $AMBITO_AULAS; | 
|---|
|  | 534 | global $AMBITO_GRUPOSORDENADORES; | 
|---|
|  | 535 | global $AMBITO_ORDENADORES; | 
|---|
|  | 536 |  | 
|---|
| [a57dbd8] | 537 | $cmd->texto="SELECT     COUNT(*) AS con, | 
|---|
|  | 538 | ordenadores_particiones.idnombreso, | 
|---|
|  | 539 | ordenadores_particiones.numpar,nombresos.nombreso, | 
|---|
|  | 540 | GROUP_CONCAT(CAST(ordenadores_particiones.idordenador AS CHAR(11) ) | 
|---|
|  | 541 | ORDER BY ordenadores_particiones.idordenador SEPARATOR ',' ) AS ordenadores | 
|---|
|  | 542 | FROM ordenadores | 
|---|
|  | 543 | JOIN ordenadores_particiones ON ordenadores_particiones.idordenador=ordenadores.idordenador | 
|---|
|  | 544 | JOIN nombresos ON nombresos.idnombreso=ordenadores_particiones.idnombreso"; | 
|---|
| [3ec149c] | 545 |  | 
|---|
|  | 546 | switch($ambito){ | 
|---|
|  | 547 | case $AMBITO_AULAS : | 
|---|
| [a57dbd8] | 548 | $cmd->texto.="  JOIN aulas ON aulas.idaula = ordenadores.idaula | 
|---|
|  | 549 | WHERE aulas.idaula =".$idambito; | 
|---|
|  | 550 | break; | 
|---|
| [3ec149c] | 551 | case $AMBITO_GRUPOSORDENADORES : | 
|---|
| [a57dbd8] | 552 | $cmd->texto.="  JOIN gruposordenadores ON gruposordenadores.idgrupo = ordenadores.grupoid | 
|---|
|  | 553 | WHERE gruposordenadores.idgrupo =".$idambito; | 
|---|
| [3ec149c] | 554 | break; | 
|---|
|  | 555 | case $AMBITO_ORDENADORES : | 
|---|
| [a57dbd8] | 556 | $cmd->texto.="  WHERE ordenadores.idordenador =".$idambito; | 
|---|
| [3ec149c] | 557 | break; | 
|---|
|  | 558 | } | 
|---|
| [a57dbd8] | 559 | $cmd->texto.="                  GROUP BY ordenadores_particiones.numpar, ordenadores_particiones.idnombreso"; | 
|---|
| [3ec149c] | 560 | //echo "carga nombresos:".$cmd->texto; | 
|---|
|  | 561 | $rs=new Recordset; | 
|---|
|  | 562 | $rs->Comando=&$cmd; | 
|---|
|  | 563 | if (!$rs->Abrir()) return; // Error al abrir recordset | 
|---|
|  | 564 | $rs->Primero(); | 
|---|
|  | 565 | $idx=0; | 
|---|
|  | 566 | while (!$rs->EOF){ | 
|---|
|  | 567 | $tbSO[$idx]["idnombreso"]=$rs->campos["idnombreso"]; | 
|---|
|  | 568 | $tbSO[$idx]["nombreso"]=$rs->campos["nombreso"]; | 
|---|
|  | 569 | $tbSO[$idx]["numpar"]=$rs->campos["numpar"]; | 
|---|
|  | 570 | $tbSO[$idx]["ordenadores"]=$rs->campos["ordenadores"]; | 
|---|
|  | 571 | $idx++; | 
|---|
|  | 572 | $rs->Siguiente(); | 
|---|
|  | 573 | } | 
|---|
|  | 574 | $conSO=$idx; // Guarda contador | 
|---|
|  | 575 | $rs->Cerrar(); | 
|---|
|  | 576 | } | 
|---|
|  | 577 | /*________________________________________________________________________________________________________ | 
|---|
|  | 578 |  | 
|---|
|  | 579 | Toma sistema operativo común a los ordenadores pasados como parámetros | 
|---|
|  | 580 | ________________________________________________________________________________________________________*/ | 
|---|
|  | 581 | function tomaNombresSO($numpar,$ordenadores) | 
|---|
|  | 582 | { | 
|---|
| [a57dbd8] | 583 | global $tbSO;  // Tabla contenedora de ordenadores incluidos en la consulta | 
|---|
| [3ec149c] | 584 | global $conSO; // Contador de elementos anteriores | 
|---|
|  | 585 |  | 
|---|
| [a57dbd8] | 586 | for($k=0; $k<$conSO; $k++) { | 
|---|
|  | 587 | if ($tbSO[$k]["numpar"]==$numpar) { | 
|---|
|  | 588 | //$pos = strpos($tbSO[$k]["ordenadores"], $ordenadores); | 
|---|
|  | 589 | //if ($pos !== false) { // Cadena encontrada | 
|---|
|  | 590 | $pcs = explode (",", $ordenadores); | 
|---|
|  | 591 | $intersec = array_intersect (explode(",", $tbSO[$k]["ordenadores"]), $pcs); | 
|---|
|  | 592 | if (array_diff ($pcs, $intersec) == NULL) { | 
|---|
|  | 593 | return ($tbSO[$k]["nombreso"]); | 
|---|
|  | 594 | } | 
|---|
| [3ec149c] | 595 | } | 
|---|
|  | 596 | } | 
|---|
|  | 597 | } | 
|---|
|  | 598 | /*________________________________________________________________________________________________________ | 
|---|
|  | 599 |  | 
|---|
|  | 600 | Selecciona los ordenadores que tienen el mismo tamaño para la misma partición | 
|---|
|  | 601 | ________________________________________________________________________________________________________*/ | 
|---|
|  | 602 | function cargaTamano($cmd,$idambito,$ambito) | 
|---|
|  | 603 | { | 
|---|
| [a57dbd8] | 604 | global $tbTam;  // Tabla contenedora de ordenadores incluidos en la consulta | 
|---|
| [3ec149c] | 605 | global $conTam; // Contador de elementos anteriores | 
|---|
|  | 606 | global $AMBITO_AULAS; | 
|---|
|  | 607 | global $AMBITO_GRUPOSORDENADORES; | 
|---|
|  | 608 | global $AMBITO_ORDENADORES; | 
|---|
|  | 609 |  | 
|---|
| [a57dbd8] | 610 | $cmd->texto="SELECT     COUNT(*) AS con, | 
|---|
|  | 611 | ordenadores_particiones.tamano, | 
|---|
|  | 612 | ordenadores_particiones.numpar, | 
|---|
|  | 613 | GROUP_CONCAT(CAST(ordenadores_particiones.idordenador AS CHAR(11) ) | 
|---|
|  | 614 | ORDER BY ordenadores_particiones.idordenador SEPARATOR ',' ) AS ordenadores | 
|---|
|  | 615 | FROM ordenadores | 
|---|
|  | 616 | JOIN ordenadores_particiones ON ordenadores_particiones.idordenador=ordenadores.idordenador"; | 
|---|
| [3ec149c] | 617 |  | 
|---|
|  | 618 | switch($ambito){ | 
|---|
|  | 619 | case $AMBITO_AULAS : | 
|---|
| [a57dbd8] | 620 | $cmd->texto.="  JOIN aulas ON aulas.idaula = ordenadores.idaula | 
|---|
|  | 621 | WHERE aulas.idaula =".$idambito; | 
|---|
|  | 622 | break; | 
|---|
| [3ec149c] | 623 | case $AMBITO_GRUPOSORDENADORES : | 
|---|
| [a57dbd8] | 624 | $cmd->texto.="  JOIN gruposordenadores ON gruposordenadores.idgrupo = ordenadores.grupoid | 
|---|
|  | 625 | WHERE gruposordenadores.idgrupo =".$idambito; | 
|---|
| [3ec149c] | 626 | break; | 
|---|
|  | 627 | case $AMBITO_ORDENADORES : | 
|---|
| [a57dbd8] | 628 | $cmd->texto.="  WHERE ordenadores.idordenador =".$idambito; | 
|---|
| [3ec149c] | 629 | break; | 
|---|
|  | 630 | } | 
|---|
| [a57dbd8] | 631 | $cmd->texto.="                  GROUP BY ordenadores_particiones.numpar, ordenadores_particiones.tamano"; | 
|---|
| [3ec149c] | 632 | //echo "carga tamaños:".$cmd->texto; | 
|---|
|  | 633 | $rs=new Recordset; | 
|---|
|  | 634 | $rs->Comando=&$cmd; | 
|---|
|  | 635 | if (!$rs->Abrir()) return; // Error al abrir recordset | 
|---|
|  | 636 | $rs->Primero(); | 
|---|
|  | 637 | $idx=0; | 
|---|
|  | 638 | while (!$rs->EOF){ | 
|---|
|  | 639 | $tbTam[$idx]["tamano"]=$rs->campos["tamano"]; | 
|---|
|  | 640 | $tbTam[$idx]["numpar"]=$rs->campos["numpar"]; | 
|---|
|  | 641 | $tbTam[$idx]["ordenadores"]=$rs->campos["ordenadores"]; | 
|---|
|  | 642 | $idx++; | 
|---|
|  | 643 | $rs->Siguiente(); | 
|---|
|  | 644 | } | 
|---|
|  | 645 | $conTam=$idx; // Guarda contador | 
|---|
|  | 646 | $rs->Cerrar(); | 
|---|
|  | 647 | } | 
|---|
|  | 648 | /*________________________________________________________________________________________________________ | 
|---|
|  | 649 |  | 
|---|
|  | 650 | Toma tamaño de partición común a los ordenadores pasados como parámetros | 
|---|
|  | 651 | ________________________________________________________________________________________________________*/ | 
|---|
|  | 652 | function tomaTamano($numpar,$ordenadores) | 
|---|
|  | 653 | { | 
|---|
| [a57dbd8] | 654 | global $tbTam;  // Tabla contenedora de ordenadores incluidos en la consulta | 
|---|
| [3ec149c] | 655 | global $conTam; // Contador de elementos anteriores | 
|---|
|  | 656 |  | 
|---|
| [a57dbd8] | 657 | for ($k=0; $k<$conTam; $k++) { | 
|---|
|  | 658 | if ($tbTam[$k]["numpar"] == $numpar) { | 
|---|
|  | 659 | //                      $pos = strpos ($tbTam[$k]["ordenadores"], $ordenadores); | 
|---|
|  | 660 | //                      if ($pos !== FALSE) { // Cadena encontrada | 
|---|
|  | 661 | $pcs = explode (",", $ordenadores); | 
|---|
|  | 662 | $intersec = array_intersect (explode(",", $tbTam[$k]["ordenadores"]), $pcs); | 
|---|
|  | 663 | if (array_diff ($pcs, $intersec) == NULL) { | 
|---|
|  | 664 | return ($tbTam[$k]["tamano"]); | 
|---|
|  | 665 | } | 
|---|
| [3ec149c] | 666 | } | 
|---|
|  | 667 | } | 
|---|
|  | 668 | } | 
|---|
|  | 669 |  | 
|---|
|  | 670 | ?> | 
|---|
| [a57dbd8] | 671 |  | 
|---|