////////////////////////////////////////////////////////////////////////////////
Copyright 2013, 2014, 2015, 2017, 2019 Newport Software Technologies, UNICEN
This file is part of XGAP.
XGAP is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
XGAP is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with XGAP. If not, see .
////////////////////////////////////////////////////////////////////////////////
:encoding: utf-8
= Código extra en las páginas generadas =
:lang: es
:toc:
:imagesdir: ../img/
:icons:
:iconsdir: ../img/icons
:ascii-ids:
El elemento `codigoExtra/codigo` permite definir código a incluir en las páginas
generadas. El atributo `@tipo` indica el tipo de código; puede ser `HTML`, `PHP`
o `JAVASCRIPT`. El atributo `@ubicacion` indica la ubicación dentro de la página
donde se debe emitir el código; más adelante se encuentran listadas todas las
ubicaciones disponibles para cada tipo de página. En el caso de `@tipo="PHP"`,
el código se emite dentro de una función que se define al comienzo de la página
y se invoca en la ubicación indicada; esta función recibe un único parámetro
`$params`, el cual es un array que contiene los pares `clave=>valor` indicados
en la columna ``Parámetros'' de los listados de ubicaciones. Dado que el código
extra no tiene alcance global, no es necesario preocuparse por modificar
inadvertidamente el valor de alguna variable usada por XGAP.
.Ejemplo de uso de código extra
====
[source,xml]
----
Esto va al inicio de la pagina.
]]>
obtenerPrimero($sql);
// $params['titulo'] es un parámetro provisto para esta ubicación
$params['titulo'] .= ' en ' . XGAP_CONF_APLICACION . " | $descseccion";
]]>
----
====
== Ubicaciones ==
Posibles valores para `codigoExtra/codigo/@ubicacion`.
[[codigoextra_ubicacion_todos]]
=== En todos los tipos de página ===
[options="header,autowidth",cols="`)
|`Conexion 'conexion'` +
`HistorialNavegacion 'historial'`
|l, s, sm
|en_head
|Antes de generar el elemento `head`. Lo que se emite a la salida se incluye
dentro del head.
|-
|l, s, sm
|inicio_body
|Justo después de abrir el elemento `body`
|`Conexion 'conexion'` +
`HistorialNavegacion 'historial'` +
`boolean 'pagina_simple'`
|l, s, sm
|fin_body
|Justo antes de cerrar el elemento `body`
|`Conexion 'conexion'` +
`boolean 'pagina_simple'`
|l, s, sm
|despues_abrir_estructura
|Justo después de abrir la estructura de la página (al comienzo del
contenedor principal)
|`Conexion 'conexion'` +
`HistorialNavegacion 'historial'` +
`Flash 'flash'` +
`boolean 'pagina_simple'`
|l, s, sm
|antes_cerrar_estructura
|Justo antes de cerrar la estructura de la página (al final del contenedor
principal)
|`Conexion 'conexion'` +
`HistorialNavegacion 'historial'` +
`boolean 'pagina_simple'`
|l, s, sm
|antes_tabla_datos
|Justo antes de abrir la tabla principal del listado
|`Conexion 'conexion'` +
`string 'id_tabla'`
|l, s, sm, mi
|despues_tabla_datos
|Justo después de cerrar la tabla principal del listado
|`Conexion 'conexion'` +
`string 'id_tabla'`
|l, s, sm, mi
|inicio_celda_encabezado
|Justo después de abrir una celda del encabezado de la tabla principal
|`Conexion 'conexion'` +
`string 'dato'` +
`string &'valor_a_mostrar'` (XGAP ≥ r2.16.0.568)
|l, s, sm, mi
|fin_celda_encabezado
|Justo antes de cerrar una celda del encabezado de la tabla principal
|`Conexion 'conexion'` +
`string 'dato'`
|l, s, sm, mi
|antes_fila_datos
|Antes de abrir una fila del cuerpo de la tabla principal (XGAP ≥ r2.16.0.700)
|`Conexion 'conexion'` +
`integer 'cant_filas'`: cantidad total de filas en el cuerpo +
`integer 'fila'`: número de fila actual +
`array 'valores_fila'`: valores de todas las columnas de la fila actual +
`string &'nombre'`: ID de la fila +
`string &'clase'`: clase de la fila
|l, s, sm, mi
|inicio_celda_datos
|Justo después de abrir una celda del cuerpo de la tabla principal
|`Conexion 'conexion'` +
`string 'dato'` +
`integer 'fila'` +
`array 'valores_fila'` +
`string &'valor_a_mostrar'`
|l, s, sm, mi
|fin_celda_datos
|Justo antes de cerrar una celda del cuerpo de la tabla principal
|`Conexion 'conexion'` +
`string 'dato'` +
`integer 'fila'` +
`array 'valores_fila'` +
`string 'valor_mostrado'`
|l, s, sm, mi
|antes_consulta
|Antes de crear la consulta SQL para obtener los datos para el listado.
(XGAP ≥ 2.12.3)
|`Conexion 'conexion'` +
`HistorialNavegacion 'historial'`
|l, s, sm, mi
|despues_consulta
|Despues de ejecutar la consulta SQL para obtener los datos para el listado.
(XGAP ≥ r2.16.0.732)
|`Conexion 'conexion'` +
`HistorialNavegacion 'historial'` +
`ADORecordSet 'recordset'` +
`int 'total_filas'`: cantidad total de filas obtenidas por la consulta, sin tener en
cuenta paginación +
`string 'sql_filas'`: código SQL para obtener los datos de las filas +
`string 'sql_total_filas'`: código SQL para obtener el valor de `'total_filas'`
|l, s, sm, mi
|crea_consulta
|Permite crear manualmente la consulta SQL para obtener los datos para el
listado. Debe establecer los valores de `$params['SQL']` y
`$params['SQLCount']`
|`Conexion 'conexion'` +
`string &'SQL'` +
`int &'SQLCount'` +
`string 'select'` +
`string 'from'` +
`string 'where'` +
`string 'orderBy'` +
`string 'groupBy'` +
`string 'having'` +
`array 'filtros2'` +
`array 'columnasFiltros'` +
`string 'condiciones'` +
`string 'paramsAExluir'` +
`string 'condiciones_personalizadas'` +
`string 'orden'`
|l, s, sm, mi
|arma_link
|Antes de generar un link en una columna que tiene `@llevaALink`
|`Conexion 'conexion'` +
`ADORecordSet 'recordset'` +
`string 'dato'` +
`int 'fila'` +
`string &'paginaForm'`: el link +
`array &'paramPagina'`: parámetros para agregar al link
|l, mi
|====
=== En `listado_csv`, `listado_ods`, `listado_pdf`, `listado_rtf` y `listado_xls` ===
[options="header,autowidth",cols="`)
|`Conexion 'conexion'` +
`HistorialNavegacion 'historial'`
|en_head
|Antes de generar el elemento `head`. Lo que se emite a la salida se incluye
dentro del head.
|-
|inicio_body
|Justo después de abrir el elemento `body`
|`Conexion 'conexion'`
`HistorialNavegacion 'historial'`
`boolean 'pagina_simple'`
|fin_body
|Justo antes de cerrar el elemento `body`
|`Conexion 'conexion'`
`boolean 'pagina_simple'`
|despues_abrir_estructura
|Justo después de abrir la estructura de la página (al comienzo del
contenedor principal)
|`Conexion 'conexion'` +
`HistorialNavegacion 'historial'` +
`Flash 'flash'` +
`boolean 'pagina_simple'`
|antes_cerrar_estructura
|Justo antes de cerrar la estructura de la página (al final del contenedor
principal)
|`Conexion 'conexion'` +
`HistorialNavegacion 'historial'` +
`boolean 'pagina_simple'`
|====
=== En `formulario` ===
[options="header,autowidth",cols=">
|`Conexion 'conexion'` +
`Seguridad 'seguridad'` +
`HistorialNavegacion 'historial'` +
`Configuracion 'configuracion'` +
`string 'accion'` +
`array 'metadatos'` +
`array 'campos'` +
`array &'registro'` +
`Flash 'flash'`
|despues_obtener_vbles_sistema
|Después de inicializar las variables de la página, pero antes de comenzar a procesar
la acción o la presentación de la página (XGAP ≥ r2.16.0.678)
|`Conexion 'conexion'` +
`iSeguridad 'seguridad'` +
`HistorialNavegacion 'historial'` +
`Configuracion 'configuracion'` +
`boolean 'agregado'`
|despues_inicializacion
|Después de inicializar las variables de la página, justo antes de comenzar a
emitir a la salida; no se llega a esta ubicación si el formulario ejecuta
correctamente una acción, dado que se redirige a la página destino antes; es
decir, sólo se llega si el formulario se muestra
|`Conexion 'conexion'` +
`HistorialNavegacion 'historial'` +
`Flash 'flash'` +
`boolean 'agregado'` +
`ADORecordSet 'recordset'`: el registro completo obtenido desde la base de
datos; sólo está disponible si `$params['agregado'] == false`; en caso contrario,
es `null` (XGAP ≥ r2.16.0.736) +
`string &'titulo'` +
`array &'valores'` +
`boolean &'sololectura'`
|despues_html
|Después de terminar de generar salida html (después de `