//////////////////////////////////////////////////////////////////////////////// Copyright 2013, 2014, 2015 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 = Creación de una nueva aplicación = :lang: es :imagesdir: ../img/ :icons: :iconsdir: ../img/icons :ascii-ids: . Crear un directorio con el nombre de la nueva aplicación dentro del directorio de aplicaciones (`APPS_DIR` en `xgap.php`). . Crear un directorio con nombre `extras' dentro del nuevo directorio. 'Importante:' el servidor web debe poder crear y modificar archivos dentro de estos dos directorios; caso contrario, se producirá un error al realizar la generación. . Crear la base de datos que se va a usar en la aplicación. . Copiar a la aplicación los scripts SQL provistos por XGAP para crear la estructura inicial requerida en la base de datos. Éstos se encuentran en la distribución de XGAP dentro del directorio `XGAP_DIR/MOTORES_SUBDIR/{motor}/bd/`, con nombre `/^\d\d-.+\.sql$/`. . El script `02-seguridad_datos_iniciales.sql` contiene secciones marcadas con ``TODO:'' que se deben adecuar a la aplicación. Realizar las modificaciones necesarias y ejecutar los scripts dentro de la base de datos recién creada, en orden ascendente por nombre. . Opcionalmente, copiar a la aplicación el menú inicial provisto por el motor: copiar `XGAP_DIR/MOTORES_SUBDIR/{motor}/xml/menu/main_menu.xml` a `APPS_DIR/{app}/extras/menu/`. . Abrir la página inicial del generador. Ingresar el nombre de la nueva aplicación en el campo ``Aplicación'' y presionar el botón ``Configurar''. . Dado que la nueva aplicación aún no tiene un archivo de configuración, el generador ofrece crear uno. En la nueva página, seleccionar en la lista desplegable ``Versión'' la versión del motor a utilizar y presionar el botón ``Aceptar''. . El generador muestra la página de configuración de la aplicación. Comprobar los valores existentes y completar los faltantes; presionar ``Aceptar'' para guardar los cambios. . El generador muestra la configuración que fue guardada. Hacer click en ``Volver al generador''. . En la página principal del generador, asegurarse que esté marcado ``Generar aplicación'' y presionar el botón ``Generar''. . Al completar el proceso, la aplicación inicial queda lista para usar. La primera generación copia algunos archivos a los directorios raíz y extras de la aplicación, que contienen configuraciones y definiciones de páginas básicas. Opcionalmente se pueden editar estos nuevos archivos para adaptarlos a las necesidades de la aplicación; al menos es conveniente revisar el archivo `extras/aplicacion.xml`, ya que se crea con valores por defecto. .Creación de la aplicación ``prueba1'' ==== Este ejemplo asume que se está trabajando en Linux; será necesario adaptar algunos comandos y rutas para aplicarlo en otros sistemas operativos. Comencemos por convenir algunos valores que se usarán durante el ejemplo: - `XGAP_DIR = '/home/user/Projects/xgap/dist'` - `MOTORES_SUBDIR = 'motores'` - `APPS_DIR = '/home/user/Projects/xgap/apps'` - `XGAP_CONF_VERSION_XGAP = 'ultimo'` - Nombre de la aplicación: `prueba1` - Base de datos de la aplicación: `prueba1_dev` - Grupo al que pertenece el servidor web: `www-data` - Directorio donde se guardan los scripts SQL para la aplicación: `/home/user/Projects/xgap/apps/prueba1/bd` Entonces: . Crear el directorio `/home/user/Projects/xgap/apps/prueba1`: + [source,sh] ---- cd /home/user/Projects/xgap/apps mkdir prueba1 ---- . Crear el directorio `/home/user/Projects/xgap/apps/prueba1/extras`. Asegurarse que el servidor web tenga permiso de escritura sobre estos nuevos directorios. Una forma de hacerlo en Linux consiste en cambiar el grupo de los directorios al mismo que tiene el servidor web y darles permiso de escritura para el grupo: + [source,sh] ---- mkdir prueba1/extras chgrp -R www-data prueba1 chmod -R g+sw prueba1 ---- . Crear la base de datos `prueba1_dev`; por ejemplo, para PostgreSQL: + [source,sh] ---- createdb -U postgres prueba1_dev 'Base de datos para la aplicación XGAP prueba1' ---- . Copiar a la aplicación los scripts SQL de inicialización: + [source,sh] ---- cd /home/user/Projects/xgap/apps/prueba1 mkdir bd cd bd cp /home/user/Projects/xgap/dist/motores/ultimo/bd/??-*.sql . ---- . Modificar `02-seguridad_datos_iniciales.sql` y cargar la estructura inicial de la base de datos: + [source,sh] ---- cd /home/user/Projects/xgap/apps/prueba1/bd vi 02-seguridad_datos_iniciales.sql psql -U postgres -f 00-superuser_init.sql prueba1_dev psql -U postgres -f 01-seguridad.sql prueba1_dev psql -U postgres -f 02-seguridad_datos_iniciales.sql prueba1_dev psql -U postgres -f 03-firma_digital.sql prueba1_dev ---- . Copiar el menú inicial a la aplicación: + [source,sh] ---- cd /home/user/Projects/xgap/apps/prueba1/extras mkdir menu cp /home/user/Projects/xgap/dist/motores/ultimo/xml/menu/main_menu.xml menu/ ---- . En la página inicial del generador, ingresar ``prueba1'' en el campo ``Aplicación'' y presionar ``Configurar''. + image::nueva_aplicacion-generador-01.png["Ingreso a la configuración de una aplicación"] . Seleccionar el motor a utilizar y presionar ``Aceptar''. + image::nueva_aplicacion-generador-02.png["Selección de versión de motor a utilizar"] . Realizar los cambios necesarios en la página de configuración y presionar ``Aceptar''. + image::nueva_aplicacion-generador-03.png["Configuración de la aplicación"] . Se muestra el contenido del archivo de configuración de la aplicación. Volver al generador. + image::nueva_aplicacion-generador-04.png["Confirmación de guardado de configuración"] . Generar la aplicación. + image::nueva_aplicacion-generador-05.png["Generación de la aplicación"] . La aplicación inicial queda generada. + image::nueva_aplicacion-generador-06.png["Resultado de la generación"] ==== // vim: set syntax=asciidoc textwidth=80: