<?php toba::memoria()->desactivar_reciclado(); toba::logger()->desactivar(); $esquema = toba::memoria()->get_parametro('esquema'); toba::logger()->debug("Recibiendo el esquema {$esquema}"); $grafico = toba::memoria()->get_dato_instancia($esquema, true); toba_ei_esquema::servicio__mostrar_esquema($grafico);
/** * Muestra un esquema de las tablas y los mapeos de las filas * SOLO USAR PARA DEBUG! envia todos los datos al cliente en forma plana! */ function dump_esquema($titulo = null) { //Se mantiene la cantidad de pasadas en este pedido de pagina para generar variables js unicas if (isset(self::$debug_pasadas)) { self::$debug_pasadas++; } else { self::$debug_pasadas = 1; } $grafo = self::grafo_relaciones($this->_info_dependencias, $this->_info_relaciones); $diagrama = "digraph G {\n\t\t\t\t\t\trankdir=LR;\n\t\t\t\t\t\tfontsize=8;\n\t\t\t\t\t\tnode [fontsize=6, fillcolor=white,shape=box, style=rounded,style=filled, color=gray];\n\t\t\t\t\t\t"; if (isset($titulo)) { $diagrama .= "label=\"{$titulo}\";\n"; } foreach ($grafo->getNodes() as $nodo) { $datos = $nodo->getData(); //Se determina la tabla $id_tabla = $datos['identificador']; $tabla = $this->_dependencias[$id_tabla]; //Se incluye el javascript para poder dumpear los datos de la tabla $var_tabla = $id_tabla . self::$debug_pasadas; echo toba_js::abrir(); echo "var {$var_tabla} = " . toba_js::arreglo($tabla->get_filas(null, true, false), true) . ";\n"; echo toba_js::cerrar(); //Se incluye la tabla como nodo $label = "{$id_tabla} (" . count($tabla->get_id_filas(false)) . ")"; $diagrama .= "{$id_tabla} [label=\"{$label}\"," . "URL=\"javascript: padre=(window.parent.var_dump)? window.parent : window; padre.var_dump(padre.{$var_tabla})\"];\n"; $diagrama .= $this->dump_esquema_relaciones($nodo); } $diagrama .= "}"; $parametros = array('contenido' => $diagrama, 'formato' => 'svg', 'es_dirigido' => 1); $indice = uniqid(); toba::memoria()->set_dato_instancia($indice, $parametros); $url = toba::vinculador()->get_url(toba_editor::get_id(), '1000045', array('esquema' => $indice), array('validar' => false, 'celda_memoria' => 'debug')); toba_ei_esquema::generar_sentencia_incrustacion($url, 'svg', "100%", "200px"); }
function conf__esquema(toba_ei_esquema $esquema) { $grafo = $this->get_grafo(); $diagrama = 'digraph G { rankdir=LR; fontsize=10; node [fontsize=10, fillcolor=white,shape=box, style=rounded,style=filled, color=gray]; '; foreach ($grafo->getNodes() as $nodo) { $data = $nodo->getData(); $label = $data['usuario_grupo_acc']; $nombre = $data['nombre']; $diagrama .= "{$label} [label=\"{$nombre}\"];\n"; foreach ($nodo->getNeighbours() as $nodo_vecino) { //Incluyo la relaciĆ³n $vecino = $nodo_vecino->getData(); $diagrama .= $label . ' -> ' . $vecino['usuario_grupo_acc'] . " [label=\"miembro de\",fontsize=10,color=gray];\n"; } } $diagrama .= '}'; $esquema->set_datos($diagrama); }
function conf__relaciones_esquema(toba_ei_esquema $esquema) { $tablas = $this->get_entidad()->tabla('dependencias')->get_filas(); $relaciones = $this->get_entidad()->tabla('relaciones')->get_filas(); $grafo = toba_datos_relacion::grafo_relaciones($tablas, $relaciones); $diagrama = "digraph G { \n"; $diagrama .= "size=\"7,7\";\n"; $diagrama .= "node [shape=record];\n"; foreach ($grafo->getNodes() as $nodo) { $datos = $nodo->getData(); $diagrama .= $datos['identificador'] . "\n"; foreach ($nodo->getNeighbours() as $nodo_vecino) { $datos_vecino = $nodo_vecino->getData(); $diagrama .= $datos['identificador'] . ' -> ' . $datos_vecino['identificador'] . "\n"; } } $diagrama .= '}'; $esquema->set_datos($diagrama); }
function conf__esquema(toba_ei_esquema $esquema) { $esquema->set_datos("digraph G {Hello->World}"); }