diff options
author | irinagomez <irinagomez@us.es> | 2020-03-19 09:15:12 +0000 |
---|---|---|
committer | irinagomez <irinagomez@us.es> | 2020-03-19 09:15:12 +0000 |
commit | a9cb5552a02a2e57c0268f998a45233ca90e8860 (patch) | |
tree | 7b207f6c7a20f50da6a97ee3200476468f5cb08f | |
parent | 4d9240ce27f86bb8b0bd76bec6ea397fa186232e (diff) |
#969 node tree: Functions for get nodes and groups of nodes from database are created and used in all left frames.
For now frames show array of nodes and groups for debug.
-rw-r--r-- | admin/WebConsole/includes/arbol.php | 254 | ||||
-rw-r--r-- | admin/WebConsole/principal/acciones.php | 19 | ||||
-rw-r--r-- | admin/WebConsole/principal/aulas.php | 14 | ||||
-rw-r--r-- | admin/WebConsole/principal/hardwares.php | 23 | ||||
-rw-r--r-- | admin/WebConsole/principal/imagenes.php | 59 | ||||
-rw-r--r-- | admin/WebConsole/principal/menus.php | 9 | ||||
-rw-r--r-- | admin/WebConsole/principal/repositorios.php | 7 | ||||
-rw-r--r-- | admin/WebConsole/principal/softwares.php | 23 |
8 files changed, 360 insertions, 48 deletions
diff --git a/admin/WebConsole/includes/arbol.php b/admin/WebConsole/includes/arbol.php new file mode 100644 index 00000000..89166f17 --- /dev/null +++ b/admin/WebConsole/includes/arbol.php @@ -0,0 +1,254 @@ +<?php +/* Funciones auxiliares para pintar árboles de nodos en el frame izquierdo */ + +// grupos(tipo_nodo) +// Descripción: Devuelve un array de grupos de imágenes. Ordenados por tipos de imágenes y grupo padre +// Parámetros: +// tipo_nodo: str tipo de elemento a mostrar en el árbol (aulas, imagenes, ...) +// devuelve: array de grupos. +// Nota: usamos la variable tipo por compatibilidad con grupos de imágenes. + +function grupos_arbol($tipo_nodo) { + global $cmd; + global $idcentro; + + $grupos_hijos=Array(); + $sql=""; + + switch ($tipo_nodo){ + case 'aulas': + global $AMBITO_GRUPOSAULAS; + $ambito=$AMBITO_GRUPOSAULAS; + break; + case 'componenteshardware': + global $AMBITO_GRUPOSCOMPONENTESHARD; + $ambito=$AMBITO_GRUPOSCOMPONENTESHARD; + break; + case 'componentessoftware': + global $AMBITO_GRUPOSCOMPONENTESSOFT; + $ambito=$AMBITO_GRUPOSCOMPONENTESSOFT; + break; + case 'imagenes': + $ambito="70, 71, 72"; + break; + case 'menus': + global $AMBITO_GRUPOSMENUS; + $ambito=$AMBITO_GRUPOSMENUS; + break; + case 'ordenadores': + $sql="SELECT gruposordenadores.idgrupo AS id, nombregrupoordenador AS nombre, + gruposordenadores.idaula AS conjuntoid, gruposordenadores.grupoid AS grupopadre + FROM gruposordenadores + INNER JOIN aulas + WHERE gruposordenadores.idaula=aulas.idaula AND idcentro=$idcentro + ORDER BY conjuntoid, gruposordenadores.grupoid;"; + break; + case 'perfileshardware': + global $AMBITO_GRUPOSPERFILESHARD; + $ambito=$AMBITO_GRUPOSPERFILESHARD; + break; + case 'perfilessoftware': + global $AMBITO_GRUPOSPERFILESSOFT; + $ambito=$AMBITO_GRUPOSPERFILESSOFT; + break; + case 'perfilessoftwareincremental': + global $AMBITO_GRUPOSSOFTINCREMENTAL; + $ambito=$AMBITO_GRUPOSSOFTINCREMENTAL; + break; + case 'procedimientos': + global $AMBITO_GRUPOSPROCEDIMIENTOS; + $ambito=$AMBITO_GRUPOSPROCEDIMIENTOS; + break; + case 'repositorios': + global $AMBITO_GRUPOSREPOSITORIOS; + $ambito=$AMBITO_GRUPOSREPOSITORIOS; + break; + case 'tareas': + global $AMBITO_GRUPOSTAREAS; + $ambito=$AMBITO_GRUPOSTAREAS; + break; + } + if ($sql == "" && $ambito != "") { + $sql="SELECT idgrupo AS id, nombregrupo AS nombre, grupos.grupoid AS grupopadre, tipo AS conjuntoid + FROM grupos + WHERE idcentro=$idcentro AND tipo IN ($ambito) + ORDER BY tipo, grupopadre, grupoid;"; + } + if ($sql == "") return ($grupos_hijos); + + $rs=new Recordset; + $cmd->texto=$sql; + echo "text: ".$cmd->texto; + echo "<br><br>"; + $rs->Comando=&$cmd; + if (!$rs->Abrir()) return($grupos_hijos); + + $rs->Primero(); + $oldgrupopadre=0; + $num=-1; + while (!$rs->EOF){ + $grupopadre=$rs->campos["grupopadre"]; + $nombre=$rs->campos["nombre"]; + + $id=$rs->campos["id"]; + $conjuntoid=$rs->campos["conjuntoid"]; + // El tipo de grupo de imagenes son 70, 71 y 72 correspondiendo al tipo de imagen 1, 2 y 3 + if ($tipo_nodo == "imagenes") $conjuntoid-=69; + + if ($oldgrupopadre != $grupopadre) { + $oldgrupopadre=$grupopadre; + // Cuando cambio de grupo pongo el orden del array a cero + $num=0; + } else { + $num++; + } + $grupos_hijos[$conjuntoid][$grupopadre][$num]["id"] = $id; + $grupos_hijos[$conjuntoid][$grupopadre][$num]["nombre"] = $nombre; + + $rs->Siguiente(); + } + $rs->Cerrar(); + return ($grupos_hijos); + +} +/* + * Descripción: Devuelve un array de nodos ordenados por el grupo al que pertenecen. + * Parámetros: + * tipo_nodo: str tipo de elemento a mostrar en el árbol (aulas, imagenes, ...) + * Devuelve: array de nodos + * Nota: Existen nodos clasificados por tipos. Para los no tienen tipos se usa un único tipo = 1 + */ +function nodos_arbol($tipo_nodo){ + global $TbMsg; + global $cmd; + global $idcentro; + //$nodos= Array(); + + switch ($tipo_nodo){ + case 'aulas': + $sql="SELECT idaula AS id, nombreaula AS nombre, grupoid, '1' AS conjuntoid + FROM aulas + WHERE idcentro=$idcentro ORDER BY conjuntoid, grupoid;"; + break; + case 'comandos': + $sql="SELECT idcomando AS id, descripcion AS nombre, urlimg, + '1' AS conjuntoid, '0' AS grupoid + FROM comandos + WHERE activo=1 ORDER BY conjuntoid, grupoid;"; + break; + case 'componenteshardware': + $sql="SELECT hardwares.idhardware AS id, hardwares.descripcion AS nombre, + tipohardwares.urlimg, '2' AS conjuntoid, grupoid + FROM hardwares INNER JOIN tipohardwares + WHERE hardwares.idtipohardware=tipohardwares.idtipohardware AND idcentro=$idcentro + ORDER BY conjuntoid, grupoid;"; + break; + case 'componentessoftware': + $sql="SELECT softwares.idsoftware AS id, softwares.descripcion AS nombre, + tiposoftwares.urlimg, '2' AS conjuntoid, grupoid + FROM softwares INNER JOIN tiposoftwares + WHERE softwares.idtiposoftware=tiposoftwares.idtiposoftware AND idcentro=$idcentro + ORDER BY conjuntoid, grupoid;"; + break; + case 'imagenes': + $sql="SELECT DISTINCT imagenes.idimagen AS id ,imagenes.descripcion AS nombre, + imagenes.tipo AS conjuntoid, imagenes.grupoid, + IF(imagenes.idrepositorio=0,basica.idrepositorio,imagenes.idrepositorio) AS repo + FROM imagenes + LEFT JOIN imagenes AS basica ON imagenes.imagenid=basica.idimagen + WHERE imagenes.idcentro=$idcentro ORDER BY conjuntoid, grupoid;"; + break; + case 'menus': + $sql="SELECT idmenu AS id, descripcion AS nombre, '1' AS conjuntoid, grupoid + FROM menus + WHERE idcentro=$idcentro ORDER BY conjuntoid, grupoid;"; + break; + case 'ordenadores': + $sql="SELECT idordenador AS id, nombreordenador AS nombre, + ordenadores.idaula AS conjuntoid, ordenadores.grupoid + FROM ordenadores + INNER JOIN aulas + WHERE ordenadores.idaula=aulas.idaula AND idcentro=$idcentro + ORDER BY conjuntoid, grupoid;"; + break; + case 'perfileshardware': + $sql="SELECT idperfilhard AS id, descripcion AS nombre, + '3' AS conjuntoid, grupoid + FROM perfileshard + WHERE idcentro=$idcentro + ORDER BY conjuntoid, grupoid;"; + break; + case 'perfilessoftware': + $sql="SELECT idperfilsoft AS id, descripcion AS nombre, + '3' AS conjuntoid, grupoid + FROM perfilessoft + WHERE idcentro=$idcentro + ORDER BY conjuntoid, grupoid;"; + break; + case 'procedimientos': + $sql="SELECT idprocedimiento AS id, descripcion AS nombre, '2' AS conjuntoid, grupoid + FROM procedimientos + WHERE idcentro=$idcentro ORDER BY conjuntoid, grupoid;"; + break; + case 'repositorios': + $sql="SELECT idrepositorio AS id, nombrerepositorio AS nombre, '1' AS conjuntoid, grupoid + FROM repositorios + WHERE idcentro=$idcentro ORDER BY conjuntoid, grupoid;"; + break; + case 'tareas': + $sql="SELECT idtarea AS id, descripcion AS nombre, ambito, '3' AS conjuntoid, grupoid + FROM tareas + WHERE idcentro=$idcentro ORDER BY conjuntoid, grupoid;"; + break; + case 'tiposhardware': + $sql="SELECT idtipohardware AS id, descripcion AS nombre, urlimg, nemonico, + '1' AS conjuntoid, '0' AS grupoid + FROM tipohardwares + ORDER BY conjuntoid, grupoid;"; + break; + case 'tipossoftware': + $sql="SELECT idtiposoftware AS id, descripcion AS nombre, urlimg, + '1' AS conjuntoid, '0' AS grupoid + FROM tiposoftwares + ORDER BY conjuntoid, grupoid;"; + break; + } + +echo "sql: ".$sql; +echo "<br><br>"; + $nodos=Array(); + $grupos_hijos=Array(); + $rs=new Recordset; + $cmd->texto=$sql; + + $rs->Comando=&$cmd; + if (!$rs->Abrir()) return(Array($nodos)); + + $rs->Primero(); + $ordenNodo=-1; + $oldgrupoid=(isset($rs->campos["grupoid"]))? $rs->campos["grupoid"] : 0; + while (!$rs->EOF){ + $conjuntoid=$rs->campos["conjuntoid"]; + $id=$rs->campos["id"]; + $descripcion=$rs->campos["nombre"]; + // Las nodos de un grupo son un array. Cuando cambio de grupo pongo el orden a cero: + $grupoid=(isset($rs->campos["grupoid"]))? $rs->campos["grupoid"] : 0; + if ($oldgrupoid != $grupoid) { + $oldgrupoid=$grupoid; + $ordenNodo=0; + } else { + $ordenNodo=$ordenNodo+1; + } + + $nodos[$conjuntoid][$grupoid][$ordenNodo]["descripcion"]=$descripcion; + $nodos[$conjuntoid][$grupoid][$ordenNodo]["id"]=$id; + $rs->Siguiente(); + } + + $rs->Cerrar(); + return($nodos); +} + + + +?> diff --git a/admin/WebConsole/principal/acciones.php b/admin/WebConsole/principal/acciones.php index 9b86e2d4..6671b721 100644 --- a/admin/WebConsole/principal/acciones.php +++ b/admin/WebConsole/principal/acciones.php @@ -9,6 +9,7 @@ // Administra procedimientos,y tareas de un determinado Centro // ************************************************************************************************************************************************* include_once("../includes/ctrlacc.php"); +include_once("../includes/arbol.php"); include_once("../clases/AdoPhp.php"); include_once("../clases/XmlPhp.php"); include_once("../clases/ArbolVistaXML.php"); @@ -685,4 +686,22 @@ function CreacontextualXMLTarea(){ $layerXML.='</MENUCONTEXTUAL>'; return($layerXML); } +echo "<br><br>"; +echo "<br><br>"; +$comandos=nodos_arbol("comandos"); +$procedimientos=nodos_arbol("procedimientos"); +$tareas=nodos_arbol("tareas"); +$grp_procedimientos=grupos_arbol("procedimientos"); +$grp_tareas=grupos_arbol("tareas"); + +echo "<br><br>"; +print_r($comandos); +echo "<br><br>"; +print_r($procedimientos); +echo "<br><br>"; +print_r($tareas); +echo "<br><br>"; +print_r($grp_procedimientos); +echo "<br><br>"; +print_r($grp_tareas); ?> diff --git a/admin/WebConsole/principal/aulas.php b/admin/WebConsole/principal/aulas.php index 631e68dc..193a0c11 100644 --- a/admin/WebConsole/principal/aulas.php +++ b/admin/WebConsole/principal/aulas.php @@ -9,6 +9,7 @@ // Administra grupos,aulas y ordenadores de un determinado Centro // **************************************************************************** include_once("../includes/ctrlacc.php"); +include_once("../includes/arbol.php"); include_once("../clases/AdoPhp.php"); include_once("../clases/XmlPhp.php"); include_once("../clases/ArbolVistaXML.php"); @@ -1101,4 +1102,17 @@ function ContextualXMLNetBoot(){ return($layerXML); } +echo "<br><br>"; +echo "<br><br>"; +$aulas=nodos_arbol("aulas"); +$ordenadores=nodos_arbol("ordenadores"); +$grp_aulas=grupos_arbol("aulas"); +$grp_ordenadores=grupos_arbol("ordenadores"); +print_r($aulas); +echo "<br><br>"; +print_r($ordenadores); +echo "<br>gru aulas<br>"; +print_r($grp_aulas); +echo "<br><br>"; +print_r($grp_ordenadores); ?> diff --git a/admin/WebConsole/principal/hardwares.php b/admin/WebConsole/principal/hardwares.php index 6d14406a..465aeda0 100644 --- a/admin/WebConsole/principal/hardwares.php +++ b/admin/WebConsole/principal/hardwares.php @@ -9,6 +9,7 @@ // Administra el hardware de los ordenadores de un determinado Centro // ************************************************************************************************************************************************* include_once("../includes/ctrlacc.php"); +include_once("../includes/arbol.php"); include_once("../clases/AdoPhp.php"); include_once("../clases/XmlPhp.php"); include_once("../clases/ArbolVistaXML.php"); @@ -641,4 +642,26 @@ function CreacontextualXMLPerfil_Hardware(){ $layerXML.='</MENUCONTEXTUAL>'; return($layerXML); } + +echo "<br><br>"; +echo "<br><br>"; +$tipos=nodos_arbol("tiposhardware"); +$componentes=nodos_arbol("componenteshardware"); +$perfiles=nodos_arbol("perfileshardware"); +$grp_tipos=grupos_arbol("tiposhardware"); +$grp_componentes=grupos_arbol("componenteshardware"); +$grp_perfiles=grupos_arbol("perfileshardware"); +echo "<br><br>"; +print_r($tipos); +echo "<br><br>"; +print_r($componentes); +echo "<br><br>"; +print_r($perfiles); +echo "<br><br>"; +// No existen grupos de tipos de hardware, debe devolver array vacío. +print_r($grp_tipos); +echo "<br><br>"; +print_r($grp_componentes); +echo "<br><br>"; +print_r($grp_perfiles); ?> diff --git a/admin/WebConsole/principal/imagenes.php b/admin/WebConsole/principal/imagenes.php index 98475405..4b226e35 100644 --- a/admin/WebConsole/principal/imagenes.php +++ b/admin/WebConsole/principal/imagenes.php @@ -9,6 +9,7 @@ // Administra imágenes de un determinado Centro // ******************************************************************************************************** include_once("../includes/ctrlacc.php"); +include_once("../includes/arbol.php"); include_once("../clases/AdoPhp.php"); include_once("../clases/XmlPhp.php"); include_once("../clases/ArbolVistaXML.php"); @@ -113,12 +114,6 @@ $XMLcontextual=CreacontextualXMLImagen($AMBITO_IMAGENESINCREMENTALES, $LITAMBITO_IMAGENESINCREMENTALES, $IMAGENES_INCREMENTALES); echo $flotante->CreaMenuContextual($XMLcontextual); - echo "<br><br><br>"; - echo "<br><br><br>"; -$Repos=repos(); -$imagenes=img($Repos); -$grupos_hijos= grupos(); -listaImg($imagenes,$grupos_hijos); // Tipos de menús contextuales: // id="TipoImagen_1" @@ -483,51 +478,10 @@ function repos(){ $repositorios[$rs->campos["idrepositorio"]] = $rs->campos["nombrerepositorio"]; $rs->Siguiente(); } + $rs->Cerrar(); return($repositorios); } -// Descripción: Devuelve un array de grupos de imágenes. Ordenados por tipos de imágenes y grupo padre -// Parámetros: ninguno -// devuelve: array de grupos. -function grupos(){ - global $cmd; - global $idcentro; - - $grupos_hijos=Array(); - $rs=new Recordset; - $cmd->texto="SELECT idgrupo, nombregrupo, grupos.grupoid AS grupopadre, tipo - FROM grupos - WHERE idcentro=$idcentro AND tipo IN (70, 71, 72) - ORDER BY tipo, grupopadre, grupoid;"; - $rs->Comando=&$cmd; - if (!$rs->Abrir()) return($grupos_hijos); - - $rs->Primero(); - $oldgrupopadre=0; - $num=-1; - while (!$rs->EOF){ - $grupopadre=$rs->campos["grupopadre"]; - $nombregrupo=$rs->campos["nombregrupo"]; - - $idgrupo=$rs->campos["idgrupo"]; - // El tipo de grupo de imagenes son 70, 71 y 72 correspondiendo al tipo de imagen 1, 2 y 3 - $tipo=$rs->campos["tipo"] - 69; - if ($oldgrupopadre != $grupopadre) { - $oldgrupopadre=$grupopadre; - // Cuando cambio de grupo pongo el orden del array a cero - $num=0; - } else { - $num++; - } - $grupos_hijos[$tipo][$grupopadre][$num]["id"] = $idgrupo; - $grupos_hijos[$tipo][$grupopadre][$num]["nombre"] = $nombregrupo; - - $rs->Siguiente(); - } - return ($grupos_hijos); - -} - // Descripción: Devuelve un array de las imágenes ordenadas por tipo y grupo al que pertenecen. // Parámetros: repositorios // array repositorios: array con los nombres del repositorio, para usarlo en la descripción de la imagen. @@ -571,6 +525,7 @@ function img($repositorios){ $rs->Siguiente(); } + $rs->Cerrar(); return($imagenes); } @@ -632,5 +587,13 @@ function listaGrupo($tipo,$idgrupo,$nivel,$orden,$imagenes,$grupos_hijos){ return($orden); } + echo "<br><br><br>"; + echo "<br><br><br>"; +//$Repos=repos(); +//$imagenes=img($Repos); +//$grp_imagenes= grupos(); +$imagenes=nodos_arbol("imagenes"); +$grp_imagenes= grupos_arbol("imagenes"); +listaImg($imagenes,$grp_imagenes); ?> diff --git a/admin/WebConsole/principal/menus.php b/admin/WebConsole/principal/menus.php index 7b913402..2cc24552 100644 --- a/admin/WebConsole/principal/menus.php +++ b/admin/WebConsole/principal/menus.php @@ -9,6 +9,7 @@ // Administra los menus de los clientes rembo de un determinado Centro // ************************************************************************************************************************************************* include_once("../includes/ctrlacc.php"); +include_once("../includes/arbol.php"); include_once("../clases/AdoPhp.php"); include_once("../clases/XmlPhp.php"); include_once("../clases/ArbolVistaXML.php"); @@ -303,4 +304,12 @@ function CreacontextualXMLMenu(){ $layerXML.='</MENUCONTEXTUAL>'; return($layerXML); } + +echo "<br><br>"; +echo "<br><br>"; +$menus=nodos_arbol("menus"); +$grp_menus=grupos_arbol("menus"); +print_r($menus); +echo "<br><br>"; +print_r($grp_menus); ?> diff --git a/admin/WebConsole/principal/repositorios.php b/admin/WebConsole/principal/repositorios.php index 5b273ed4..408c17ec 100644 --- a/admin/WebConsole/principal/repositorios.php +++ b/admin/WebConsole/principal/repositorios.php @@ -9,6 +9,7 @@ // Administra los repositorios de un determinado Centro // ************************************************************************************************************************************************* include_once("../includes/ctrlacc.php"); +include_once("../includes/arbol.php"); include_once("../clases/AdoPhp.php"); include_once("../clases/XmlPhp.php"); include_once("../clases/ArbolVistaXML.php"); @@ -360,4 +361,10 @@ function ContextualXMLComandos($litambito,$ambito){ return($finallayerXML); } } +echo "<br><br>"; +$repositorios=nodos_arbol("repositorios"); +$grp_repositorios=grupos_arbol("repositorios"); +print_r($repositorios); +echo "<br><br>"; +print_r($grp_repositorios); ?> diff --git a/admin/WebConsole/principal/softwares.php b/admin/WebConsole/principal/softwares.php index 00079fc1..7f587057 100644 --- a/admin/WebConsole/principal/softwares.php +++ b/admin/WebConsole/principal/softwares.php @@ -9,6 +9,7 @@ // Administra el software de los ordenadores de un determinado Centro // ************************************************************************************************************************************************* include_once("../includes/ctrlacc.php"); +include_once("../includes/arbol.php"); include_once("../clases/AdoPhp.php"); include_once("../clases/XmlPhp.php"); include_once("../clases/ArbolVistaXML.php"); @@ -795,4 +796,26 @@ function CreacontextualXMLSoftware_Incremental(){ $layerXML.='</MENUCONTEXTUAL>'; return($layerXML); } + +echo "<br><br>"; +echo "<br><br>"; +$tipos=nodos_arbol("tipossoftware"); +$componentes=nodos_arbol("componentessoftware"); +$perfiles=nodos_arbol("perfilessoftware"); +$grp_tipos=grupos_arbol("tipossoftware"); +$grp_componentes=grupos_arbol("componentessoftware"); +$grp_perfiles=grupos_arbol("perfilessoftware"); +echo "<br><br>"; +print_r($tipos); +echo "<br><br>"; +print_r($componentes); +echo "<br><br>"; +print_r($perfiles); +echo "<br><br>"; +// No existen grupos de tipos de hardware, debe devolver array vacío. +print_r($grp_tipos); +echo "<br><br>"; +print_r($grp_componentes); +echo "<br><br>"; +print_r($grp_perfiles); ?> |