summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoririnagomez <irinagomez@us.es>2020-03-19 09:15:12 +0000
committeririnagomez <irinagomez@us.es>2020-03-19 09:15:12 +0000
commita9cb5552a02a2e57c0268f998a45233ca90e8860 (patch)
tree7b207f6c7a20f50da6a97ee3200476468f5cb08f
parent4d9240ce27f86bb8b0bd76bec6ea397fa186232e (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.php254
-rw-r--r--admin/WebConsole/principal/acciones.php19
-rw-r--r--admin/WebConsole/principal/aulas.php14
-rw-r--r--admin/WebConsole/principal/hardwares.php23
-rw-r--r--admin/WebConsole/principal/imagenes.php59
-rw-r--r--admin/WebConsole/principal/menus.php9
-rw-r--r--admin/WebConsole/principal/repositorios.php7
-rw-r--r--admin/WebConsole/principal/softwares.php23
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);
?>