diff options
author | albertogp <albertogp@uma.es> | 2012-05-18 10:00:35 +0000 |
---|---|---|
committer | albertogp <albertogp@uma.es> | 2012-05-18 10:00:35 +0000 |
commit | 1873b9a7c3017c9c71d05301c2dd883f23757035 (patch) | |
tree | 27dcbb2bb0f65e9b120867be7e82cc95056b0b0b /admin/WebConsole/includes/ConfiguracionesParticiones.php | |
parent | 4e1dc5385cbf9222dede8b8706b64af447ada79c (diff) |
Versión 1.0.4, #495: Integrar ticket en rama de desarrollo.
git-svn-id: https://opengnsys.es/svn/branches/version1.0@3052 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'admin/WebConsole/includes/ConfiguracionesParticiones.php')
-rw-r--r-- | admin/WebConsole/includes/ConfiguracionesParticiones.php | 85 |
1 files changed, 83 insertions, 2 deletions
diff --git a/admin/WebConsole/includes/ConfiguracionesParticiones.php b/admin/WebConsole/includes/ConfiguracionesParticiones.php index 39567c78..cd5cb4e2 100644 --- a/admin/WebConsole/includes/ConfiguracionesParticiones.php +++ b/admin/WebConsole/includes/ConfiguracionesParticiones.php @@ -41,6 +41,7 @@ 00000100- No agrupar por Tamaño de partición 00001000- No agrupar por Imagen instalada 00010000- No agrupar por Perfil software contenido + 00100000- No agrupar por Contenido Cache $swr: Indica si se se tiene en cuenta las particiones no clonables (si:true o no:false) ________________________________________________________________________________________________________*/ function cargaCaves($cmd,$idambito,$ambito,$sws,$swr) @@ -56,6 +57,7 @@ function cargaCaves($cmd,$idambito,$ambito,$sws,$swr) global $msk_tamano; global $msk_imagen; global $msk_perfil; + global $msk_cache; $cmd->texto="SELECT concat_WS( ';', @@ -75,7 +77,10 @@ function cargaCaves($cmd,$idambito,$ambito,$sws,$swr) $cmd->texto.=" ordenadores_particiones.idimagen, "; if($sws & $msk_perfil) - $cmd->texto.=" ordenadores_particiones.idperfilsoft, "; + $cmd->texto.=" ordenadores_particiones.idperfilsoft, "; + + if($sws & $msk_cache) + $cmd->texto.=" ordenadores_particiones.cache, "; $cmd->texto.=" ordenadores_particiones.codpar) as configuracion, ordenadores_particiones.numpar , @@ -140,7 +145,8 @@ function cargaCaves($cmd,$idambito,$ambito,$sws,$swr) $tbKeys[$idx]["nombreca"]=$rs->campos["nombreca"]; $tbKeys[$idx]["repositorio"]=$rs->campos["repositorio"]; $tbKeys[$idx]["idperfilsoft"]=$rs->campos["idperfilsoft"]; - $tbKeys[$idx]["perfilsoft"]=$rs->campos["perfilsoft"]; + $tbKeys[$idx]["perfilsoft"]=$rs->campos["perfilsoft"]; + $tbKeys[$idx]["cache"]=$rs->campos["cache"]; $idx++; $rs->Siguiente(); } @@ -173,6 +179,7 @@ function pintaConfiguraciones($cmd,$idambito,$ambito,$colums,$sws,$swr) global $msk_tamano; global $msk_imagen; global $msk_perfil; + global $msk_cache; cargaCaves($cmd,$idambito,$ambito,$sws,$swr); cargaSistemasFicheros($cmd,$idambito,$ambito); @@ -180,6 +187,7 @@ function pintaConfiguraciones($cmd,$idambito,$ambito,$colums,$sws,$swr) cargaImagenes($cmd,$idambito,$ambito); cargaNombresSO($cmd,$idambito,$ambito); cargaTamano($cmd,$idambito,$ambito); + cargaCache($cmd,$idambito,$ambito); $cmd->texto="SELECT COUNT(*) AS con, GROUP_CONCAT(CAST( temp2.idordenador AS CHAR(11) ) ORDER BY temp2.idordenador SEPARATOR ',' ) AS idordenadores, @@ -206,6 +214,9 @@ function pintaConfiguraciones($cmd,$idambito,$ambito,$colums,$sws,$swr) if($sws & $msk_perfil) $cmd->texto.=" ordenadores_particiones.idperfilsoft, "; + + if($sws & $msk_cache) + $cmd->texto.=" ordenadores_particiones.cache, "; $cmd->texto.=" ordenadores_particiones.codpar) AS configuracion FROM ordenadores @@ -666,6 +677,76 @@ function tomaTamano($numpar,$ordenadores) } } } +/*________________________________________________________________________________________________________ + + Selecciona los ordenadores que tienen el mismo Contenido de Cache para la misma partición +________________________________________________________________________________________________________*/ +function cargaCache($cmd,$idambito,$ambito) +{ + global $tbTam; // Tabla contenedora de ordenadores incluidos en la consulta + global $conTam; // Contador de elementos anteriores + global $AMBITO_AULAS; + global $AMBITO_GRUPOSORDENADORES; + global $AMBITO_ORDENADORES; + + $cmd->texto="SELECT COUNT(*) AS con, + ordenadores_particiones.cache, + ordenadores_particiones.numpar, + GROUP_CONCAT(CAST(ordenadores_particiones.idordenador AS CHAR(11) ) + ORDER BY ordenadores_particiones.idordenador SEPARATOR ',' ) AS ordenadores + FROM ordenadores + JOIN ordenadores_particiones ON ordenadores_particiones.idordenador=ordenadores.idordenador"; + switch($ambito){ + case $AMBITO_AULAS : + $cmd->texto.=" JOIN aulas ON aulas.idaula = ordenadores.idaula + WHERE aulas.idaula =".$idambito; + break; + case $AMBITO_GRUPOSORDENADORES : + $cmd->texto.=" JOIN gruposordenadores ON gruposordenadores.idgrupo = ordenadores.grupoid + WHERE gruposordenadores.idgrupo =".$idambito; + break; + case $AMBITO_ORDENADORES : + $cmd->texto.=" WHERE ordenadores.idordenador =".$idambito; + break; + } + $cmd->texto.=" GROUP BY ordenadores_particiones.numpar, ordenadores_particiones.cache"; + //echo "carga tamaños:".$cmd->texto; + $rs=new Recordset; + $rs->Comando=&$cmd; + if (!$rs->Abrir()) return; // Error al abrir recordset + $rs->Primero(); + $idx=0; + while (!$rs->EOF){ + $tbTam[$idx]["cache"]=$rs->campos["cache"]; + $tbTam[$idx]["numpar"]=$rs->campos["numpar"]; + $tbTam[$idx]["ordenadores"]=$rs->campos["ordenadores"]; + $idx++; + $rs->Siguiente(); + } + $conTam=$idx; // Guarda contador + $rs->Cerrar(); +} +/*________________________________________________________________________________________________________ + + Toma tamaño de partición común a los ordenadores pasados como parámetros +________________________________________________________________________________________________________*/ +function tomaCache($numpar,$ordenadores) +{ + global $tbTam; // Tabla contenedora de ordenadores incluidos en la consulta + global $conTam; // Contador de elementos anteriores + + for ($k=0; $k<$conTam; $k++) { + if ($tbTam[$k]["numpar"] == $numpar) { +// $pos = strpos ($tbTam[$k]["ordenadores"], $ordenadores); +// if ($pos !== FALSE) { // Cadena encontrada + $pcs = explode (",", $ordenadores); + $intersec = array_intersect (explode(",", $tbTam[$k]["ordenadores"]), $pcs); + if (array_diff ($pcs, $intersec) == NULL) { + return ($tbTam[$k]["cache"]); + } + } + } +} ?> |