30,997
edits
mNo edit summary |
mNo edit summary |
||
| Line 1: | Line 1: | ||
{{TemplateDocDesarrollo}} | |||
Para crear un nuevo módulo hay distintas fases a seguir. Este tutorial tiene como meta describir cada una de estas fases con el fin de ayudar a comprender las posibilidades de Dolibarr, como por ejemplo añadir una o varias de las siguientes funcionalidades: | Para crear un nuevo módulo hay distintas fases a seguir. Este tutorial tiene como meta describir cada una de estas fases con el fin de ayudar a comprender las posibilidades de Dolibarr, como por ejemplo añadir una o varias de las siguientes funcionalidades: | ||
* Agregar nuevas tablas a la base de datos. | * Agregar nuevas tablas a la base de datos. | ||
| Line 11: | Line 12: | ||
= Crear un descriptor de Módulo (obligatorio) = | |||
'''Cuándo''': Obligatorio cada vez que se desarrolla una extensión, cualquiera que sea su finalidad. | '''Cuándo''': Obligatorio cada vez que se desarrolla una extensión, cualquiera que sea su finalidad. | ||
== Crear tu descriptor == | |||
La primera fase es la de crear un fichero descriptor del módulo. Para ello, ve al directorio '''dev/skeletons''' y copia el fichero "modMyModule.class.php" en el directorio '''htdocs/includes/modules'''. A continuación, modifica el contenido de este fichero con el fin de reemplazar: | La primera fase es la de crear un fichero descriptor del módulo. Para ello, ve al directorio '''dev/skeletons''' y copia el fichero "modMyModule.class.php" en el directorio '''htdocs/includes/modules'''. A continuación, modifica el contenido de este fichero con el fin de reemplazar: | ||
* los "modMyModule" por un valor que corresponda a la finalidad de tu módulo. Este valor debe siempre comenzar por mod. | * los "modMyModule" por un valor que corresponda a la finalidad de tu módulo. Este valor debe siempre comenzar por mod. | ||
| Line 24: | Line 25: | ||
Ahora tu fichero descriptor está configurado. | Ahora tu fichero descriptor está configurado. | ||
== Probar tu descriptor == | |||
Ejecuta Dolibarr y ve a la página "Configuration > Module". Debería aparecer una nueva línea con tu nuevo módulo y la posibilidad de activarlo o no (echa un vistazo a todas las pestañas de cada categoría para encontrarlo). Es el valor $this->special el que determina en qué pestaña se encuentra tu módulo. | Ejecuta Dolibarr y ve a la página "Configuration > Module". Debería aparecer una nueva línea con tu nuevo módulo y la posibilidad de activarlo o no (echa un vistazo a todas las pestañas de cada categoría para encontrarlo). Es el valor $this->special el que determina en qué pestaña se encuentra tu módulo. | ||
= Crear tus tablas SQL y la clase PHP de los métodos de acceso1 (opcional) = | |||
'''Cuándo:''' Si tu módulo necesita gestionar sus propios datos. | '''Cuándo:''' Si tu módulo necesita gestionar sus propios datos. | ||
==Crear tus ficheros .sql== | |||
Si tu módulo de verdad requiere administrar datos que no existen en la base de datos en la versión estándar de Dolibarr, será necesario definir ciertas tablas SQL para registrar esos datos. | Si tu módulo de verdad requiere administrar datos que no existen en la base de datos en la versión estándar de Dolibarr, será necesario definir ciertas tablas SQL para registrar esos datos. | ||
| Line 45: | Line 46: | ||
== Probar tu fichero .sql == | |||
Una vez que los ficheros estén listos, puedes volver a Dolibarr para desactivar el módulo, eliminar las tablas de la base de datos y reactivar el módulo. Las tablas deben ser recreadas por la activación del módulo. Si no es así, verifica tus scripts o consulta los logs Dolibarr. | Una vez que los ficheros estén listos, puedes volver a Dolibarr para desactivar el módulo, eliminar las tablas de la base de datos y reactivar el módulo. Las tablas deben ser recreadas por la activación del módulo. Si no es así, verifica tus scripts o consulta los logs Dolibarr. | ||
== Generar la clase PHP de acceso == | |||
Una vez que tu/s tabla/s estén creadas en la base de datos, ve al directorio '''dev/skeletons''' y ejecuta el script | Una vez que tu/s tabla/s estén creadas en la base de datos, ve al directorio '''dev/skeletons''' y ejecuta el script | ||
php build_class_from_table.php nombretabla | php build_class_from_table.php nombretabla | ||
| Line 59: | Line 60: | ||
= Crear tus páginas pantalla PHP (opcional)= | |||
'''Cuándo:''' Si tu módulo consiste en añadir funcionalidades que necesitan nuevas pantallas. | '''Cuándo:''' Si tu módulo consiste en añadir funcionalidades que necesitan nuevas pantallas. | ||
==Crear una página pantalla PHP== | |||
Debes crear a continuación pantallas PHP que se basen en los datos de tus tablas utilizando los esqueletos como ejemplo del directorio '''dev/skeletons'''. (Para el desarrollo de un script en línea de comandos, ver [[Desarrollar script]]). | Debes crear a continuación pantallas PHP que se basen en los datos de tus tablas utilizando los esqueletos como ejemplo del directorio '''dev/skeletons'''. (Para el desarrollo de un script en línea de comandos, ver [[Desarrollar script]]). | ||
| Line 79: | Line 80: | ||
== Acceso a la base de datos == | |||
Si necesitas realizar modificaciones en tu tabla de la base de datos, utiliza la clase generada más arriba. | Si necesitas realizar modificaciones en tu tabla de la base de datos, utiliza la clase generada más arriba. | ||
| Line 112: | Line 113: | ||
} | } | ||
== Definición de estilos == | |||
Para que el aspecto de la página guarde coherencia con el tema Dolibarr, es necesario utilizar los estilos CSS de Dolibarr. | Para que el aspecto de la página guarde coherencia con el tema Dolibarr, es necesario utilizar los estilos CSS de Dolibarr. | ||
| Line 123: | Line 124: | ||
== Utilizar el selector de datos de Dolibarr == | |||
Si quieres, puedes beneficiarte del selector de datos en las pantallas Dolibarr. Para ello, utiliza la siguiente línea: | Si quieres, puedes beneficiarte del selector de datos en las pantallas Dolibarr. Para ello, utiliza la siguiente línea: | ||
$form=new Form($db); | $form=new Form($db); | ||
| Line 135: | Line 136: | ||
= Definir tu página de configuración (opcional) = | |||
'''Cuándo:''' Si tu módulo ofrece varias opciones parametrizables. | '''Cuándo:''' Si tu módulo ofrece varias opciones parametrizables. | ||
==Crear tu página de edición de configuración== | |||
Si tu módulo ofrece varias opciones parametrizacles, es necesario crear una página PHP para editar las opciones (que serán guardadas en la tabla '''llx_const'''). Crea una página PHP llamada '''mimodulo_setuppage.php''', que registre las opciones posibles y las ponga al día. Es necesario tomar como ejemplo una página de '''/admin''' que te muestre el método para leer o guardar en la base de datos tu opción. Coloca esta página de configuración también en el directorio '''/admin'''. A continuación, en el descriptor del módulo, modifica la variable para indicar el nombre de esta página PHP (no es necesario modificar la ruta, ya que la página estará forzosamente en el directorio '''/admin'''). | Si tu módulo ofrece varias opciones parametrizacles, es necesario crear una página PHP para editar las opciones (que serán guardadas en la tabla '''llx_const'''). Crea una página PHP llamada '''mimodulo_setuppage.php''', que registre las opciones posibles y las ponga al día. Es necesario tomar como ejemplo una página de '''/admin''' que te muestre el método para leer o guardar en la base de datos tu opción. Coloca esta página de configuración también en el directorio '''/admin'''. A continuación, en el descriptor del módulo, modifica la variable para indicar el nombre de esta página PHP (no es necesario modificar la ruta, ya que la página estará forzosamente en el directorio '''/admin'''). | ||
$this->config_page_url = array("monmodule_setupapage.php"); | $this->config_page_url = array("monmodule_setupapage.php"); | ||
== Probar tu página == | |||
Ve a la página '''Configuración > módulo'''. Debería aparecer un icono que permite acceder a la página de configuración, y deberías poder modificar estas opciones y verlas en la base de datos. | Ve a la página '''Configuración > módulo'''. Debería aparecer un icono que permite acceder a la página de configuración, y deberías poder modificar estas opciones y verlas en la base de datos. | ||
= Definir tus entradas de menú (opcional) = | |||
'''Cuándo:''' Si has creado páginas PHP, es necesario que estas pantallas sean accesibles desde el menú Dolibarr. | '''Cuándo:''' Si has creado páginas PHP, es necesario que estas pantallas sean accesibles desde el menú Dolibarr. | ||
== Definir tus entradas == | |||
Para ello, hace falta definir en el fichero descriptor de menú de tabla | Para ello, hace falta definir en el fichero descriptor de menú de tabla | ||
$this->menu | $this->menu | ||
| Line 157: | Line 158: | ||
== Probar tus entradas de menú == | |||
Desactiva y reactiva tu módulo bajo Dolibarr. Las entradas del menú deberían aparecer después de hacerlo. | Desactiva y reactiva tu módulo bajo Dolibarr. Las entradas del menú deberían aparecer después de hacerlo. | ||
= Definir tus propios permisos (opcional) = | |||
'''Cuándo:''' Si quieres añadir nuevos permisos. | '''Cuándo:''' Si quieres añadir nuevos permisos. | ||
| Line 179: | Line 180: | ||
= Definir tus propias cajas (opcional) = | |||
'''Cuándo:''' Si tu módulo tiene una o varias cajas. | '''Cuándo:''' Si tu módulo tiene una o varias cajas. | ||
== Define tus cajas == | |||
Para ello, modifica las tablas $this->boxes del fichero descriptor de módulo. Es suficiente con añadir una línea por cada fichero de caja que se encuentre en el directorio '''htdocs/includes/boxes'''. | Para ello, modifica las tablas $this->boxes del fichero descriptor de módulo. Es suficiente con añadir una línea por cada fichero de caja que se encuentre en el directorio '''htdocs/includes/boxes'''. | ||
| Line 194: | Line 195: | ||
A continuación crea los ficheros mabox0.php, mabox1.php... tomando como ejemplo las cajas existentes (en el directorio htdocs/include/boxes) | A continuación crea los ficheros mabox0.php, mabox1.php... tomando como ejemplo las cajas existentes (en el directorio htdocs/include/boxes) | ||
== Prueba tus cajas en Dolibarr == | |||
Ve al menú '''Bienvenida – Configuración – Caja'''. Tus cajas deben aparecer en la lista de cajas activables. Actívalas, ve a la página de bienvenida y verifica que se muestran correctamente. | Ve al menú '''Bienvenida – Configuración – Caja'''. Tus cajas deben aparecer en la lista de cajas activables. Actívalas, ve a la página de bienvenida y verifica que se muestran correctamente. | ||
= Definir tus propias exportaciones (opcional) = | |||
'''Cuándo:''' Si tu módulo incorpora exportaciones predefinidas de datos (tanto para sus propias tablas o para otras tablas existentes de otros módulos de Dolibarr) | '''Cuándo:''' Si tu módulo incorpora exportaciones predefinidas de datos (tanto para sus propias tablas o para otras tablas existentes de otros módulos de Dolibarr) | ||
== Definir la exportación == | |||
Para ello, descomenta y modifica las tablas $this->export_xxx de tu fichero descriptor de módulo. | Para ello, descomenta y modifica las tablas $this->export_xxx de tu fichero descriptor de módulo. | ||
== Probar la exportación == | |||
Ve al menú "Herramientas > Exportar" de Dolibarr. Tu exportación debería aparecer en la lista de exportaciones predefinidas disponibles (si tu módulo ha sido activado correctamente). Deberían aparecer, para que pudieras elegirlos, los campos que definiste en la fase anterior en las tablas correspondientes. Elige algunos campos y prueba a generar un fichero de exportación. | Ve al menú "Herramientas > Exportar" de Dolibarr. Tu exportación debería aparecer en la lista de exportaciones predefinidas disponibles (si tu módulo ha sido activado correctamente). Deberían aparecer, para que pudieras elegirlos, los campos que definiste en la fase anterior en las tablas correspondientes. Elige algunos campos y prueba a generar un fichero de exportación. | ||
= Definir tus estilos CSS (opcional) = | |||
'''Cuándo:''' Si en tus pantallas PHP utilizas clases de estilos distintas a las de los temas de Dolibarr. | '''Cuándo:''' Si en tus pantallas PHP utilizas clases de estilos distintas a las de los temas de Dolibarr. | ||
Esta funcionalidad todavía no es operativa en la versión 2.4., a pesar de estar ya descrita. | Esta funcionalidad todavía no es operativa en la versión 2.4., a pesar de estar ya descrita. | ||
= Definir tus funciones Javascript (opcional) = | |||
Esta funcionalidad ya no existe. | Esta funcionalidad ya no existe. | ||
= Ejecutar código sobre un evento Dolibarr (opcional)= | |||
'''Cuándo:''' Si quieres que se ejecuten acciones particulares al activar ciertas acciones estandar de Dolibarr (por ejemplo, si deseáramos actualizar una tabla de mi módulo cada vez que se crea una factura en Dolibarr), hará falta crear un fichero '''disparador (triggers)'''. | '''Cuándo:''' Si quieres que se ejecuten acciones particulares al activar ciertas acciones estandar de Dolibarr (por ejemplo, si deseáramos actualizar una tabla de mi módulo cada vez que se crea una factura en Dolibarr), hará falta crear un fichero '''disparador (triggers)'''. | ||
Véase también [[Interfaces Dolibarr hacia el exterior]] e [[Interfaces Dolibarr hacia Dolibarr]] | Véase también [[Interfaces Dolibarr hacia el exterior]] e [[Interfaces Dolibarr hacia Dolibarr]] | ||
= Crear un paquete para liberar e instalar tu módulo = | |||
* Ve al directorio '''/build''' y copia el fichero '''makepack-dolibarrmodules.conf''' como '''makepack-mimodulo.conf'''. Cuidado: este directorio puede no ser suministrado en los paquetes de versión estables. Si es el caso, puedes bajarte la última snapshot CVS en la sección de Downloads del sitio de Dolibarr con el nombre “Development Version”1 (toma en este caso todos los directorios que sean autónomos e independientes de la versión). | * Ve al directorio '''/build''' y copia el fichero '''makepack-dolibarrmodules.conf''' como '''makepack-mimodulo.conf'''. Cuidado: este directorio puede no ser suministrado en los paquetes de versión estables. Si es el caso, puedes bajarte la última snapshot CVS en la sección de Downloads del sitio de Dolibarr con el nombre “Development Version”1 (toma en este caso todos los directorios que sean autónomos e independientes de la versión). | ||
| Line 233: | Line 234: | ||
tar -xvf monmodule.tgz | tar -xvf monmodule.tgz | ||
= Algunas reglas de código = | |||
Las reglas de código a seguir se definen en la [[Documentación Desarrolladores| Documentación para desarrolladores]], concretamente en la sección "Lenguaje" del capítulo de "Información General". | Las reglas de código a seguir se definen en la [[Documentación Desarrolladores| Documentación para desarrolladores]], concretamente en la sección "Lenguaje" del capítulo de "Información General". | ||