Date post: | 02-Jun-2018 |
Category: |
Documents |
Upload: | ladyakatsuki |
View: | 266 times |
Download: | 4 times |
of 79
8/10/2019 Curso Toba Inicial Sep 2014
1/79
Ing. Fernando MartnezSistema de Informacin Universitaria
Septiembre 2014
SIU-TobaNivel inicial
8/10/2019 Curso Toba Inicial Sep 2014
2/79
Qu es Toba?
Es un ambientede desarrollo Web, creado porel SIU con el objetivo de brindar unaherramienta de desarrollo rpido, que posee
una arquitectura basada en componentespara construir aplicaciones webtransaccionales.
Licencia software libre.
2Ing. Fernando Martnez - SIU
8/10/2019 Curso Toba Inicial Sep 2014
3/79
8/10/2019 Curso Toba Inicial Sep 2014
4/79
Conceptos clave
1. INSTALACIN
2. INSTANCIA
3. PROYECTO
4. PUNTO DE ACCESO
4Ing. Fernando Martnez - SIU
8/10/2019 Curso Toba Inicial Sep 2014
5/79
1. Instalacin
Una instalacines una carpeta que contieneuna versin de Toba.
Una instalacin puede correr una oms instancias de distintos proyectos.
5Ing. Fernando Martnez - SIU
8/10/2019 Curso Toba Inicial Sep 2014
6/79
2. Instancia
Una instanciaes una abstraccin que contienelos metadatos de un conjunto de proyectos.
Fsicamente es un esquema en la base dedatos de Toba (por defecto llamadodesarrollo).
6Ing. Fernando Martnez - SIU
8/10/2019 Curso Toba Inicial Sep 2014
7/79
3. Proyecto
Un proyectoen Toba se compone de archivosde cdigo en PHP y definiciones en metadatos.
Estos metadatos se almacenantemporalmente en la base de Toba, y sepueden volcar al sistema de archivos (aldirectorio metadatosdel proyecto)
mediante comandos de consola.
7Ing. Fernando Martnez - SIU
8/10/2019 Curso Toba Inicial Sep 2014
8/79
4. Punto de acceso
8
Durante la ejecucin, elusuario ingresa la URL delproyecto en el navegador;
all se liga a una instalacin,instancia y opcionesespecficas de ejecucin.
Esta unin entre URL y entorno deejecucin es conocida como punto deacceso.
Ing. Fernando Martnez - SIU
8/10/2019 Curso Toba Inicial Sep 2014
9/79
Flujo de trabajo
9
2 1
3
4
5
Ing. Fernando Martnez - SIU
8/10/2019 Curso Toba Inicial Sep 2014
10/79
Requisitos tcnicos
1. Servidor web: Apache (2.2.x).
2. Lenguaje de programacin: PHP (comomdulo de Apache).
3. Servidor de base de datos: PostgreSQL.
4. Sistema de control de versiones: Subversion
5. Herramientas adicionales: Graphviz
10
http://toba.siu.edu.ar/trac/toba/wiki/Instalacion
Ing. Fernando Martnez - SIU
http://toba.siu.edu.ar/trac/toba/wiki/Instalacionhttp://toba.siu.edu.ar/trac/toba/wiki/Instalacion8/10/2019 Curso Toba Inicial Sep 2014
11/79
Configuracin de PHP#Mnimos magic_quotes_gpc = Off magic_quotes_runtime = Off extension = php_pdo.dll extension = php_pdo_pgsql.dll extension = php_mbstring.dll
#Recomendados error_reporting = E_ALL (*) display_errors = On (*)
memory_limit = 128M post_max_size = 8 M upload_max_filesize = 8 M
(*) #Solo para desarrollo11Ing. Fernando Martnez - SIU
8/10/2019 Curso Toba Inicial Sep 2014
12/79
En una consola en la ubicacin
c:\path_a_toba\bin, ejecutar instalar.batyseguir las instrucciones.
Al finalizar la instalacin, no cerrar la
ventana sin leer antes las instruccionesfinales del instalador.
Una vez completado, reiniciar Apache.
Se recomienda mover el archivoentorno_toba_xx.batde la carpeta deusuario a la de la instalacin de Toba.
Instalacin
12Ing. Fernando Martnez - SIU
8/10/2019 Curso Toba Inicial Sep 2014
13/79
Distribucin de carpetas - Toba
bin: contiene los lanzadores de comandos deconsola (ej: instalar, o el mas usado: toba).
php: cdigo fuente de Toba.
proyectos: rbol de directorios de los
distintos proyectos. www: contiene archivos estticos (imgenes,
css, javascript, etc.) de Toba que sonpublicados en el servidor web.
instalacion: contiene detalles de configuracinde la instalacin actual (alias, bases de datos,etc.).
13Ing. Fernando Martnez - SIU
8/10/2019 Curso Toba Inicial Sep 2014
14/79
Archivos de configuracin
Carpeta instalacion: localizada en eldirectorio raz de Toba, contiene todas lasconfiguraciones de la instalacin, incluyendola de las instancias contenidas.
Qu instanciastiene definidas, determinado porcarpetas i__nombre.
Qu bases de datosse utilizan en la instalacin
por proyecto; se definen en el archivo bases.ini. Configuraciones varias, globales a toda la
instalacin, en el archivo instalacion.ini.
Configuraciones para Apache: toba.conf14Ing. Fernando Martnez - SIU
8/10/2019 Curso Toba Inicial Sep 2014
15/79
Creando un nuevo proyecto
Ejecutar el comando:toba proyecto crear -p curso
Crea un sistema de archivos inicial,conteniendo metadatos bsicos y los puntosde acceso por defecto.
Carga en la instancia esos metadatos bsicos.
Se ejecuta una sola vez durante toda lahistoria del proyecto.
15Ing. Fernando Martnez - SIU
8/10/2019 Curso Toba Inicial Sep 2014
16/79
Distribucin de carpetasProyecto
id_proyectophp: carpeta que se incluye en el include_path de
php, por lo que se recomienda usarlo paracontener todas las clases particulares del proyecto.
metadatos: directorio donde se almacenan losmetadatos propios del proyecto, exportadosmediante comandos.
www: contiene el punto de acceso y los archivosestticos publicados (imgenes, javascript, css),similares a los de Toba, pero propios del proyecto.
16Ing. Fernando Martnez - SIU
8/10/2019 Curso Toba Inicial Sep 2014
17/79
Editor Toba
El editor de Toba cubre distintos aspectos de
la implementacin de una aplicacin:
Configuracin global del proyecto.
Creacin y edicin de operaciones.
Definicin de las distintas fuentes de datos, paraconectarse transparentemente con las bases.
Previsualizacin de la aplicacin, con utilidades
como edicin contextual, visualizacin de logs,cronometrado de ejecucin o consumo dememoria.
17Ing. Fernando Martnez - SIU
8/10/2019 Curso Toba Inicial Sep 2014
18/79
Primeros pasos en el editor
Proyecto que seest editando
Previsualizacin Edicin deusuarios
Ayuda Logger
rbol deoperacionesdisponibles
Listado decomponentes
disponibles
Configuracionesde acceso a datos
Cdigo PHP Configuracingeneral delproyecto
18Ing. Fernando Martnez - SIU
8/10/2019 Curso Toba Inicial Sep 2014
19/79
Barra de desarrollo
19Ing. Fernando Martnez - SIU
8/10/2019 Curso Toba Inicial Sep 2014
20/79
Barra de desarrollo
20Ing. Fernando Martnez - SIU
8/10/2019 Curso Toba Inicial Sep 2014
21/79
rbol de operaciones Si pensamos en la aplicacin como un catlogo de
operaciones, a cada una de estas operaciones sela puede pensar como un temde este catlogo.
Editar
Nueva carpeta
Nuevo componente hijo
Nuevo tem
Previsualizar operacin
21Ing. Fernando Martnez - SIU
8/10/2019 Curso Toba Inicial Sep 2014
22/79
Ejemplos
Creacin de carpetas. Creacin de un temPHP plano.
Previsualizacin.
Visualizacin en el men de la aplicacin. Creacin de un temEsquema de
componentes.
Tipos de pgina. Reubicacin de un tem en el men.
22Ing. Fernando Martnez - SIU
8/10/2019 Curso Toba Inicial Sep 2014
23/79
Base de negocio
Los proyectos desarrollados en Toba contarn,casi con seguridad, al menos con una base denegocio.
Al respecto, se puede: Instalar la base de negocio en la misma base que
contiene la instancia Toba, en otroesquemadePostgreSQL
O bien definir una nueva base de datos,independiente de la Toba.
Ing. Fernando Martnez - SIU 23
8/10/2019 Curso Toba Inicial Sep 2014
24/79
Base de negocio
24Ing. Fernando Martnez - SIU
8/10/2019 Curso Toba Inicial Sep 2014
25/79
Fuentes de datos
Una fuente de datos encapsula un mecanismode entrada/salida de datos, tpicamente unabase relacional.
Un proyecto puede tener asociadas variasfuentes de datos, cada una representandouna base distinta.
Para administrar estas fuentes existe unaseccin en el Editor dentro de la seccinDatos.
25Ing. Fernando Martnez - SIU
8/10/2019 Curso Toba Inicial Sep 2014
26/79
All se detalla cmo est formada: Identificador: es el nombre con el que esta fuente
puede ser referenciada desde Toba.
Datos de conexin: motor, host, puerto, usuario,clave, base, encoding, esquema, etc.
Definiendo la fuente de datos en el editor, segenera o se actualiza la entrada
correspondiente en el archivo bases.ini
26
Fuentes de datos
Ing. Fernando Martnez - SIU
[instancia proyecto id_fuente]Ej: [desarrollo curso curso]
8/10/2019 Curso Toba Inicial Sep 2014
27/79
Fuente de datos
Definiendo la fuente de datos en el editor, segenera una nueva entrada en el archivobases.ini:
[desarrollo curso curso]
motor = postgres7profile = localhostpuerto = 5432usuario = postgres
clave = postgresbase = curso_negocioencoding = LATIN1schema = public
27Ing. Fernando Martnez - SIU
8/10/2019 Curso Toba Inicial Sep 2014
28/79
8/10/2019 Curso Toba Inicial Sep 2014
29/79
Consultas y Comandos
$sql = "SELECT id, nombre FROM tabla"$res = toba::db()->consultar($sql);
$sql = "UPDATE tabla SET nombre = toba";
toba::db()->abrir_transaccion();$cant = toba::db()->ejecutar($sql);...toba::db()->cerrar_transaccion();
Ejecucin de comandos dentro de una transaccin:retorna la cantidad de registros afectados.
29Ing. Fernando Martnez - SIU
Consulta SQL: retorna un arreglo PHP asociativo.
8/10/2019 Curso Toba Inicial Sep 2014
30/79
Completando setup del proyecto
1. Crear el proyecto.2. Configuracin de parmetros de
previsualizacin desde el editor.
3. Crear la base de datos (negocio).4. Definir la fuente de datos.
5. Copiar la clase con las consultas SQL.
6. Crear un objeto Consulta PHP desde elEditor, vinculndola con el archivo copiadoen el punto 5.
30Ing. Fernando Martnez - SIU
8/10/2019 Curso Toba Inicial Sep 2014
31/79
Creacin de un ABM simple
Una operacin se determina en basea componentes, definidos mediante el editor.
Estos cubren distintos aspectos de
implementacin de una operacin, y secategorizan segn su funcin:
Control
Interfaz Persistencia.
31Ing. Fernando Martnez - SIU
8/10/2019 Curso Toba Inicial Sep 2014
32/79
Componentes
El comportamiento de un componente se basaen:
su definicin(con el editor)
su extensinen cdigo PHP. Se da a travs de laherencia, creando una subclase del componenteen cuestin y asocindola al mismo desde el
editor. La extensin no siempre es obligatoria.
32Ing. Fernando Martnez - SIU
8/10/2019 Curso Toba Inicial Sep 2014
33/79
Extensin de componentes
Se podran definir tres objetivos distintos a lahora de hacer una extensin de uncomponente: Atender eventos: El componente notifica sucesos y
en la extensin se escuchan. Redefinir mtodos propios del componente (por
ejemplo, la salida HTML).
Extender el componente en Javascript: Cada
componente en PHP tiene su par en Javascript, porlo que en la extensin tambin es posible variar elcomportamiento del componente en el lado cliente.
33Ing. Fernando Martnez - SIU
8/10/2019 Curso Toba Inicial Sep 2014
34/79
Controlador de Interfaz (CI)
Es un componente de control, responsable demanejar:
las pantallas
elementos de interfaz contenidos, por ejemplo: Cuadros
Filtros
Formularios
Formularios multilnea Etc
34Ing. Fernando Martnez - SIU
8/10/2019 Curso Toba Inicial Sep 2014
35/79
Pantallas
La pantallaes la parte grfica de una etapa delCI.
Se encarga de graficar:
Un conjunto de dependencias (componentes delCI asociadas a la pantalla actual).
Un conjunto de tabs, que vinculan con otraspantallas (dependiendo del tipo de navegacin).
Un conjunto de eventos (en forma de botones).
35Ing. Fernando Martnez - SIU
8/10/2019 Curso Toba Inicial Sep 2014
36/79
Pantallas
Tipos de navegacin: Definido por la subclase (CI)
Tab horizontal
Tab vertical
Wizzard
Desde el CI, podemos acceder a las pantallas ysus funciones:
$this->set_pantalla('id_pantalla');
$this->pantalla('id_pantalla')->...
36Ing. Fernando Martnez - SIU
8/10/2019 Curso Toba Inicial Sep 2014
37/79
Eventos
En un ambiente web, la comunicacin entrecliente y servidor no es continua, sinodesconectada.
El usuario trabaja en su browser modificandola informacin que se visualiza en la pginaactual, y cuando decide ir al servidor (ej.Guardar) todos los componentes de esa
pantalla notifican los distintos sucesos queacontecieron durante su estada en el cliente.
37Ing. Fernando Martnez - SIU
8/10/2019 Curso Toba Inicial Sep 2014
38/79
Eventos
Un eventorepresenta la interaccin del usuario(El usuario presiona Guardar) a travs de uncomponente de interfaz (botn).
Sirve como medio de comunicacin del clientecon el servidor, llevando los parmetrosparticulares del suceso.
38Ing. Fernando Martnez - SIU
8/10/2019 Curso Toba Inicial Sep 2014
39/79
Eventos
Un evento debe escucharse y atenderse en elservidor.
El Controlador de Interfaz (CI) est preparado
para escuchar eventos (propios o decomponentes contenidos) y configurarlos,definiendo as el comportamiento de las
operaciones.
39Ing. Fernando Martnez - SIU
Li t
8/10/2019 Curso Toba Inicial Sep 2014
40/79
Listeners Escuchar un evento consiste en definir un mtodo
(listener) en el CI contenedor del componente. Este mtodo ser invocado junto con parmetros
de contexto del evento.
Cuando el evento pertenece al mismo CI, el listener
se define de la siguiente manera: Prefijo evt__ (doble guin bajo)
Nombre del evento.
En caso de que este mtodo no est definido, elevento queda sin atrapar.
function evt__guardar() { }
40Ing. Fernando Martnez - SIU
8/10/2019 Curso Toba Inicial Sep 2014
41/79
Cuadro
Un ei_cuadroes un elemento de interfaz, queconsiste en una grilla de registros pensadospara visualizacin de informacin.
Es comn que cada uno de estos registrostenga identidad propia, por lo que el cuadropermite seleccionarlos individualmente a
travs de eventos a nivel fila.
41Ing. Fernando Martnez - SIU
8/10/2019 Curso Toba Inicial Sep 2014
42/79
Listener de eventos de componentes
El nombre de un listener de un componentesedefine de la siguiente manera en el CIcontrolador del componente:
Prefijo evt__ (doble guin bajo)
ID del objeto origen con el sufijo __
Nombre del evento.
function evt__cuadro__seleccion($seleccion){
}
42Ing. Fernando Martnez - SIU
8/10/2019 Curso Toba Inicial Sep 2014
43/79
Formulario
Un ei_formularioes un elemento de interfazque presenta una grilla de campos editables.
A estos campos se los denominan Elementos
de Formulario(efs).
43Ing. Fernando Martnez - SIU
l d l ( f )
8/10/2019 Curso Toba Inicial Sep 2014
44/79
Elementos de Formulario (efs)
ef_checkbox
ef_combo
ef_radio
ef_popup
El usuario selecciona un elemento
44Ing. Fernando Martnez - SIU
l d l i ( f )
8/10/2019 Curso Toba Inicial Sep 2014
45/79
Elementos de Formulario (efs)
ef_multi_seleccion_lista
ef_multi_seleccion_doble
ef_multi_seleccion_check
El usuario selecciona varios elementos
45Ing. Fernando Martnez - SIU
l d l i ( f )
8/10/2019 Curso Toba Inicial Sep 2014
46/79
Elementos de Formulario (efs)
ef_editable
ef_editable_numero
ef_editable_fecha
ef_editable_textarea
ef_cuit
El usuario edita
46Ing. Fernando Martnez - SIU
ef_upload
ef_fijo
Otras acciones
l
8/10/2019 Curso Toba Inicial Sep 2014
47/79
Formulario
Durante la configuracin se lo carga con unconjunto de datos.
Cuando vuelve al servidor informa a travs desus eventos el nuevo conjunto de datos editadopor el usuario.
47Ing. Fernando Martnez - SIU
P i i
8/10/2019 Curso Toba Inicial Sep 2014
48/79
Persistencia
Los cambios efectuados durante una operacinse deben transaccionarcon una fuente dedatos.
Existen dos formas principales en que puedetransaccionar una operacin:
Inmediatamente producidos los eventos,prcticamente en cada pedido de pgina.
Luego de una confirmacin explcita del usuario,por ejemplo, presionando un botn Guardar.
48Ing. Fernando Martnez - SIU
i i di
8/10/2019 Curso Toba Inicial Sep 2014
49/79
Transaccin inmediata
Es la forma ms fcil ydirecta de programar unaoperacin.
En cada mtodo que
escucha un evento seejecuta un comando SQL
function evt__form__modificacion($datos)
{$sql = "INSERT INTO ... ";toba::db()->ejecutar($sql);
}
49Ing. Fernando Martnez - SIU
8/10/2019 Curso Toba Inicial Sep 2014
50/79
T i i l i
8/10/2019 Curso Toba Inicial Sep 2014
51/79
Transaccin a nivel operacin
Los componentes de persistenciabrindan tresservicios a la aplicacin:
Cargar un conjunto de datos relacionados.
Mantener en memoria los cambios realizados porel usuario a estos datos.
Finalmente sincronizarlos con el medio depersistencia cuando sea solicitado.
51Ing. Fernando Martnez - SIU
D t T bl (DT)
8/10/2019 Curso Toba Inicial Sep 2014
52/79
Datos Tabla (DT)
Un datos_tablaes uncomponente depersistencia, que
mantiene unaestructura tabular(RecordSet) y brindauna interfaz paratrabajar con ella.
52Ing. Fernando Martnez - SIU
D t T bl
8/10/2019 Curso Toba Inicial Sep 2014
53/79
Datos Tabla
1. Carga los datos desde un medio de persistencia.
Carga sin condiciones:
Carga con condiciones:
// En el controlador del datos_tabla
$this->dep(dt_personas)->cargar();
$cond = array(persona => 10);
$this->dep(dt_personas)->cargar($cond);
53Ing. Fernando Martnez - SIU
D t T bl
8/10/2019 Curso Toba Inicial Sep 2014
54/79
Datos Tabla
2. Una vez que tenemos los datos en memoria, existenprimitivas para trabajar sobre estos.
Cuando una tabla en la transaccin puede tener a lo sumo unregistro se simplifica la interfaz:
get_fila($clave)nueva_fila($registro)
modificar_fila($clave, $registro)eliminar_fila($clave)
set($datos)get()
54Ing. Fernando Martnez - SIU
D t T bl
8/10/2019 Curso Toba Inicial Sep 2014
55/79
Datos Tabla
3. Los datos y sus modificaciones son mantenidosautomticamente en sesin entre los distintospedidos de pgina. Las modificaciones se retienenhasta el final de la transaccin de negocios.
4. Una vez terminada la edicin se efecta lasincronizacin con la base de datos, a travs deladministrador de persistencia, marcando el final de latransaccin de negocios.
$this->dep(dt_personas)->sincronizar();
55Ing. Fernando Martnez - SIU
M j tifi i
8/10/2019 Curso Toba Inicial Sep 2014
56/79
Mensajes y notificaciones1. toba::notificacion()->agregar('Mensaje
de ERROR');2. toba::notificacion()->agregar('Otra formade mostrar un mensaje de ERROR', 'error');
3. toba::notificacion()->agregar('Mensaje deADVERTENCIA', 'warning');
4. toba::notificacion()->agregar('Mensaje deINFORMACIN', 'info');
56Ing. Fernando Martnez - SIU
Extensin JavaScript
8/10/2019 Curso Toba Inicial Sep 2014
57/79
Extensin JavaScript
Todos los elementos de interfaz tienenasociado un objeto en JavaScript, encargadodel comportamiento del componente en el
cliente. La responsabilidad de estos objetos es manejar
todo aspecto de la pantalla que no puede ser
determinado estticamente.
57Ing. Fernando Martnez - SIU
Extensin JavaScript
8/10/2019 Curso Toba Inicial Sep 2014
58/79
Extensin JavaScript
Cundo realizar extensin JS?
Validaciones en el lado cliente.
Comportamiento dinmico de EFs. Por ejemplo si uncombo necesita deshabilitarse en base al tilde de un
checkbox. Es un comportamiento dinmico depantalla en el cliente, ya que el servidor no puedeintroducir lgica de este tipo.
Cundo NO realizar extensin JS?
Cuando la lgica de pantalla es esttica al pedido
actual. Por ejemplo, si en un ABM es necesariodeshabilitar un EF en la edicin.
58Ing. Fernando Martnez - SIU
Extensin JavaScript
8/10/2019 Curso Toba Inicial Sep 2014
59/79
Extensin JavaScript
Todo cdigo JavaScript necesita ser parte de lasalida PHP.
Este concepto puede traer a confusin, ya queel cdigo JavaScript necesita ser definido en
PHP pero lo mismo sucede con la salidaHTML!!!
Para esto, primero se necesita tener una
subclase en PHP del componente; all seencuentra una ventana de extensin JavaScript:el mtodo extender_objeto_js
59Ing. Fernando Martnez - SIU
Extensin JavaScript
8/10/2019 Curso Toba Inicial Sep 2014
60/79
Extensin JavaScript
extender_objeto_js():
class ci_X extends toba_ci{function extender_objeto_js()
{echo {$this->objeto_js}.evt__guardar = function() {
return prompt(\"Desea Guardar?\");} ;
}}
60Ing. Fernando Martnez - SIU
Creacin de un ABM complejo
8/10/2019 Curso Toba Inicial Sep 2014
61/79
Creacin de un ABM complejo
Propuesta: extender el ABM simple para permitirdar de alta personas y cargar una lista deallegados en una sola operacin.
61Ing. Fernando Martnez - SIU
Creacin de un ABM Complejo
8/10/2019 Curso Toba Inicial Sep 2014
62/79
Creacin de un ABM Complejo
62Ing. Fernando Martnez - SIU
Controlador de Negocio (CN)
8/10/2019 Curso Toba Inicial Sep 2014
63/79
Controlador de Negocio (CN)
Los controladores de negocioson unaherramienta til para desacoplar la lgica denegocio de la presentacin.
Permite unificar la carga y entrega de datos yservicios a una jerarqua completa decomponentes de interfaz (generalmente losCIs).
// Ejemplo$this->cn()->get_datos();
63Ing. Fernando Martnez - SIU
Controlador de Negocio (CN)
8/10/2019 Curso Toba Inicial Sep 2014
64/79
Controlador de Negocio (CN)
Ventajas: Lograr una mxima independencia entre la lgica
de pantalla y de negocio.
Tener un lugar centralizado para brindar servicioscomunes a una jerarqua de componentes.
Desventajas:
Esta flexibilidad se consigue a expensas de una
mayor burocracia y complejidad en el manejo dedatos.
64Ing. Fernando Martnez - SIU
Datos Relacin
8/10/2019 Curso Toba Inicial Sep 2014
65/79
Ing. Fernando Martnez - SIU 65
Datos Relacin
mdp_personas_allegados
dato_allegado
persona
tipo_allegado
Un datos_relacionmantiene un conjuntorelacionado dedatos_tabla.
Brinda servicios paracargar y sincronizar estemodelo de relacin conalgn medio depersistencia.
mdp_personaspersona
apellido
nombres
Datos Relacin
8/10/2019 Curso Toba Inicial Sep 2014
66/79
Datos Relacin
Carga La forma ms comn de cargar una relacin es a
partir de una restriccin de las tablas races
(aquellas que no tienen padres). Para esto se utiliza el mtodo cargar:
$relacion->cargar(array('id' => 8));
66Ing. Fernando Martnez - SIU
Datos Relacin
8/10/2019 Curso Toba Inicial Sep 2014
67/79
Datos Relacin
Trabajo en memoria El trabajo posterior a la carga generalmente se
realiza a travs de las tablas relacionadas.
Para acceder a un componente tabla:
La principal diferencia radica en que lasoperaciones sobre las tablas ya no son aisladas,sino que trabajan en el contexto de la relacin.
$relacion->tabla('id_tabla')->
67Ing. Fernando Martnez - SIU
Datos Relacin
8/10/2019 Curso Toba Inicial Sep 2014
68/79
Datos Relacin
Sincronizacin La sincronizacin con el medio de persistencia:
Sincroniza de manera transaccionaly ordenadalastablas de la relacin, comenzando por la cabecera ysiguiendo por las tablas hijas.
Si se trata de un alta, el ID de la tabla padre es
serial y mediante ese campo se vincula con lastablas hijas, el ID se obtiene al sincronizar la tablacabecera, y se utiliza ese valor para completar enlas dependientes.
$relacion->sincronizar();
68Ing. Fernando Martnez - SIU
Formulario Multilnea
8/10/2019 Curso Toba Inicial Sep 2014
69/79
Formulario Multilnea
Un ei_formulario_mlpresenta una grillade campos repetidos una cantidad dadade filas.
69Ing. Fernando Martnez - SIU
Formulario Multilnea
8/10/2019 Curso Toba Inicial Sep 2014
70/79
Formulario Multilnea
Permiten recrear la carga de distintos registroscon la misma estructura.
La definicin y uso de la grilla de campos es
similar al formulario simple, con el agregadode lgica para manejar un nmero arbitrariode filas.
Se pueden agregar nuevas filas, y eliminar omodificar las existentes.
70Ing. Fernando Martnez - SIU
Formulario Multilnea
8/10/2019 Curso Toba Inicial Sep 2014
71/79
Formulario Multilnea
Brinda un servicio que permite analizar loacontecido con las filas enviadas al cliente.
Si por ejemplo se envan tres filas al cliente
se modifican dos la otra se borra
se agrega una nueva
el mtodo de anlisis evita que el programadortenga que comparar el estado de las filasenviadas con el recibido.
71Ing. Fernando Martnez - SIU
8/10/2019 Curso Toba Inicial Sep 2014
72/79
Filtro
8/10/2019 Curso Toba Inicial Sep 2014
73/79
Filtro
Un ei_filtroes un componente de interfaz que
presenta una grilla donde es posibleseleccionar criterios de bsqueda para lasdistintas columnas definidas.
Segn el tipo de columna (nmero, fecha,opciones) se despliegan distintas condiciones
de comparacin (es igual a, es mayor a).
El usuario indica un valor a comparar usandoun elemento de formulario (ef).
73Ing. Fernando Martnez - SIU
Filtro
8/10/2019 Curso Toba Inicial Sep 2014
74/79
Filtro
Combinando:
la condicin seleccionada
el valor ingresado por el usuario
una expresin SQL para el campo definida con el
editores posible obtener del filtro una expresinSQL para integrar en la clusula WHERE de la
consulta que obtiene los datos:// En el CI controlador del filtro$where = $this->dep('filtro')->get_sql_where();
74Ing. Fernando Martnez - SIU
Propiedades en sesin
8/10/2019 Curso Toba Inicial Sep 2014
75/79
Propiedades en sesin
A veces es necesario que el CI pueda recordar
la informacin que va recolectando entrepedidos de pgina.
Esto se logra gracias a las llamadas variables
de sesin.
La forma de indicar al framework que unapropiedad sea mantenida en sesin es
prefijando su nombre con s__
protected $s__seleccion;
75Ing. Fernando Martnez - SIU
Metadatos
8/10/2019 Curso Toba Inicial Sep 2014
76/79
Metadatos
Cuando utilizamos el editor web de Toba,
estamos definiendo un proyecto en base ametadatos, almacenados en una base dedatos definida durante la instalacin.
Mientras estos metadatos no sean exportadosal sistema de archivos, no podrn sercompartidos con un grupo de desarrollo, ni elproyecto podr ser pasado a produccin.
Esta necesidad de importar - exportarmetadatos se cubre usando comandos deconsola.
76Ing. Fernando Martnez - SIU
Metadatos
8/10/2019 Curso Toba Inicial Sep 2014
77/79
toba proyecto exportar
Vuelca los metadatos del proyecto al sistema dearchivos, y por seguridad exporta tambininformacin local de la instancia (usuarios, logs,etc.) que no forman parte de ningn proyecto en
particular. toba proyecto regenerar
Realiza la accin inversa a exportar: carga en lainstancia (BD) los metadatos existentes en el
sistema de archivos. Regenera nicamente los metadatos del proyecto,
dejando intacta el resto de la instancia.
Metadatos
77Ing. Fernando Martnez - SIU
Metadatos
8/10/2019 Curso Toba Inicial Sep 2014
78/79
Metadatos
78Ing. Fernando Martnez - SIU
Material de consulta SIU-Toba
8/10/2019 Curso Toba Inicial Sep 2014
79/79
Material de consulta SIU Toba
Documentacin on-line http://toba.siu.edu.ar/trac/toba/wiki/Documentacion
Foros de la Comunidad SIU
http://comunidad.siu.edu.ar/foro
http://toba.siu.edu.ar/trac/toba/wiki/Documentacionhttp://comunidad.siu.edu.ar/forohttp://comunidad.siu.edu.ar/forohttp://toba.siu.edu.ar/trac/toba/wiki/Documentacion