'?> '?> CreaArbolVistaXML(); // Muestra árbol en pantalla // Crea contextual de las imágenes $flotante=new MenuContextual(); $XMLcontextual=CreaContextualXMLTiposImagenes($AMBITO_GRUPOSIMAGENESMONOLITICAS, $LITAMBITO_GRUPOSIMAGENESMONOLITICAS, $AMBITO_IMAGENESMONOLITICAS, $LITAMBITO_IMAGENESMONOLITICAS, $IMAGENES_MONOLITICAS); echo $flotante->CreaMenuContextual($XMLcontextual); $XMLcontextual=CreaContextualXMLTiposImagenes($AMBITO_GRUPOSIMAGENESBASICAS, $LITAMBITO_GRUPOSIMAGENESBASICAS, $AMBITO_IMAGENESBASICAS, $LITAMBITO_IMAGENESBASICAS, $IMAGENES_BASICAS); echo $flotante->CreaMenuContextual($XMLcontextual); $XMLcontextual=CreaContextualXMLTiposImagenes($AMBITO_GRUPOSIMAGENESINCREMENTALES, $LITAMBITO_GRUPOSIMAGENESINCREMENTALES, $AMBITO_IMAGENESINCREMENTALES, $LITAMBITO_IMAGENESINCREMENTALES, $IMAGENES_INCREMENTALES); echo $flotante->CreaMenuContextual($XMLcontextual); $XMLcontextual=CreaContextualXMLGruposImagenes($AMBITO_GRUPOSIMAGENESMONOLITICAS, $LITAMBITO_GRUPOSIMAGENESMONOLITICAS, $AMBITO_IMAGENESMONOLITICAS, $LITAMBITO_IMAGENESMONOLITICAS, $IMAGENES_MONOLITICAS); echo $flotante->CreaMenuContextual($XMLcontextual); $XMLcontextual=CreaContextualXMLGruposImagenes($AMBITO_GRUPOSIMAGENESBASICAS, $LITAMBITO_GRUPOSIMAGENESBASICAS, $AMBITO_IMAGENESBASICAS, $LITAMBITO_IMAGENESBASICAS, $IMAGENES_BASICAS); echo $flotante->CreaMenuContextual($XMLcontextual); $XMLcontextual=CreaContextualXMLGruposImagenes($AMBITO_GRUPOSIMAGENESINCREMENTALES, $LITAMBITO_GRUPOSIMAGENESINCREMENTALES, $AMBITO_IMAGENESINCREMENTALES, $LITAMBITO_IMAGENESINCREMENTALES, $IMAGENES_INCREMENTALES); echo $flotante->CreaMenuContextual($XMLcontextual); $XMLcontextual=CreacontextualXMLImagen($AMBITO_IMAGENESMONOLITICAS, $LITAMBITO_IMAGENESMONOLITICAS, $IMAGENES_MONOLITICAS); echo $flotante->CreaMenuContextual($XMLcontextual); $XMLcontextual=CreacontextualXMLImagen($AMBITO_IMAGENESBASICAS, $LITAMBITO_IMAGENESBASICAS, $IMAGENES_BASICAS); echo $flotante->CreaMenuContextual($XMLcontextual); $XMLcontextual=CreacontextualXMLImagen($AMBITO_IMAGENESINCREMENTALES, $LITAMBITO_IMAGENESINCREMENTALES, $IMAGENES_INCREMENTALES); echo $flotante->CreaMenuContextual($XMLcontextual); // Tipos de menús contextuales: // id="TipoImagen_1" // id="TipoImagen_2" // id="TipoImagen_3" // id="flo_gruposimagenesmonoliticas" // id="flo_gruposimagenesbasicas" // id="flo_gruposimagenesincrementales" // id="flo_imagenesmonoliticas" // id="flo_imagenesbasicas" // id="flo_imagenesincrementales" // En realidas son tres : tipos imagenes, grupos e imagenes. ?> '; $cadenaXML.=SubarbolXML_tiposimagenes($AMBITO_GRUPOSIMAGENESMONOLITICAS, $LITAMBITO_GRUPOSIMAGENESMONOLITICAS, $AMBITO_IMAGENESMONOLITICAS, $LITAMBITO_IMAGENESMONOLITICAS, $IMAGENES_MONOLITICAS, $TbMsg[11]); $cadenaXML.=SubarbolXML_tiposimagenes($AMBITO_GRUPOSIMAGENESBASICAS, $LITAMBITO_GRUPOSIMAGENESBASICAS, $AMBITO_IMAGENESBASICAS, $LITAMBITO_IMAGENESBASICAS, $IMAGENES_BASICAS, $TbMsg[12]); $cadenaXML.=SubarbolXML_tiposimagenes($AMBITO_GRUPOSIMAGENESINCREMENTALES, $LITAMBITO_GRUPOSIMAGENESINCREMENTALES, $AMBITO_IMAGENESINCREMENTALES, $LITAMBITO_IMAGENESINCREMENTALES, $IMAGENES_INCREMENTALES, $TbMsg[13]); $cadenaXML.=''; return($cadenaXML); } //________________________________________________________________________________________________________ function SubarbolXML_tiposimagenes($ambg,$litambg,$amb,$litamb,$tipo,$msg) { $cadenaXML=""; $cadenaXML.='texto="SELECT idgrupo,nombregrupo,grupoid FROM grupos WHERE grupoid=".$grupoid." AND idcentro=".$idcentro." AND tipo=".$ambg." ORDER BY nombregrupo"; $rs->Comando=&$cmd; //echo $cmd->texto; if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset $rs->Primero(); while (!$rs->EOF){ $cadenaXML.='campos["nombregrupo"].'"'; $cadenaXML.=' nodoid="'.$litambg."-".$rs->campos["idgrupo"]; $cadenaXML.='>'; $cadenaXML.=SubarbolXML_gruposimagenes($rs->campos["idgrupo"],$ambg,$litambg,$amb,$litamb,$tipo); $cadenaXML.=''; $rs->Siguiente(); } $rs->Cerrar(); $cadenaXML.=SubarbolXML_Imagenes($grupoid,$amb,$litamb,$tipo); return($cadenaXML); } //________________________________________________________________________________________________________ function SubarbolXML_Imagenes($grupoid,$amb,$litamb,$tipo) { global $TbMsg; global $cmd; global $idcentro; $cadenaXML=""; $rs=new Recordset; #### agp ### Añado la consulta el campo idrepositorio #### $cmd->texto="SELECT DISTINCT imagenes.idimagen,imagenes.descripcion, IFNULL(repositorios.nombrerepositorio,'".$TbMsg["DELETEDREPO"]."') AS nombrerepositorio FROM imagenes "; // Para hallar el repositorio de las incrementales hay que buscar los datos de la imagen basica (en la propia tablas imágenes) if ($tipo == 3) { $cmd->texto.=" INNER JOIN imagenes AS basica LEFT JOIN repositorios ON basica.idrepositorio=repositorios.idrepositorio WHERE imagenes.imagenid=basica.idimagen AND "; } else { $cmd->texto.=" LEFT JOIN repositorios USING (idrepositorio) WHERE "; } $cmd->texto.=" imagenes.idcentro=".$idcentro." AND imagenes.grupoid=".$grupoid." AND imagenes.tipo=".$tipo." ORDER BY imagenes.descripcion"; //echo "
".$cmd->texto; $rs->Comando=&$cmd; if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset $rs->Primero(); while (!$rs->EOF){ $cadenaXML.='campos["descripcion"].' ('.$rs->campos["nombrerepositorio"].')"'; $cadenaXML.=' nodoid='.$litamb.'-'.$rs->campos["idimagen"]; $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$litamb."'" .')"'; $cadenaXML.='>'; $cadenaXML.=''; $rs->Siguiente(); } $rs->Cerrar(); return($cadenaXML); } //________________________________________________________________________________________________________ // // Menús Contextuales //________________________________________________________________________________________________________ function CreaContextualXMLTiposImagenes($ambg,$litambg,$amb,$litamb,$tipo) { global $TbMsg; $layerXML='texto="SELECT idrepositorio, nombrerepositorio FROM repositorios;"; $rs->Comando=&$cmd; if (!$rs->Abrir()) return($repositorios); $rs->Primero(); while (!$rs->EOF){ $repositorios[$rs->campos["idrepositorio"]] = $rs->campos["nombrerepositorio"]; $rs->Siguiente(); } $rs->Cerrar(); return($repositorios); } // 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. // Devuelve: array de imágenes function img($repositorios){ global $TbMsg; global $cmd; global $idcentro; $imagenes=Array(); $grupos_hijos=Array(); $rs=new Recordset; $cmd->texto="SELECT DISTINCT imagenes.idimagen,imagenes.descripcion, imagenes.tipo, 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 imagenes.tipo, grupoid;"; $rs->Comando=&$cmd; if (!$rs->Abrir()) return(Array($imagenes)); $rs->Primero(); $ordenImg=-1; $oldgrupoid=(isset($rs->campos["grupoid"]))? $rs->campos["grupoid"] : 0; while (!$rs->EOF){ $tipo=$rs->campos["tipo"]; $idimagen=$rs->campos["idimagen"]; $descripcion=$rs->campos["descripcion"]; $idrepo=$rs->campos["repo"]; // Las imágenes 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; $ordenImg=0; } else { $ordenImg=$ordenImg+1; } $imagenes[$tipo][$grupoid][$ordenImg]["descripcion"]=$descripcion." (".$repositorios[$idrepo].")"; $imagenes[$tipo][$grupoid][$ordenImg]["id"]=$idimagen; $rs->Siguiente(); } $rs->Cerrar(); return($imagenes); } // Descripción: Comienza el árbol de imágenes en froma de lista. // Parámetros: imágenes grupos_hijos // array imágenes: Array con las imágenes según tipo y grupo al que pertenecen. // array grupos_hijos: array de los grupos hijos de cada grupo. // Devuelve: nada function listaImg ($imagenes, $grupos_hijos){ global $TbMsg; global $NUM_TIPOS_IMAGENES; $orden=0; echo '"."\n"; } // Descripción: Construye la parte del árbol correspondiente a un grupo de imágenes: lista sus imágenes y sus grupos hijos. // Parametros: tipo idgrupo nivel orden imagenes grupos_hijos // int tipo: tipo de imágenes (moniliticas, básicas, ) // int idgrupo: identificador del grupo // int nivel: nivel de la lista // int orden: orden de la lista // array imagenes: array con info de la imagen // array grupos_hijos: array de grupos hijos // Devuelve: el orden de la lista del último elemento. function listaGrupo($tipo,$idgrupo,$nivel,$orden,$imagenes,$grupos_hijos){ $nivel=$nivel+1; echo '
    '."\n"; // si existen grupos hijos del actual creo la lista con la función listaGrupo. if (isset ($grupos_hijos[$tipo][$idgrupo])){ foreach ($grupos_hijos[$tipo][$idgrupo] as $hijo) { $orden=$orden+1; echo '
  • '."\n"; //echo '
  • '."\n"; $orden=listaGrupo($tipo,$hijo["id"],$nivel,$orden,$imagenes,$grupos_hijos); } echo "
  • "."\n"; } // creo la lista de las imágenes dentro del grupo (si existen). if (isset ($imagenes[$tipo][$idgrupo])){ foreach ($imagenes[$tipo][$idgrupo] as $img){ echo '
  • '.$img["descripcion"].'
  • '."\n"; } } echo "
"."\n"; return($orden); } echo "


"; echo "


"; //$Repos=repos(); //$imagenes=img($Repos); //$grp_imagenes= grupos(); $nodos=nodos_arbol("imagenes"); $grupos= grupos_arbol("imagenes"); listaImg($nodos,$grupos); ?>