Example #1
0
<?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);
Example #2
0
 /**
  * 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");
 }
Example #3
0
    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);
    }
Example #4
0
 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);
 }
Example #5
0
 function conf__esquema(toba_ei_esquema $esquema)
 {
     $esquema->set_datos("digraph G {Hello->World}");
 }