Пример #1
0
 function generar_layout()
 {
     $comandos = toba_parser_ayuda::parsear_wiki('Referencia/Consola', 'comandos de consola', 'toba_editor');
     $wiki = toba_parser_ayuda::parsear_wiki('WikiStart', 'wiki', 'toba_editor');
     $puntos_de_acceso = toba_parser_ayuda::parsear_wiki('Referencia/PuntosDeAcceso', 'puntos de acceso', 'toba_editor');
     $api = toba_parser_ayuda::parsear_api('index', 'se encuentra publicada', 'toba_editor');
     $proyectos = toba_parser_ayuda::parsear_wiki('Proyectos#Internos', 'proyectos propios', 'toba_editor');
     echo " \n\t\t\t<p>\n\t\t\tLa siguiente es una lista de los directorios más importantes de Toba y sus funcionalidades a alto nivel:\n\t\t\t<ul class='lista-separada'>\n\t\t\t\t<li><strong>bin</strong>: Contiene la puerta de entrada a los {$comandos}.\n\t\t\t\t\t\tPara poder ejecutarlos desde cualquier terminal/consola, a este directorio es necesario incluirlo en el PATH del sistema operativo.\n\t\t\t\t\t\t\n\t\t\t\t<li><strong>doc</strong>: Contiene documentación interna del proyecto. Para el desarrollador, la mejor documentación se encuentra en el {$wiki} y en este tutorial.\n\t\t\t\t\n\t\t\t\t<li><strong>instalacion</strong>: Contiene toda la configuración local (base que se utiliza, proyectos que se editan, alias de apache, etc.)\n\t\t\t\t\t\t\t\t\t\t\t\t\ty los metadatos locales (logs, usuarios, etc.).\n\t\t\t\t\t\t\t\t\t\t\t\t\tGeneralmente es un directorio que no se versiona ya que solo contiene información local\n\t\t\t\t\t\t\t\t\t\t\t\t\tde esta instalación.\n\t\t\t\t\n\t\t\t\t<li><strong>php</strong>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li><strong>3ros</strong>: Librerías externas utilizadas en el proyecto.\n\t\t\t\t\t\t\n\t\t\t\t\t\t<li><strong>consola</strong>: Código fuente de los comandos administrativos de consola.\n\t\t\t\t\t\t\n\t\t\t\t\t\t<li><strong>contrib</strong>: Código contribuido por los proyectos, que aún no pertenecen al núcleo \n\t\t\t\t\t\t\t\t\t\t\t\t\tpero que esta bueno\tcompartir.\n\t\t\t\t\t\t\n\t\t\t\t\t\t<li><strong>lib</strong>: Clases sueltas propias comunes a todo el ambiente\n\t\t\t\t\t\t\n\t\t\t\t\t\t<li><strong>modelo</strong>: Contiene una serie de clases que utilizan el editor y los comandos\n\t\t\t\t\t\t\t\tpara editar metadatos y código. Forman una base útil para armar otras herramientas consumiendo una API de alto nivel. \n\t\t\t\t\t\t\t\tPor ejemplo si el proyecto determina que es necesario desarrollar un instalador con\n\t\t\t\t\t\t\t\tprestaciones extras, es un buen comienzo consumir estas clases.\n\t\t\t\t\t\t\n\t\t\t\t\t\t<li><strong>nucleo</strong>: <em>Runtime</em> o conjunto de clases que se utilizan en la ejecución de un proyecto.\n\t\t\t\t\t\t\t\t\t\tLa documentación de estas clases {$api}.\n\t\t\t\t\t</ul>\n\t\t\t\t<li><strong>proyectos</strong>: Este directorio contiene los {$proyectos} del ambiente y es el lugar sugerido \n\t\t\t\t\t\t\t\t\t\t\t\tpara nuevos proyectos. Aunque pueden situarlos en cualquier directorio, \n\t\t\t\t\t\t\t\t\t\t\t\tsi están aquí es más fácil configurarlos.\n\t\t\t\t\t<div class='proyectos'>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>...\n\t\t\t\t\t\t<li><strong>mi_proyecto</strong>:\n\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t<li><strong>metadatos</strong>: Contiene la última exportación de metadatos del proyecto.\n\t\t\t\t\t\t\t\t<li><strong>php</strong>: Directorio que será parte del <em>include_path</em> de PHP, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tse asume que el proyecto almacenará aquí sus extensiones y demás código.\n\t\t\t\t\t\t\t\t<li><strong>temp</strong>: Directorio temporal no-navegable propio del proyecto\n\t\t\t\t\t\t\t\t<li><strong>www</strong>: Directorio navegable que contiene los {$puntos_de_acceso} a la aplicación.\n\t\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t\t<li><strong>css</strong>: Plantillas de estilos CSS del proyecto.\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t<li><strong>img</strong>: Imagenes propias del proyecto.\n\t\t\t\t\t\t\t\t\t\t<li><strong>temp</strong>:  Directorio temporal navegable del proyecto.\n\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t<li>...\n\t\t\t\t\t</ul>\t\t\n\t\t\t\t\t</div>\t\t\n\t\t\t\t<li><strong>temp</strong>: Directorio temporal no-navegable común.\n\t\t\t\t<li><strong>var</strong>: Recursos internos a Toba.\n\t\t\t\t<li><strong>www</strong>: Directorio navegable que contiene recursos web que consumen el <em>runtime</em> y los proyectos.\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li><strong>css</strong>: Plantillas de estilos CSS disponibles.\n\t\t\t\t\t\t<li><strong>img</strong>: Imagenes comunes que pueden utilizar los proyectos.\n\t\t\t\t\t\t<li><strong>js</strong>: Clases javascript propias de toba y externas.\n\t\t\t\t\t\t<li><strong>temp</strong>: Directorio temporal navegable común.\n\t\t\t\t\t</ul>\n\t\t\t</ul>\n\t\t";
 }
Пример #2
0
    function generar_layout()
    {
        $codigo_ej = '
<?php 
	class ci_pago extends toba_ci
	{		
			/**
			 * Atención de un evento "pagar" de un formulario
			 */
		    function evt__form_pago__pagar($datos)
		    {
		    	$this->s__pago = $datos;
		    	$this->set_pantalla("pant_ubicacion");
		    }

		    /**
		     * Redefinición de un método
		     */
			function ini()
			{
				$this->valor_defecto = 0;
			}		    
		    
			/**
			 * Redefinición de un método para extender el componente en Javascript
			 */
		    function extender_objeto_js()
		    {
		    	echo "
		    		/**
		    		 * Atención del evento procesar de este componente
		    		 */
		    		{$this->objeto_js}.evt__procesar = function() {
		    			return prompt(\\"Desea Procesar?\\");
		    		}
		    	";
		    }
	}
?>
		';
        $ventana = toba::instancia()->get_url_proyecto('toba_editor') . "/doc/api/media/ventana.png";
        $api = toba_parser_ayuda::parsear_api('li_Componentes', 'documentación API', 'toba_editor');
        echo "\n\t\t\t<p>\n\t\t\tEl comportamiento de un componente se basa en su definición y,\n\t\t\ten distinta medida según el tipo, su extensión en código.\n\t\t\t</p>\n\t\t\t<p>\n\t\t\tLa extensión en código se da a través de la <strong>herencia</strong>, creando una subclase del componente en cuestión \n\t\t\ty seleccionandola durante la definición del componente en el editor. Se podrían definir tres objetivos distintos a la hora de hacer una extensión\n\t\t\tde un componente:\n\t\t\t<ul>\n\t\t\t\t<li><strong>Atender eventos</strong>: El componente notifica <em>sucesos</em>\n\t\t\t\t\ty en la extensión se escuchan. A esta comunicación se la denomina <em>eventos</em> y sa la ve\n\t\t\t\t\tmás adelante en el tutorial.\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<li><strong>Redefinir métodos</strong>: En la {$api} los métodos recomendados para \n\t\t\t\t\textender llevan a su lado un ícono de ventana\n\t\t\t\t\t<img src='{$ventana}'>. \n\t\t\t\t\tOtros métodos protegidos son extensibles también, pero si no poseen la ventana \n\t\t\t\t\tno se asegura que en futura versiones del framework serán soportados, ya que lo que \n\t\t\t\t\tse está extendiendo es un método interno.\n\t\t\t\t\n\t\t\t\t<li><strong>Extender el componente en Javascript</strong>: Cada componente en PHP tiene su par en Javascript, \n\t\t\t\tpor lo que en la extensión también es posible variar el comportamiento del componente en el cliente.\n\t\t\t</ul>\n\t\t\t</p>\n\t\t\t<h3>Ejemplo</h3>\t\t\t\n\t\t\t<p>\n\t\t\tPara tener una idea de como 'luce' una extensión, se presenta una extensión típica de un componente controlador. La idea no es entender en profundidad esta extensión sino es para \n\t\t\ttomar un primer contacto. Como se ve en los comentarios del código, en este caso se consumieron las formas de extensión vistas:\n\t\t\t</p>\n\t\t";
        echo "<div class='codigo'>";
        highlight_string($codigo_ej);
        echo "</div>";
    }
Пример #3
0
    function generar_layout()
    {
        $api1 = toba_parser_ayuda::parsear_api('Fuentes/toba_mensajes', 'toba_mensajes', 'toba_editor');
        $api2 = toba_parser_ayuda::parsear_api('SalidaGrafica/toba_notificacion', 'toba_notificacion', 'toba_editor');
        $img = toba_recurso::imagen_proyecto('tutorial/notificacion.png', true);
        $wiki = toba_parser_ayuda::parsear_wiki('Referencia/Mensajes', 'Mensajes y Notificaciones', 'toba_editor');
        $ejemplo = toba::vinculador()->get_url(null, 1000204, array(), array('celda_memoria' => 'ejemplo'));
        $codigo1 = '<?php
//Suponiendo que el mensaje ingresado es: \'Esta es la %1% instancia de un mensaje global de Toba. Fecha de hoy: %2%.\'
$mensaje = toba::mensajes()->get("indice", array("primera", date("d/M/Y"));
echo $mensaje;
//La salida es: \'Esta es la primera instancia de un mensaje global de Toba. Fecha de hoy: 01/02/2007.\'
?>
';
        $codigo2 = '<?php
toba::notificacion()->agregar($mensaje);
toba::notificacion()->agregar($mensaje, "info");
?>
';
        echo "<p>\n\t\t\tPara centralizar el manejo de mensajes y permitir su posterior personalización\n\t\t\tToba brinda la posibilidad de definir los mensajes en el mismo editor web y\n\t\t\tposteriormente instanciarlos y notificarlos usando la API.\n\t\t</p>\n\t\t<p>Una vez creados los mensajes en el editor es posible recuperarlos en ejecución\n\t\tusando la clase {$api1}:\n\t\t</p>\n\t\t";
        echo mostrar_php($codigo1);
        echo "<p>\n\t\t\tEn lugar de mostrar el mensaje con un simple <em>echo</em> es posible notificarlo\n\t\t\tutilizando la clase {$api2}: \n\t\t</p>";
        echo mostrar_php($codigo2);
        echo $img;
        echo "<h2>Más info</h2>\n\t\t <ul><li>{$wiki}\n\t\t\t<li><a href='{$ejemplo}' target='_blank'>Ejemplo</a>\n\t\t</ul>\n\t\t";
    }
Пример #4
0
 function generar_layout()
 {
     $wiki1 = toba_parser_ayuda::parsear_wiki('Referencia/Objetos/ei_formulario', 'Formulario simple', 'toba_editor');
     $wiki2 = toba_parser_ayuda::parsear_wiki('Referencia/Objetos/ei_formulario_ml', 'Formulario multilínea (ml)', 'toba_editor');
     $wiki3 = toba_parser_ayuda::parsear_wiki('Referencia/efs', 'Elementos de formularios (efs)', 'toba_editor');
     $api1 = toba_parser_ayuda::parsear_api('Componentes/Eis/toba_ei_formulario', 'Primitivas del ei_formulario', 'toba_editor');
     $api2 = toba_parser_ayuda::parsear_api('Componentes/Eis/toba_ei_formulario_ml', 'Primitivas del ei_formulario_ml', 'toba_editor');
     $api3 = toba_parser_ayuda::parsear_api('Componentes/Efs/toba_ef', 'Primitivas de los efs', 'toba_editor');
     echo "\n\t\t\t<ul>\n\t\t\t\t<li>{$wiki1}\n\t\t\t\t<li>{$wiki2}\n\t\t\t\t<li>{$wiki3}\n\t\t\t\t<li style='padding-top: 10px'>{$api1}\n\t\t\t\t<li>{$api2}\t\n\t\t\t\t<li>{$api3}\n\t\t\t</ul>\n\t\t";
 }
Пример #5
0
 function generar_layout()
 {
     $wiki1 = toba_parser_ayuda::parsear_wiki('Referencia/Objetos/Persistencia', 'Introducción a los componentes de persistencia', 'toba_editor');
     $wiki2 = toba_parser_ayuda::parsear_wiki('Referencia/Objetos/datos_tabla', 'Documentación del datos_tabla', 'toba_editor');
     $wiki3 = toba_parser_ayuda::parsear_wiki('Referencia/Objetos/datos_relacion', 'Documentación del datos_relacion', 'toba_editor');
     $api1 = toba_parser_ayuda::parsear_api('Componentes/Persistencia/toba_datos_tabla', 'Primitivas del datos_tabla', 'toba_editor');
     $api2 = toba_parser_ayuda::parsear_api('Componentes/Persistencia/toba_datos_relacion', 'Primitivas del datos_relacion', 'toba_editor');
     echo "\n\t\t\t<ul>\n\t\t\t\t<li>{$wiki1}\n\t\t\t\t<li>{$wiki2}\n\t\t\t\t<li>{$wiki3}\n\t\t\t\t<li>{$api1}\n\t\t\t\t<li>{$api2}\n\t\t\t</ul>\n\t\t";
 }