From a9cb5552a02a2e57c0268f998a45233ca90e8860 Mon Sep 17 00:00:00 2001 From: irinagomez Date: Thu, 19 Mar 2020 09:15:12 +0000 Subject: #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. --- admin/WebConsole/includes/arbol.php | 254 ++++++++++++++++++++++++++++ admin/WebConsole/principal/acciones.php | 19 +++ admin/WebConsole/principal/aulas.php | 14 ++ admin/WebConsole/principal/hardwares.php | 23 +++ admin/WebConsole/principal/imagenes.php | 59 ++----- admin/WebConsole/principal/menus.php | 9 + admin/WebConsole/principal/repositorios.php | 7 + admin/WebConsole/principal/softwares.php | 23 +++ 8 files changed, 360 insertions(+), 48 deletions(-) create mode 100644 admin/WebConsole/includes/arbol.php 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 @@ +texto=$sql; + echo "text: ".$cmd->texto; + echo "

"; + $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 "

"; + $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.=''; return($layerXML); } +echo "

"; +echo "

"; +$comandos=nodos_arbol("comandos"); +$procedimientos=nodos_arbol("procedimientos"); +$tareas=nodos_arbol("tareas"); +$grp_procedimientos=grupos_arbol("procedimientos"); +$grp_tareas=grupos_arbol("tareas"); + +echo "

"; +print_r($comandos); +echo "

"; +print_r($procedimientos); +echo "

"; +print_r($tareas); +echo "

"; +print_r($grp_procedimientos); +echo "

"; +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 "

"; +echo "

"; +$aulas=nodos_arbol("aulas"); +$ordenadores=nodos_arbol("ordenadores"); +$grp_aulas=grupos_arbol("aulas"); +$grp_ordenadores=grupos_arbol("ordenadores"); +print_r($aulas); +echo "

"; +print_r($ordenadores); +echo "
gru aulas
"; +print_r($grp_aulas); +echo "

"; +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.=''; return($layerXML); } + +echo "

"; +echo "

"; +$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 "

"; +print_r($tipos); +echo "

"; +print_r($componentes); +echo "

"; +print_r($perfiles); +echo "

"; +// No existen grupos de tipos de hardware, debe devolver array vacío. +print_r($grp_tipos); +echo "

"; +print_r($grp_componentes); +echo "

"; +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 "


"; - echo "


"; -$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 "


"; + echo "


"; +//$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.=''; return($layerXML); } + +echo "

"; +echo "

"; +$menus=nodos_arbol("menus"); +$grp_menus=grupos_arbol("menus"); +print_r($menus); +echo "

"; +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 "

"; +$repositorios=nodos_arbol("repositorios"); +$grp_repositorios=grupos_arbol("repositorios"); +print_r($repositorios); +echo "

"; +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.=''; return($layerXML); } + +echo "

"; +echo "

"; +$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 "

"; +print_r($tipos); +echo "

"; +print_r($componentes); +echo "

"; +print_r($perfiles); +echo "

"; +// No existen grupos de tipos de hardware, debe devolver array vacío. +print_r($grp_tipos); +echo "

"; +print_r($grp_componentes); +echo "

"; +print_r($grp_perfiles); ?> -- cgit v1.2.3-18-g5258