Funciones de Módulos Automáticos
Funciones |
common.app[.APPNAME/APPINSTANCE].php o MODULO/TABLA.common.php |
MODULO/TABLA/common[.APPNAME/APPINSTANCE].defaults.php |
MODULO/TABLA.{pre/post}defaultfilter.php |
language/lang-USERLANGUAGE[.MODULO].php |
MODULO/TABLA[.APPNAME/APPINSTANCE].{pre/post}menu.php |
MODULO/TABLA[.APPNAME/APPINSTANCE].submenu.php |
MODULO/TABLA.pre{delete/insert/update/sql}.php |
MODULO/TABLA.post{delete/insert/update/sql}.php |
MODULO.browseend.php |
common.app/MODULO.foot.php |
Campo Función |
Las Funciones de los Módulos Automáticos permiten retocar el comportamiento de estos programas para adaptarlos a las necesidades propias de cada proceso. Dado que habitualmente se requieren funciones más complejas que las típicas de Listar, Nuevo, Buscar, Editar, Borrar y consultar el Detalle de un registro.
Estas funciones se invocan en determinados puntos del módulo lo que permite modificar un determinado fragmento de la página a mostrar por la aplicación. Por ejemplo existen funciones para alterar el menú del módulo que se invocan en el momento antes de presentar el menú (función "premenu") o en el momento posterior a mostrar todos los botones del menú (funcion "postmenu"). Y así en otras partes de las distintas páginas generadas por el módulo automático.
Las funciones tienen una nomenclatura determinada por el tipo de funcion y añadido un prefijo, sufijo o literal intermedio que se utiliza para lo siguiente:
- APPNAME. La función que contenga este literal solo se invoca en aquellas aplicaciones que tengan constante _DEF_APPNAME en su configuracion (config.php). Esto permite que el desarrollador genera una aplicación genérica, pero para un determinado grupo de empresas/sector se modifiquen determinados comportamientos de la aplicación general. Estas "modificaciones secotoriales" se especifican en estas funciones.
- APPINSTANCE. La función que contenga este literal solo se invoca en aquellas aplicaciones que tengan constante _DEF_APPINSTANCE en su configuracion (config.php). Esto permite que el desarrollador modifique el comportamiento de una aplicación genérica para una empresa o entorno concreto. Estas modificaciones se acumulan a las modificaciones de la funcion APPNAME anterior.
- MODULO. La función que contenga este literal solo se invoca desde el módulo del mismo nombre.
- TABLA. La función que contenga este literal se invoca desde todos los módulos automáticos que gestionan la tabla con este nombre. En muchas ocasiones el nombre del MODULO y la TABLA es es el mismo, pero no siempre ocurre así. Por ejemplo se puede tener una tabla que se denomine ERP_ventas y tener varios módulos que gestionen esta misma tabla (ventaspedido, ventasalbaran, ventasfactura). Esta facilidad nos permite modificar el comportamiento de todos los módulos que gestionan la tabla ERP_ventas, y así se evitan tener que repetir las adaptaciones por cada módulo.
Las funciones son:
- common.app[.APPNAME/APPINSTANCE].php o MODULO/TABLA.common.php: esta función se invoca al principio de la ejecución del módulo automático donde solo están definidos los campos del módulo automático. Por ello esta funcion puede modificar el comportamiento del módulo automático dependiendo de determinados parámetros recibidos o variables de sesión del usuario. Habitualmente estos cambios consisten en modificar los campos a gestionar por el módulo, el filtro a aplicar sobre la tabla a gestionar, las funciones a permitir al usuario (borrar, editar, ...).
El fichero common.app.php se invoca para todos los módulos, el common.app.APPNAME.php y el common.app.APPINSTANCE.php solo se invocan si la configuracion de la aplicacion tiene definida la constante _DEF_APPNAME y _DEF_APPINSTANCE y _DEF_APPINSTANCE.
El fichero MODULO.common.php solo se ejecuta para el módulo automático de nombre MODULO, y el fichero TABLA.common.php se ejecuta para todos aquellos módulos automáticos que gestionan la tabla TABLA.
- MODULO/TABLA/common[.APPNAME/APPINSTANCE].defaults.php: esta función se invoca en el momento anterior a mostrar cada línea de registro en la pantalla de listado, o en el momento anterior a mostrar los campos del módulo automático en la página de crear, consultar o editar un registro. También se invoca después de mostrar el menú en cualquier otra página distinta de las anteriores.
En esta función se tienen en variables de memoria los valores de los campos de la tabla antes de consultarlos/editarlos, por ello se pueden modificar estos valores para presentar al usuario otros valores y también alterar el comportamiento de los campos según los valores del registro.
- MODULO/TABLA.{pre/post}defaultfilter.php: esta función se invoca en el momento anterior (pre) o posterior (post) a generar el filtro SQL para acceder a la tabla para listar los registros. Se utiliza solamente para modificar el filtro de los registros a presentar en la página de listar después de la opción de buscar o informe, pues para modificar el filtro general de acceso a la tabla en cualquier página (listar, editar, ...) se debe hacer en el common.
- language/lang-USERLANGUAGE[.MODULO].php: fichero de idiomas que contiene las traducciones de títulos de campos y ayudas del módulo automático a otros idiomas diferentes al utilizado en el desarrollo de la aplicación. En caso de existir el fichero del idioma elegido por el usuario se utilizará. El fichero lang-USERLANGUAGE.php se invoca al principio de cualquier módulo automático, y contiene cualquier variable de traducción al idioma USERLANGUAGE.
El fichero lang-USERLANGUAGE.MODULO.php se invoca al principio de ejecutar solo el módulo "MODULO" con las variables del idioma USERLANGUAGE.
- MODULO/TABLA[.APPNAME/APPINSTANCE].{pre/post}menu.php: fichero que se invoca antes (pre) o después (post) de mostrar el menú del módulo automático (Listar, Buscar, Nuevo, ...). El fichero MODULO.premenu.php se ejecuta antes del menú del módulo "MODULO". El fichero TABLA.premenu.php se ejecuta antes del menú de todos los módulos automáticos que gestionan la tabla "TABLA".
- MODULO/TABLA[.APPNAME/APPINSTANCE].submenu.php: fichero que se invoca después de cerrar la tabla html de menús (Listar, Nuevo, ....) y permite generar un contenido de submenús que se puede situar debajo del menú estándar del módulo automático. La ejecución de los ficheros MODULO.submenu.php y TABLA.submenu.php se realiza desde los módulos automáticos de la misma forma ya comentada antes.
- MODULO/TABLA.pre{delete/insert/update/sql}.php: los ficheros predelete, preupdate y presinsert se ejecutan justo antes de ejecutar el borrado, modificacion o creacion de un registros respectivamente. Los ficheros presql se ejecutan antes de cualquiera de ellas. Los ficheros MODULO.pre.... se ejecutan por el modulo automático "MODULO". Los ficheros TABLA.pre... se ejecutan en todos los módulos automáticos que gestionan la tabla de datos "TABLA".
- MODULO/TABLA.post{delete/insert/update/sql}.php: los ficheros postdelete, postupdate y postinsert se ejecutan justo después de ejecutar el borrado, modificacion o creacion de un registros respectivamente. Los ficheros postsql se ejecutan después de cualquiera de ellas. Los ficheros MODULO.post.... se ejecutan por el modulo automático "MODULO". Los ficheros TABLA.post... se ejecutan en todos los módulos automáticos que gestionan la tabla de datos "TABLA".
- MODULO.browseend.php: es el fichero que se ejecuta en la página de listado en el momento de mostrar el último registro del listado. Esto permite generar una última fila con el contenido que se precise.
- common.app/MODULO.foot.php: es el fichero que se ejecuta por el módulo automático al final de todo el contenido, ya sea la página de listado o los formularios de consulta/detalle de registro, nuevo, editar, buscar, informe, etc. Se utiliza poner contenido html o javascript al final de la página.
- Campo Función: es un programa php que genera un contenido html a situar en la posición de un campo del módulo automático, como si se tratase de un campo de la tabla, aunque no corresponde con ningún campo de tabla. Son procesos muy útiles que permiten generar cualquier contenido html: puede ser un campo o valor calculado, un gráfico o cualquier otro contenido calculado de forma dinámica.