/** * Genera el tag HTML necesario para incluir el archivo generado por GrahpViz * @param string $url * @param string $formato * @param string $ancho * @param string $alto */ static function generar_sentencia_incrustacion($url, $formato, $ancho = null, $alto = null, $incluir_mapa = null, $objeto_js = null) { if (!$incluir_mapa || !($ancho && $alto)) { $ancho = isset($ancho) ? "width='{$ancho}'" : ""; $alto = isset($alto) ? "height='{$alto}'" : ""; switch ($formato) { case 'png': case 'gif': echo "<img src='{$url}' {$ancho} {$alto} border='0'>"; break; case 'svg': /*toba_js::cargar_consumos_globales(array("utilidades/svglib")); echo toba_js::abrir(); echo "//aviso_instalacion_svg()"; echo toba_js::cerrar(); */ echo "<embed src='{$url}' type='image/svg+xml' {$ancho} {$alto} palette='foreground' pluginspage='http://www.adobe.com/svg/viewer/install/auto'>\n"; echo "</embed>"; break; } } else { //Sacamos el ratio (el lado mas largo del mapa tendrá 100px) /* $ratio = ($ancho>$alto)?100/$ancho:100/$alto; $alto_mapa = $alto*$ratio; $ancho_mapa = $ancho*$ratio;*/ if (substr($alto, -2) == 'px') { $alto = substr($alto, 0, -2); } if (substr($ancho, -2) == 'px') { $ancho = substr($ancho, 0, -2); } switch ($formato) { case 'png': case 'gif': $imagen_real = "<img id='imagen_real_{$objeto_js}' src='{$url}' border='0'>"; $imagen_mapa = "<img id='imagen_mapa_{$objeto_js}' src='{$url}' border='0'>"; break; case 'svg': /*toba_js::cargar_consumos_globales(array("utilidades/svglib")); echo toba_js::abrir(); echo "//aviso_instalacion_svg()"; echo toba_js::cerrar(); */ $imagen_real = "<embed id='imagen_real_{$objeto_js}' src='{$url}' type='image/svg+xml' palette='foreground' pluginspage='http://www.adobe.com/svg/viewer/install/auto'></embed>"; $imagen_mapa = "<embed id='imagen_mapa_{$objeto_js}' src='{$url}' type='image/svg+xml' palette='foreground' pluginspage='http://www.adobe.com/svg/viewer/install/auto'></embed>"; break; } echo "\n\t\t\t<div class='ei-barra-sup ci-barra-sup ei-barra-sup-sin-botonera' style='height: 20px; width: {$ancho}px; color: white; position: relative'>\n\t\t\t\t<span id='colapsado_mapa_{$objeto_js}' style='position: absolute; width: 16px; height: 16px; left: 0px; text-align: center; padding: 2px'>" . toba_recurso::imagen_toba('colapsado.gif', true) . "</span>\n\t\t\t\t<div style='height: 20px;position: absolute; left: 20px; width: " . ($ancho - 20) . "px'> \n\t\t\t\t\t<span id='escala_mapa_{$objeto_js}' style='position: absolute; width: 16px; height: 16px; right: 0px; text-align: center; padding: 2px; border-right: 1px solid black'>" . toba_recurso::imagen_toba('transform-move.png', true) . "</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div style='height: {$alto}px; width: {$ancho}px; position: relative'>\n\t\t\t\t<div id='marco_{$objeto_js}' style='height: {$alto}px; width: {$ancho}px; overflow: hidden; position: absolute; top: 0: left: 0;'>\n\t\t\t\t\t{$imagen_real}\n\t\t\t\t</div>\n\t\t\t\t<div id='mapa_{$objeto_js}' style='position: absolute; top: 0; left: 0; border: 1px solid black; overflow: hidden'>\n\t\t\t\t\t<div id='lupa_{$objeto_js}' style='position: absolute; top: 0: left: 0; border: 1px solid red'></div>\n\t\t\t\t\t{$imagen_mapa}\n\t\t\t\t</div>\n\t\t\t\t\n\t\t\t</div>"; $tam_mapa = ''; if (substr($incluir_mapa, -1) == '%') { $tam_mapa = ($alto < $ancho ? $alto : $ancho) * (int) substr($incluir_mapa, 0, -1) / 100; } elseif (strtolower(substr($incluir_mapa, -2)) == 'px') { $tam_mapa = substr($incluir_mapa, 0, -2); } else { $tam_mapa = $incluir_mapa; } echo toba_js::incluir(toba_recurso::js('basicos/jquery-1.9.1.min.js')); echo toba_js::incluir(toba_recurso::js('utilidades/jquery-ui-1.10.1.custom.min.js')); echo toba_js::abrir(); echo "\n\t\t\tdocument.readyFunc = function(e) {\n\t\t\t\t\n\t\t\t\tvar img_real = document.getElementById('imagen_real_{$objeto_js}');\n\t\t\t\tif (img_real.clientHeight > 0 && img_real.clientWidth > 0) {\n\t\t\t\t\n\t\t\t\t\tvar marco = document.getElementById('marco_{$objeto_js}');\n\t\t\t\t\tvar mapa = document.getElementById('mapa_{$objeto_js}');\n\t\t\t\t\tvar escala = document.getElementById('escala_mapa_{$objeto_js}');\n\t\t\t\t\tvar colapsado = document.getElementById('colapsado_mapa_{$objeto_js}');\n\t\t\t\t\tvar lupa = document.getElementById('lupa_{$objeto_js}');\n\t\t\t\t\tvar img_mapa = document.getElementById('imagen_mapa_{$objeto_js}');\n\t\t\t\t\tvar ancho_mapa = 200 > marco.clientHeight?marco.clientHeight:200;\n\t\t\t\t\tvar ratio;\n\t\t\t\t\tvar alto_mapa;\n\t\t\t\t\tif(marco.clientHeight > img_real.clientHeight && marco.clientWidth > img_real.clientWidth) {\n\t\t\t\t\t\tescala.style.display = 'none';\n\t\t\t\t\t\tmapa.style.display = 'none';\n\t\t\t\t\t}\n\t\t\t\t\tvar escalar_{$objeto_js} = function(skipImg) {\n\t\t\t\t\t\tratio = ancho_mapa/img_real.clientWidth;\n\t\t\t\t\t\talto_mapa = img_real.clientHeight*ratio;\n\t\t\t\t\t\tif(alto_mapa > marco.clientHeight) {\n\t\t\t\t\t\t\tratio = marco.clientHeight/img_real.clientHeight;\n\t\t\t\t\t\t\talto_mapa = img_real.clientHeight*ratio;\n\t\t\t\t\t\t\tancho_mapa = img_real.clientWidth*ratio;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmapa.style.height= alto_mapa+'px';\n\t\t\t\t\t\tmapa.style.width= ancho_mapa+'px';\n\t\t\t\t\t\tescala.style.left= (ancho_mapa-39)+'px';\n\t\t\t\t\t\tif(!skipImg) {\n\t\t\t\t\t\t\timg_mapa.style.height= alto_mapa+'px';\n\t\t\t\t\t\t\timg_mapa.style.width= ancho_mapa+'px';\n\t\t\t\t\t\t\tlupa.style.height=((marco.clientHeight*ratio)-2)+'px';//-2: Hay que tener en cuenta el borde\n\t\t\t\t\t\t\tlupa.style.width=((marco.clientWidth*ratio)-2)+'px';\n\t\t\t\t\t\t\tlupa.style.top=(marco.scrollTop*ratio)+'px';\n\t\t\t\t\t\t\tlupa.style.left=(marco.scrollLeft*ratio)+'px';\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\tescalar_{$objeto_js}();\n\t\t\t\t\t\n\t\t\t\t\tlupa.date = new Date();\n\t\t\t\t\t\$(lupa).draggable({\n\t\t\t\t\t\tcontainment: 'parent',\n\t\t\t\t\t\t/*drag: function() {\n\t\t\t\t\t\t\tvar d = new Date();\n\t\t\t\t\t\t\tif(d.getTime() - lupa.date.getTime() > 100) {\n\t\t\t\t\t\t\t\tvar t = parseInt(lupa.style.top.substr(0, lupa.style.top.length-2))/ratio; \n\t\t\t\t\t\t\t\tvar l = parseInt(lupa.style.left.substr(0, lupa.style.left.length-2))/ratio;\n\t\t\t\t\t\t\t\tmarco.scrollTop = t;\n\t\t\t\t\t\t\t\tmarco.scrollLeft = l;\n\t\t\t\t\t\t\t\tlupa.date = d;\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t},*/ \n\t\t\t\t\t\tstop: function() {\n\t\t\t\t\t\t\tvar t = parseInt(lupa.style.top.substr(0, lupa.style.top.length-2))/ratio; \n\t\t\t\t\t\t\tvar l = parseInt(lupa.style.left.substr(0, lupa.style.left.length-2))/ratio;\n\t\t\t\t\t\t\tmarco.scrollTop = t;\n\t\t\t\t\t\t\tmarco.scrollLeft = l;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\t\$(colapsado).click(function() {\n\t\t\t\t\t\t\$(mapa).slideToggle('slow', function() {\n\t\t\t\t\t\t\tescala.style.display = this.style.display;\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t\t\$(escala).draggable({\n\t\t\t\t\t\tcontainment: 'parent', \n\t\t\t\t\t\taxis: 'x',\n\t\t\t\t\t\tdrag: function() {\n\t\t\t\t\t\t\tvar left = escala.style.left;\n\t\t\t\t\t\t\tancho_mapa = parseInt(left.substr(0, left.length - 2))+39;\n\t\t\t\t\t\t\tescalar_{$objeto_js}(true);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tstop: function() {\n\t\t\t\t\t\t\tescalar_{$objeto_js}();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\t\$(img_mapa).click(function(event) {\n\t\t\t\t\t\tvar x = event.offsetX?event.offsetX:event.layerX;\n\t\t\t\t\t\tvar y = event.offsetY?event.offsetY:event.layerY;\n\t\t\t\t\t\tvar lh = parseInt(lupa.style.height.substr(0, lupa.style.height.length-2)); \n\t\t\t\t\t\tvar lw = parseInt(lupa.style.width.substr(0, lupa.style.width.length-2));\n\t\t\t\t\t\t\n\t\t\t\t\t\tvar l = x - (lw/2) - 1; //-1: Hay que tener en cuenta el borde \n\t\t\t\t\t\tvar t = y - (lh/2) - 1; \n\t\t\t\t\t\tif(l < 0) {\n\t\t\t\t\t\t\tl = 0;\n\t\t\t\t\t\t} else if (l + lw + 2 > ancho_mapa) {\n\t\t\t\t\t\t\tl = ancho_mapa - lw - 2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(t < 0) {\n\t\t\t\t\t\t\tt = 0;\n\t\t\t\t\t\t} else if (t + lh + 2 > alto_mapa) {\n\t\t\t\t\t\t\tt = alto_mapa - lh - 2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlupa.style.top = t+'px';\n\t\t\t\t\t\tlupa.style.left = l+'px';\n\t\t\t\t\t\tmarco.scrollTop = t/ratio;\n\t\t\t\t\t\tmarco.scrollLeft = l/ratio;\n\t\t\t\t\t});\n\t\t\t\t} else { \n\t\t\t\t\tsetTimeout('\$(document).ready(document.readyFunc)', 100);\n\t\t\t\t}\n\t\t\t};\n\t\t\t\$(document).ready(document.readyFunc);\n\t\t\t"; echo toba_js::cerrar(); } }
function abrir_toba_instancia(){ var url = '<?php echo toba::vinculador()->get_url('toba_usuarios', '3432', array(), array('menu' => true)); ?> '; if ( url == '') { alert('No posee permisos para acceder al proyecto "toba_usuarios"!'); return; } var opciones = {'width': 1000, 'scrollbars' : 'yes', 'height': 650, 'resizable': 'yes'}; abrir_popup('toba_instancia', url, opciones, null, false); } </script> <?php $js_editor = toba_recurso::js('editor.js'); $datos = toba_editor::get_parametros_previsualizacion_js(); $parametros_previsualizacion = toba_js::arreglo($datos, true); ?> <SCRIPT language='JavaScript1.4' type='text/javascript' src='<?php echo $js_editor; ?> '></SCRIPT> <SCRIPT language='JavaScript1.4' type='text/javascript' > editor.set_parametros_previsualizacion(<?php echo $parametros_previsualizacion; ?> ); var tab_actual = null; function seleccionar_tab(span)
/** * Incluye una serie de librerías o consumos javascript * @param array $consumos Lista de consumos, un consumo es el path relativo a www/js, sin la ext. js */ static function cargar_consumos_globales($consumos) { $consumos = array_unique($consumos); foreach ($consumos as $consumo) { //Esto asegura que sólo se puede cargar una vez if (!in_array($consumo, self::$cargados)) { self::$cargados[] = $consumo; switch ($consumo) { //--> Expresiones regulares movidas a basico.js case 'ereg_nulo': case 'ereg_numero': break; ///--> Excepciones a la validacion del cuit, al ser dinamicas no se pueden meter en un .js ///--> Excepciones a la validacion del cuit, al ser dinamicas no se pueden meter en un .js case 'ef_cuit_excepciones': $excepciones = toba_ef_cuit::get_excepciones(); echo toba_js::abrir(); echo 'var ef_cuit_excepciones =' . toba_js::arreglo($excepciones, false); echo toba_js::cerrar(); break; //--> Por defecto carga el archivo del consumo //--> Por defecto carga el archivo del consumo default: $instalacion = toba_instalacion::instancia(); if (!$instalacion->es_js_comprimido()) { echo toba_js::incluir(toba_recurso::js("{$consumo}.js")); } else { //-- ¿Es algo comprimido? $comprimido = false; foreach (self::$consumos_compr as $compr) { if (strpos($consumo, $compr) !== false) { $comprimido = true; break; } } if (!$comprimido) { echo toba_js::incluir(toba_recurso::js("{$consumo}.js")); } elseif (!self::$comprimido_cargado) { //--- Es el comprimido y nunca se cargo, entonces cargarlo $archivo = 'toba_' . $instalacion->get_numero_version() . '.js'; echo toba_js::incluir(toba_recurso::js($archivo)); self::$comprimido_cargado = true; } } break; } } } }