/** * Para el tipo de gráfico 'otro' hay que especificar todo lo referente a * jpgraph. Desde la inclusión de los archivos necesarios hasta la instanciación * de todas las componentes que esta necesita para generar un gráfico. * Lo único que hay que hacer es 'avisarle' al gráfico de toba cuál es el * canvas que se tiene que dibujar. Todo el resto es legal y bonito * * @param toba_ei_grafico $grafico */ function conf__grafico(toba_ei_grafico $grafico) { require_once toba_dir() . '/php/3ros/jpgraph/jpgraph.php'; require_once toba_dir() . '/php/3ros/jpgraph/jpgraph_contour.php'; $data = array(array(0.5, 1.1, 1.5, 1, 2.0, 3, 3, 2, 1, 0.1), array(1.0, 1.5, 3.0, 5, 6.0, 2, 1, 1.2, 1, 4), array(0.9, 2.0, 2.1, 3, 6.0, 7, 3, 2, 1, 1.4), array(1.0, 1.5, 3.0, 4, 6.0, 5, 2, 1.5, 1, 2), array(0.8, 2.0, 3.0, 3, 4.0, 4, 3, 2.4, 2, 3), array(0.6, 1.1, 1.5, 1, 4.0, 3.5, 3, 2, 3, 4), array(9.0, 1.5, 3.0, 5, 6.0, 2, 1, 1.2, 2.7, 4), array(9.800000000000001, 9.0, 3.0, 3, 5.5, 6, 3, 2, 1, 1.4), array(9.0, 1.5, 3.0, 4, 6.0, 5, 2, 1, 0.5, 0.2)); // Setup a basic graph context with some generous margins to be able // to fit the legend $canvas = new Graph(650, 300); $canvas->SetMargin(40, 140, 60, 40); $canvas->title->Set('Uso avanzado de la librería'); $canvas->title->SetFont(FF_ARIAL, FS_BOLD, 14); // For contour plots it is custom to use a box style ofr the axis $canvas->legend->SetPos(0.05, 0.5, 'right', 'center'); $canvas->SetScale('intint'); $canvas->SetAxisStyle(AXSTYLE_BOXOUT); $canvas->xgrid->Show(); $canvas->ygrid->Show(); // A simple contour plot with default arguments (e.g. 10 isobar lines) $cp = new ContourPlot($data); // Display the legend $cp->ShowLegend(); // Make the isobar lines slightly thicker $cp->SetLineWeight(2); $canvas->Add($cp); // Con esta llamada informamos al gráfico cuál es el gráfico que se tiene // que dibujar $grafico->conf()->canvas__set($canvas); }
protected function cargar_jasper() { if (!defined("JAVA_HOSTS")) { define("JAVA_HOSTS", "127.0.0.1:8081"); } //Incluimos la libreria JavaBridge require_once "3ros/JavaBridge/java/Java.inc"; //Creamos una variable que va a contener todas las librerías java presentes $path_libs = toba_dir() . '/php/3ros/JasperReports'; $classpath = ''; try { $archivos = toba_manejador_archivos::get_archivos_directorio($path_libs, '|.*\\.jar$|', true); foreach ($archivos as $archivo) { $classpath .= "file:{$archivo};"; } } catch (toba_error $et) { toba::logger()->error($et->getMessage()); //No se encontro el directorio, asi que no agrega nada al path y sigue el comportamiento que tenia con opendir } try { //Añadimos las librerías java_require($classpath); //Creamos el objeto JasperReport que permite obtener el reporte $this->jasper = new JavaClass("net.sf.jasperreports.engine.JasperFillManager"); } catch (JavaException $ex) { $trace = new Java("java.io.ByteArrayOutputStream"); $ex->printStackTrace(new Java("java.io.PrintStream", $trace)); print "java stack trace: {$trace}\n"; } catch (java_ConnectException $e) { toba::logger()->error($e->getMessage()); throw new toba_error_usuario('No es posible generar el reporte, el servlet Jasper no se encuentra corriendo'); } }
function show() { $this->comp['edit_archivo']->set_title('Seleccione un archivo SQL a ejecutar'); $this->comp['edit_archivo']->set_current_folder(toba_dir()); $this->comp['dlg_ejecutar_sql']->run(); return $this->datos; }
function conf__grafico(toba_ei_grafico $grafico) { if (isset($this->datos)) { $datos = array(); $leyendas = array(); foreach ($this->datos as $value) { $datos[] = $value['resultado']; $leyendas[] = $value['codc_uacad']; } } require_once toba_dir() . '/php/3ros/jpgraph/jpgraph.php'; require_once toba_dir() . '/php/3ros/jpgraph/jpgraph_bar.php'; // Setup a basic graph context with some generous margins to be able // to fit the legend $canvas = new Graph(900, 300); $canvas->SetMargin(100, 140, 60, 40); $canvas->title->Set('Cr�dito Disponible'); //$canvas->title->SetFont(FF_ARIAL,FS_BOLD,14); // For contour plots it is custom to use a box style ofr the axis $canvas->legend->SetPos(0.05, 0.5, 'right', 'center'); $canvas->SetScale('intint'); //$canvas->SetAxisStyle(AXSTYLE_BOXOUT); //$canvas->xgrid->Show(); $canvas->ygrid->Show(); $canvas->xaxis->SetTickLabels($leyendas); // A simple contour plot with default arguments (e.g. 10 isobar lines) $cp = new BarPlot($datos); $cp->SetColor("#B0C4DE"); $cp->SetFillColor("#B0C4DE"); $cp->SetLegend("Resultado"); $canvas->Add($cp); // Con esta llamada informamos al gr�fico cu�l es el gr�fico que se tiene // que dibujar $grafico->conf()->canvas__set($canvas); }
/** * Este método existe debido a que la definición de la constante TTF_DIR debe * ser hecha antes de incluir la librería jpgraph. Por tanto todas las clases * que extiendan de esta deben redefinir este método con una llamada * parent::set_up_jpgraph() y luego incluir las líbrerías utilizadas en esa * clase específica */ protected function set_up_jpgraph() { if (!defined("TTF_DIR")) { $path = toba::instalacion()->get_fonts_path(); if ($path !== false) { define("TTF_DIR", $path); } } require_once toba_dir() . '/php/3ros/jpgraph/jpgraph.php'; }
function proyecto__agregar_config_rest() { $proyecto = $this->elemento->get_id(); $dir_proyecto = $this->elemento->get_dir(); $destino = $dir_proyecto . '/www/rest.php'; copy(toba_dir() . '/php/modelo/template_proyecto/www/rest.php', $destino); $editor = new toba_editor_archivos(); $editor->agregar_sustitucion('|__proyecto__|', $proyecto); $editor->procesar_archivo($destino); }
function generar_layout() { //--- Barra SVN echo "<div class='editor-vista-previa'>" . $this->controlador()->get_info_archivo(); echo '<div>'; $this->generar_botones_eventos(true); echo '</div></div>'; //--- Barra de convenciones $mensajes_linea = array(); $modelo = toba_editor::get_modelo_proyecto(); $estandar = $modelo->get_estandar_convenciones(); $path = $this->controlador()->get_path_archivo(); if (file_exists($path)) { $resultado = $estandar->validar(array($path)); $titulo = '<strong>Convenciones</strong>'; $cant_errores = $resultado['totals']['errors']; $cant_warnings = $resultado['totals']['warnings']; $extra = ''; if ($cant_errores === 0 && $cant_warnings === 0) { $nivel = 'info'; $salida = 'Ok!'; } else { $nivel = $cant_errores !== 0 ? 'error' : 'warning'; $salida = "{$cant_errores} "; $salida .= $cant_errores !== 1 ? 'errores' : 'error'; $salida .= " / {$cant_warnings} "; $salida .= $cant_warnings !== 1 ? 'avisos' : 'aviso'; foreach ($resultado['files'][$path]['messages'] as $linea => $columnas) { $textos = array(); foreach ($columnas as $column => $mensajes) { foreach ($mensajes as $mensaje) { //$extra .= "<strong>$linea</strong>:{$mensaje['message']}"; $imagen = $mensaje['type'] == 'ERROR' ? 'error.gif' : 'warning.gif'; $textos[] = $estandar->parsear_mensaje($mensaje['message']); //Cambia el id de la convencion por una url } } $ayuda = implode('<br><br>', $textos); $ayuda = str_replace("'", "`", $ayuda); $mensajes_linea[$linea] = toba_recurso::imagen_toba($imagen, true, null, null, $ayuda); } } $this->generar_html_descripcion("{$titulo}: {$salida} {$extra}", $nivel); } //-- Vista previa echo "<div class='editor-vista-previa-codigo'>"; $codigo = $this->controlador()->get_previsualizacion(); require_once toba_dir() . '/php/3ros/PHP_Highlight.php'; $h = new PHP_Highlight(false); $h->loadString($codigo); $formato_linea = "<span class='editor-linea-codigo'>%02d</span> "; echo @$h->toHtml(true, true, $formato_linea, true, $mensajes_linea); echo '</div>'; }
function __construct($numero) { if ($numero == 'trunk') { $this->build = 'trunk'; return; } $this->path_migraciones = toba_dir() . '/php/modelo/migraciones'; $formato = 'El formato debe ser x.y.z (inestable-build). Donde (inestable-build) es opcional'; $numero = trim($numero); $this->build = null; $this->partes = explode('.', $numero); //Validando el numero if (count($this->partes) < 3) { throw new toba_error("El número de versión {$numero} es incorrecto. Se requiere al menos 3 partes. " . $formato); } if (!is_numeric($this->partes[2])) { $digito = intval($this->partes[2]); if (!is_numeric($digito)) { throw new toba_error("El número de versión {$numero} es incorrecto. Las partes deben ser numéricas. " . $formato); } $extra = trim(str_replace(array('(', ')'), '', substr($this->partes[2], strlen($digito)))); $this->partes[2] = $digito; $extra = explode('-', $extra); $build = ''; if (count($extra) == 2) { $inestable = $extra[0]; $build = $extra[1]; } else { if (is_numeric($extra[0])) { $build = $extra[0]; } else { $inestable = $extra[0]; } } if (isset($inestable)) { if (!in_array($inestable, $this->inestables)) { throw new toba_error("El número de versión {$numero} es incorrecto. El codigo de inestable '{$inestable}' no es válido. " . $formato); } $this->inestable = $inestable; } if ($build != '') { $this->build = $build; if (!is_numeric($build)) { throw new toba_error("El número de versión {$numero} es incorrecto. El codigo de build '{$build}' no es válido. " . $formato); } } } foreach ($this->partes as $parte) { if (!is_numeric($parte) || !is_int(intval($parte))) { throw new toba_error("El número de versión {$numero} es incorrecto. Las partes deben ser numéricas " . $formato); } } }
function __construct($toba_instalador, $param_comando) { $this->param_comando = $param_comando; $this->toba_instalador = $toba_instalador; $archivo = dirname(__FILE__) . '/toba.glade'; $glade = new GladeXML($archivo, 'dlg_importar_instancia'); foreach (self::$comp_req as $comp) { $this->comp[$comp] = $glade->get_widget($comp); } $glade->signal_autoconnect_instance($this); $this->comp['edit_toba']->set_text(toba_dir()); $this->evt__cambio_directorio(); }
function __construct($estandar = 'Toba', $warnings = true) { $this->warnings = $warnings; if ($estandar == 'Toba') { $this->estandar = toba_dir() . '/php/convenciones/Toba'; $this->estandar = toba_manejador_archivos::path_a_plataforma($this->estandar); } else { $this->estandar = $estandar; } $this->sniffer = new PHP_CodeSniffer(0); if (!$this->sniffer->isInstalledStandard($this->estandar)) { throw new toba_error("El estandar '{$this->estandar}' no esta instalado"); } }
function proyecto__copiar_punto_acceso() { $dir_destino = $this->elemento->get_dir() . '/www/'; $destino_final = toba_manejador_archivos::path_a_plataforma($dir_destino . 'servicios.php'); $origen = toba_dir() . '/php/modelo/template_proyecto/www/servicios.php'; if (!toba_manejador_archivos::existe_archivo_en_path($destino_final)) { $template = file_get_contents($origen); //Leo el template original $editor = new toba_editor_texto(); $editor->agregar_sustitucion('|__proyecto__|', $this->elemento->get_id()); $salida = $editor->procesar($template); file_put_contents($destino_final, $salida, FILE_APPEND); } }
static function ejecutar($cmd, &$stdout, &$stderr) { $outfile = tempnam(toba_dir() . '/temp', "cmd"); $errfile = tempnam(toba_dir() . '/temp', "cmd"); $descriptorspec = array(0 => array("pipe", "r"), 1 => array("file", $outfile, "w"), 2 => array("file", $errfile, "w")); $proc = proc_open($cmd, $descriptorspec, $pipes); if (!is_resource($proc)) { return 255; } fclose($pipes[0]); $exit = proc_close($proc); $stdout = file_get_contents($outfile); $stderr = file_get_contents($errfile); unlink($outfile); unlink($errfile); return $exit; }
function generar_pdf() { require_once toba_dir() . '/php/3ros/ezpdf/class.ezpdf.php'; $pdf = new Cezpdf(); $pdf->selectFont(toba_dir() . '/php/3ros/ezpdf/fonts/Helvetica.afm'); $pdf->ezText('Ejemplo Firma Digital. Tiene dos attachments XML', 14); //-- Cuadro con datos $opciones = array('splitRows' => 0, 'rowGap' => 1, 'showHeadings' => true, 'titleFontSize' => 9, 'fontSize' => 10, 'shadeCol' => array(0.9, 0.9, 0.9), 'outerLineThickness' => 0.7, 'innerLineThickness' => 0.7, 'xOrientation' => 'center', 'width' => 500); $this->s__datos_juegos = toba::db()->consultar("SELECT * from ref_juegos"); $pdf->ezTable($this->s__datos_juegos, '', 'Juegos', $opciones); $this->s__datos_deportes = toba::db()->consultar("SELECT * from ref_deportes"); $pdf->ezTable($this->s__datos_deportes, '', 'Deportes', $opciones); $tmp = $pdf->ezOutput(0); $this->s__pdf = array(); $sesion = get_firmador()->generar_sesion(); $this->s__pdf['path'] = toba::proyecto()->get_path_temp() . "/doc{$sesion}_sinfirma.pdf"; if (!file_put_contents($this->s__pdf['path'], $tmp)) { throw new toba_error("Imposible escribir en '{$this->s__pdf['path']}'. Chequee permisos"); } }
function instancia__migracion_variables_entorno() { //Busco los archivos ya sean PHP o de lotes $dir_base = toba_dir() . '/bin'; $archivos_php = toba_manejador_archivos::get_archivos_directorio($dir_base, '|.php|', true); $archivos_sh = toba_manejador_archivos::get_archivos_directorio($dir_base, '|.sh|', true); $archivos_bat = toba_manejador_archivos::get_archivos_directorio($dir_base, '|.bat|', true); //Proceso los cambios de asignacion de variables $editor = new toba_editor_archivos(); $editor->agregar_sustitucion('|\\stoba_instancia\\s*=|', ' TOBA_INSTANCIA='); $editor->agregar_sustitucion('|\\stoba_proyecto\\s*=|', ' TOBA_PROYECTO='); $editor->agregar_sustitucion('|\\stoba_dir\\s*=|', ' TOBA_DIR='); $editor->agregar_sustitucion('|\\$toba_dir|', '$TOBA_DIR'); $editor->procesar_archivos($archivos_php); $editor->procesar_archivos($archivos_sh); $editor->procesar_archivos($archivos_bat); //Proceso las lecturas de variables en $_SERVER $editor2 = new toba_editor_archivos(); $editor2->agregar_sustitucion('|$_SERVER[\'toba_proyecto\']|', '$_SERVER[\'TOBA_PROYECTO\']'); $editor2->agregar_sustitucion('|$_SERVER[\'toba_instancia\']|', '$_SERVER[\'TOBA_INSTANCIA\']'); $editor2->procesar_archivos($archivos_php); }
function generar_html() { echo "\n<table class='ei-base ei-esquema-base'>\n"; echo "<tr><td style='padding:0'>\n"; echo $this->get_html_barra_editor(); $this->generar_html_barra_sup(null, true, "ei-esquema-barra-sup"); $colapsado = isset($this->_colapsado) && $this->_colapsado ? "style='display:none'" : ""; echo "<div {$colapsado} id='cuerpo_{$this->objeto_js}'>"; //Campo de sincronizacion con JS echo toba_form::hidden($this->_submit, ''); $this->s__path = toba_dir() . '/temp/' . uniqid() . '.png'; try { $this->_conf->imagen__generar($this->s__path); } catch (JpGraphException $e) { throw new toba_error("TOBA EI GRAFICO: Error en la librería jpgraph. \n\t\t\t\tEl error reportado fue el siguiente: '" . $e->getMessage() . "'. Si este\n\t\t\t\tes un error de fuentes intente definir el path de las fuentes en\n\t\t\t\tsu sistema a través de la entrada fonts_path en el archivo instancia.ini.\n\t\t\t\tEjemplo: 'fonts_path = /usr/share/fonts/truetype/msttcorefonts/'"); } $destino = array($this->_id); $url = toba::vinculador()->get_url(null, null, array(), array('servicio' => 'mostrar_imagen', 'objetos_destino' => $destino)); echo "<img src='{$url}' {$this->_ancho} {$this->_alto} border='0'>"; //$this->generar_botones(); echo "</div></td></tr>\n"; echo "</table>\n"; }
function evt__form_paleta__generar($datos) { $this->evt__form_paleta__modificacion($datos); $datos = $this->dep('datos')->get(); $paleta = unserialize($datos['paleta']); $template = file_get_contents($this->template); if ($datos['proyecto'] == 'toba') { $dir_salida = toba_dir(); } else { $dir_salida = toba::instancia()->get_path_proyecto($datos['proyecto']); } $dir_salida = $dir_salida . '/www/skins/' . $datos['estilo']; if (!file_exists($dir_salida)) { toba_manejador_archivos::crear_arbol_directorios($dir_salida); } $archivo_salida = $dir_salida . '/toba.css'; foreach ($paleta as $clave => $valor) { $template = str_replace('{$' . $clave . '}', $valor, $template); } file_put_contents($archivo_salida, $template); $this->pantalla()->set_descripcion('Plantilla css generada. Recuerde generar una imagen <b>barra-sup.gif</b> (o copiarlo de un skin existente) ' . "y guardarla en <b>{$dir_salida}</b>", 'warning'); $this->dep('datos')->sincronizar(); }
<?php require_once toba_dir() . '/php/3ros/simpletest/unit_tester.php'; require_once toba_dir() . '/php/3ros/simpletest/mock_objects.php'; //require_once('testing/mocks/hilo_version_test.php'); class toba_test extends UnitTestCase { protected $separar_pruebas = false; function separar_pruebas($estado = false) { $this->separar_pruebas = $estado; } function tearDown() { $this->restaurar_estado($this->sentencias_restauracion()); } protected function sentencias_restauracion() { return array(); } protected function restaurar_estado($sentencias) { foreach ($sentencias as $sql) { $rs = toba_contexto_info::get_db()->ejecutar($sql); if (!$rs) { $this->Fail("Error restaurando estado:\n{$sql}\n" . toba_contexto_info::get_db()->ErrorMsg()); } } } /* * Crea un runner customizado por toba (agrega separaciones en el LOG por test)
/** * Ejecuta la batería de test automáticos de un proyecto * @consola_parametros Parámetros: -p Proyecto [-c Cat] [-t Caso] */ function opcion__automaticos() { $path_autoload_sel = '/php/testing/selenium/test_selenium_autoload.php'; require_once 'modelo/lib/testing_unitario/toba_test_lista_casos.php'; require_once toba_dir() . '/php/3ros/simpletest/unit_tester.php'; require_once toba_dir() . '/php/3ros/simpletest/reporter.php'; $param = $this->get_parametros(); $proyecto = isset($param['-p']) ? $param['-p'] : $this->get_id_proyecto_actual(true); $instancia = isset($param['-i']) ? $param['-i'] : $this->get_id_instancia_actual(true); toba_nucleo::instancia()->iniciar_contexto_desde_consola($instancia, $proyecto); $path = $this->get_instancia()->get_path_proyecto($proyecto); if (file_exists($path . $path_autoload_sel)) { require_once $path . $path_autoload_sel; spl_autoload_register(array('test_selenium_autoload', 'cargar')); } toba_test_lista_casos::$proyecto = $proyecto; toba_test_lista_casos::$instancia = $instancia; //Selecciono una categoria if (isset($param['-c'])) { $seleccionados = toba_test_lista_casos::get_casos($param['-c']); } //Seleccion de un test particular if (isset($param['-t'])) { $seleccionados = toba_test_lista_casos::get_casos(); $particular = false; foreach ($seleccionados as $caso) { if ($caso['id'] == $param["-t"]) { $particular = $caso; } } if ($particular) { $seleccionados = array($particular); } else { $seleccionados = array(); } } elseif (!isset($param['-c'])) { //Ni categoria ni test, elijo de una lista presentada $seleccionados = toba_test_lista_casos::get_casos(); $lista = array(); $klaves = array_keys($seleccionados); foreach ($seleccionados as $caso) { $lista[$caso['id']] = $caso['nombre']; } $elegidos = $this->consola->dialogo_lista_opciones($lista, 'Seleccione el caso de test', true, null, false); foreach ($klaves as $klave) { if (!in_array($seleccionados[$klave]['id'], $elegidos)) { unset($seleccionados[$klave]); } } } $resultado = null; try { $separar_casos = isset($param["-l"]) ? true : false; $separar_pruebas = isset($param["-l"]) ? true : false; $test = new toba_test_grupo_casos('Casos de TEST', $separar_casos, $separar_pruebas); foreach ($seleccionados as $caso) { require_once $caso['archivo']; $test->addTestCase(new $caso['id']($caso['nombre'])); } //Termina la ejecución con 0 o 1 para que pueda comunicarse con al consola $resultado = $test->run(new TextReporter()); } catch (Exception $e) { if (method_exists($e, 'mensaje_consola')) { $this->consola->mensaje($e->mensaje_consola()); } else { $this->consola->mensaje($e); } $resultado = 1; } //Guardar LOGS? if (isset($param["-l"])) { toba::logger()->debug('Tiempo utilizado: ' . toba::cronometro()->tiempo_acumulado() . ' seg.'); toba::logger()->guardar(); } exit(intval($resultado)); }
/** * Cambia los permisos de los archivo para que el usuario Apache cree directorios y pueda crear y leer carpetas navegables * @consola_parametros [-u usuario apache, se asume www-data] [-g grupo de usuarios, no se asume ninguno] * @gtk_icono password.png */ function opcion__cambiar_permisos() { //Si es produccion dar permisos solo a apache, sino a usuario y grupo $subject = $this->get_instalacion()->es_produccion() ? "u" : "ug"; $param = $this->get_parametros(); $grupo = isset($param['-g']) ? $param['-g'] : null; $usuario = isset($param['-u']) ? $param['-u'] : 'www-data'; $toba_dir = toba_dir(); $this->consola->subtitulo('Cambiando permisos de archivos navegables'); $comandos = array(array("chown -R {$usuario} {$toba_dir}/www", "Archivos navegables comunes:\n"), array("chmod -R {$subject}+rw {$toba_dir}/www", ''), array("chown -R {$usuario} {$toba_dir}/instalacion", "Archivos de configuración:\n"), array("chmod -R {$subject}+rw {$toba_dir}/instalacion", ''), array("chown -R {$usuario} {$toba_dir}/temp", "Archivos temporales comunes:\n"), array("chmod {$subject}+rw {$toba_dir}/temp", '')); foreach (toba_modelo_instalacion::get_lista_proyectos() as $proyecto) { $id_proyecto = basename($proyecto); $comandos[] = array("chown -R {$usuario} {$proyecto}/www", "Archivos navegables de {$id_proyecto}:\n"); $comandos[] = array("chmod -R {$subject}+rw {$proyecto}/www", ''); $comandos[] = array("chown -R {$usuario} {$proyecto}/temp", "Archivos temporales de {$id_proyecto}:\n"); $comandos[] = array("chmod -R {$subject}+rw {$proyecto}/temp", ''); } foreach ($comandos as $comando) { $this->consola->mensaje($comando[1], false); $this->consola->mensaje(" " . $comando[0] . exec($comando[0])); } if (isset($grupo)) { $comando = "chgrp -R {$grupo} {$toba_dir}"; $this->consola->subtitulo("\nCambiando permisos globales para el grupo {$grupo}"); $this->consola->mensaje(" " . $comando . exec($comando)); $comando = "chmod -R g+rw {$toba_dir}"; $this->consola->mensaje(" " . $comando . exec($comando)); } }
/** * Coloca el path de las fuentes apuntando al directorio correcto * @ignore */ function set_path_fuentes() { $this->gd_font_file = toba_dir() . '/php/3ros/securimage/gdfonts/bubblebath.gdf'; $this->ttf_file = toba_dir() . '/php/3ros/securimage/elephant.ttf'; }
/** * Método que se utiliza en la respuesta del filtro del combo editable cuando se quiere validar un id seleccionado */ function servicio__filtrado_ef_ce_validar() { require_once toba_dir() . '/php/3ros/JSON.php'; if (!isset($_GET['filtrado-ce-ef']) || !isset($_GET['filtrado-ce-valor'])) { throw new toba_error_seguridad("Validación de combo editable: Invocación incorrecta"); } $id_ef = trim(toba::memoria()->get_parametro('filtrado-ce-ef')); $valor = trim(toba::memoria()->get_parametro('filtrado-ce-valor')); //$fila_actual = trim(toba::memoria()->get_parametro('filtrado-ce-fila')); $descripcion = $this->_carga_opciones_ef->ejecutar_metodo_carga_descripcion_ef($id_ef, $valor); $estado = array($valor => $descripcion); //--- Se arma la respuesta en formato JSON $json = new Services_JSON(); echo $json->encode($estado); }
function ejecutar_ventana_migracion_version($con_transaccion = true) { toba_logger::instancia()->debug('Ejecutando ventana de migracion de instancia'); $path_migracion_instancia = toba_dir() . '/php/modelo/migraciones_instancia'; //Armo la ubicacion en donde se hallan los pasos de migracion de la instancia $version_actual = new toba_version($this->get_version_actual()); //Recupero la version de la instancia existente $actual_codigo = new toba_version(toba_modelo_instalacion::get_version_actual()); //Recupero la version actual del codigo instalado $version_actual->set_path_migraciones($path_migracion_instancia); //Cambio el path a las migraciones por defecto $versiones = $version_actual->get_secuencia_migraciones($actual_codigo, $path_migracion_instancia); //Calculo cuales son los pasos a dar if (empty($versiones)) { return; } foreach (array_keys($versiones) as $version) { $versiones[$version]->set_path_migraciones($path_migracion_instancia); //Hago la migracion para cada version intermedia $this->migrar_version($versiones[$version], false, $con_transaccion); } }
<?php require_once toba_dir() . '/php/3ros/JSON.php'; /** * Clase que representa una respuesta AJAX (php => js) * Tiene dos metodos, uno pensado para comportamientos de alto nivel (set) en donde el framework interpreta el tipo de salida * y otro para bajo nivel (agregar) en donde el manejo de la información queda a cargo del consumidor * @package Componentes * @subpackage Eis */ class toba_ajax_respuesta { protected $modo; protected $contenido = null; /** * @ignore */ function __construct($modo) { $this->modo = $modo; } /** * Construye la respuesta en base al contenido pasado. * Cuando se comunica este contenido a JS se adecua el formato según como fue el pedido inicialmente (datos o html) * @param mixed $contenido */ function set($contenido) { $this->contenido = $contenido; } /**
function generar_pdf() { $datos = $this->get_datos_persona(); $temp = rand(); $datos_persona = array(); $datos_persona['id'] = $datos['id']; $datos_persona['nombre'] = $datos['nombre']; $datos_persona['fecha_nac'] = $datos['fecha_nac']; //Generar PDF require_once toba_dir() . '/php/3ros/ezpdf/class.ezpdf.php'; $pdf = new Cezpdf(); $pdf->selectFont(toba_dir() . '/php/3ros/ezpdf/fonts/Helvetica.afm'); $pdf->ezText('Ejemplo Firma Digital. Tiene un attachment XML', 14); $pdf->ezText(''); $pdf->ezText("ID: {$datos['id']}", 14); $pdf->ezText("Nombre: {$datos['nombre']}", 14); $pdf->ezText("Fecha Nacimiento: {$datos['fecha_nac']}", 14); //Guardarlo en un archivo temporal $pdf_persona = toba::proyecto()->get_path_temp() . "/{$temp}.pdf"; file_put_contents($pdf_persona, $pdf->ezOutput(0)); //Generar XML $xml_persona = toba::proyecto()->get_path_temp() . "/{$temp}.xml"; $xml = new toba_xml_tablas(); $xml->set_tablas($datos_persona, "persona"); $xml->guardar($xml_persona); //Agrego XMLs a PDF toba_firma_digital::pdf_add_attachments($pdf_persona, array($xml_persona)); //Actualizo tabla $this->guardar_pdf_en_tabla($pdf_persona, false); //Retorno PDF y borro temporales $retorno = file_get_contents($pdf_persona); unlink($pdf_persona); unlink($xml_persona); return $retorno; }
function evt__mostrar_opciones() { $objeto_cmd = $this->get_objeto_comando($this->seleccion); $this->opciones = $objeto_cmd->inspeccionar_opciones(); $this->comp['label_info']->set_markup($objeto_cmd->get_info_extra()); //------ Cambia algunas cosas de lugar if ($objeto_cmd instanceof comando_base) { $opciones_a_sacar = array('listar', 'registrar'); $hay_que_sacar = $objeto_cmd->tiene_definido_base(); foreach (array_keys($this->opciones) as $id) { $existe = in_array($id, $opciones_a_sacar); if ($existe && $hay_que_sacar) { unset($this->opciones[$id]); } if (!$existe && !$hay_que_sacar) { unset($this->opciones[$id]); } } } //----------------------------------- $i = 0; foreach ($this->opciones as $opcion => $atributos) { if (!isset($atributos['tags']['gtk_no_mostrar'])) { $nombre = ucwords(str_replace('_', ' ', $opcion)); $boton = new GtkToolButton(); $boton->set_label($nombre); if (isset($atributos['tags']['gtk_icono'])) { $archivo = $atributos['tags']['gtk_icono']; $img = GtkImage::new_from_file(toba_dir() . '/www/img/' . $archivo); $boton->set_property('icon-widget', $img); } $boton->set_tooltip($this->tooltips, $atributos['ayuda']); $boton->connect('clicked', array($this, 'evt__ejecutar'), $opcion, $atributos); $this->comp['caja_opciones']->insert($boton, $i); //--- Desactivar algunos if ($objeto_cmd instanceof comando_instalacion && ($opcion == 'instalar' || $opcion == 'crear') && toba_modelo_instalacion::existe_info_basica()) { $boton->set_sensitive(false); } //---- $i++; } if (isset($atributos['tags']['gtk_separador'])) { $boton = new GtkSeparatorToolItem(); $this->comp['caja_opciones']->insert($boton, $i); $i++; } } $this->comp['caja_opciones']->show_all(); }
<?php require_once toba_dir() . '/php/3ros/cssparser.php'; //---------------------------------------------------------------- class ci_comparador extends toba_ci { protected $estilos; protected $contenidos = array(); protected $analisis; function mantener_estado_sesion() { $propiedades = parent::mantener_estado_sesion(); $propiedades[] = 'estilos'; return $propiedades; } function get_contenido($estilo) { if (!isset($this->contenidos[$estilo])) { $candidato = toba::instalacion()->get_path() . "/www/css/{$estilo}.css"; if (file_exists($candidato)) { $archivo = $candidato; } else { //Si el archivo no esta en toba, esta en algun proyecto $proyectos = toba_info_instancia::get_proyectos_con_estilo($estilo); foreach ($proyectos as $proyecto) { $pro = $proyecto['proyecto']; $candidato = toba::instancia()->get_path_proyecto($pro) . "/www/css/{$estilo}.css"; if (file_exists($candidato)) { $archivo = $candidato; } }
/** * Cambia la fuente para futuras inserciones de texto * @param string $fuente Nombre del archivo de la fuente (estan en la carpeta fonts de la libreria ezpdf) */ function set_pdf_fuente($fuente = 'Helvetica.afm') { $this->configuracion['fuente'] = $fuente; $this->pdf->selectFont(toba_dir() . '/php/3ros/ezpdf/fonts/' . $this->configuracion['fuente']); }
<?php require_once toba_dir() . '/php/contrib/lib/toba_nodo_basico.php'; class catalogo_general extends toba_nodo_basico { function __construct() { parent::__construct('Configuracion General', null); $this->iconos[] = array('imagen' => toba_recurso::imagen_toba('configurar.png', false), 'ayuda' => 'Administrar usuarios de la instancia'); //Construyo los HIJOS $opciones['menu'] = true; $opciones['celda_memoria'] = 'central'; //---------------------------------------------------------------------- $hijos[0] = new toba_nodo_basico('Propiedades', $this); $hijos[0]->agregar_icono(array('imagen' => toba_recurso::imagen_toba('nucleo/proyecto.gif', false), 'ayuda' => null)); $hijos[0]->agregar_utileria(array('imagen' => toba_recurso::imagen_toba('objetos/editar.gif', false), 'ayuda' => 'Editar parametros basicos', 'vinculo' => toba::vinculador()->get_url(toba_editor::get_id(), 1000259, array(), $opciones), 'target' => apex_frame_centro)); //---------------------------------------------------------------------- $hijos[1] = new toba_nodo_basico('Previsualización', $this); $hijos[1]->agregar_icono(array('imagen' => toba_recurso::imagen_proyecto('config_previsualizacion.gif', false), 'ayuda' => null)); $hijos[1]->agregar_utileria(array('imagen' => toba_recurso::imagen_toba('objetos/editar.gif', false), 'ayuda' => 'Configuración de la previsualización del proyecto', 'vinculo' => toba::vinculador()->get_url(toba_editor::get_id(), '3287', array(), $opciones), 'target' => apex_frame_centro)); //---------------------------------------------------------------------- $hijos[3] = new toba_nodo_basico('Tipo de Pagina', $this); $hijos[3]->agregar_icono(array('imagen' => toba_recurso::imagen_proyecto('tipo_pagina.gif', false), 'ayuda' => null)); $hijos[3]->agregar_utileria(array('imagen' => toba_recurso::imagen_toba('objetos/editar.gif', false), 'ayuda' => 'Editar Tipos de página disponibles', 'vinculo' => toba::vinculador()->get_url(toba_editor::get_id(), 1000235, array(), $opciones), 'target' => apex_frame_centro)); //---------------------------------------------------------------------- $hijos[4] = new toba_nodo_basico('Skins', $this); $hijos[4]->agregar_icono(array('imagen' => toba_recurso::imagen_proyecto('css.gif', false), 'ayuda' => null)); $hijos[4]->agregar_utileria(array('imagen' => toba_recurso::imagen_toba('objetos/editar.gif', false), 'ayuda' => 'Editar Skins propios del proyecto', 'vinculo' => toba::vinculador()->get_url(toba_editor::get_id(), '3419', array(), $opciones), 'target' => apex_frame_centro)); //---------------------------------------------------------------------- $hijos[5] = new toba_nodo_basico('Zona', $this); $hijos[5]->agregar_icono(array('imagen' => toba_recurso::imagen_proyecto('zona.gif', false), 'ayuda' => null));
<?php require_once 'lista_casos.php'; include_once 'nucleo/consola/emular_web.php'; require_once toba_dir() . '/php/3ros/simpletest/reporter.php'; $this->registrar_parametros(); $proyecto = $this->parametros['-p']; lista_casos::$proyecto = $proyecto; //Selecciono una categoria if (isset($this->parametros['-c'])) { $seleccionados = lista_casos::get_casos($this->parametros['-c']); } else { $seleccionados = lista_casos::get_casos(); } if (isset($this->parametros['-t'])) { //Seleccion de un test particular if (isset($this->parametros['-t'])) { $particular = false; foreach ($seleccionados as $caso) { if ($caso['id'] == $this->parametros['-t']) { $particular = $caso; } } if ($particular) { $seleccionados = array($particular); } else { $seleccionados = array(); } } } try {
function procesar() { toba::logger_ws()->debug('Servicio Llamado: ' . $this->info['basica']['item']); toba::logger_ws()->set_checkpoint(); set_error_handler('toba_logger_ws::manejador_errores_recuperables', E_ALL); $this->validar_componente(); //-- Pide los datos para construir el componente, WSF no soporta entregar objetos creados $clave = array(); $clave['proyecto'] = $this->info['objetos'][0]['objeto_proyecto']; $clave['componente'] = $this->info['objetos'][0]['objeto']; list($tipo, $clase, $datos) = toba_constructor::get_runtime_clase_y_datos($clave, $this->info['objetos'][0]['clase'], false); agregar_dir_include_path(toba_dir() . '/php/3ros/wsf'); $opciones_extension = toba_servicio_web::_get_opciones($this->info['basica']['item'], $clase); $wsdl = strpos($_SERVER['REQUEST_URI'], "?wsdl") !== false; $sufijo = 'op__'; $metodos = array(); $reflexion = new ReflectionClass($clase); foreach ($reflexion->getMethods() as $metodo) { if (strpos($metodo->name, $sufijo) === 0) { $servicio = substr($metodo->name, strlen($sufijo)); $prefijo = $wsdl ? '' : '_'; $metodos[$servicio] = $prefijo . $metodo->name; } } $opciones = array(); $opciones['serviceName'] = $this->info['basica']['item']; $opciones['classes'][$clase]['operations'] = $metodos; $opciones = array_merge($opciones, $opciones_extension); $this->log->debug("Opciones del servidor: " . var_export($opciones, true), 'toba'); $opciones['classes'][$clase]['args'] = array($datos); toba::logger_ws()->set_checkpoint(); $service = new WSService($opciones); $service->reply(); $this->log->debug("Fin de servicio web", 'toba'); }