Desarrollo de un módulo: Difference between revisions

Jump to navigation Jump to search
no edit summary
No edit summary
Line 68: Line 68:


==Añadir sus pestañas en las fichas entidad==
==Añadir sus pestañas en las fichas entidad==
'''Cuando''' : Para añadir su propia pestaña en las pestañas estandard de una ficha entidad (factura, pedido, presupuesto, miembro...)
'''Cuándo''' : Para añadir su propia pestaña en las pestañas estandard de una ficha entidad (factura, pedido, presupuesto, miembro...)


Para ello, vaya al archivo descriptor del módulo creado anteriormente y modifique la tabla $this->tabs:
Para ello, vaya al archivo descriptor del módulo creado anteriormente y modifique la tabla $this->tabs:
Line 107: Line 107:


== Añadir pestañas de una ficha entidad hoja en su propia página ==
== Añadir pestañas de una ficha entidad hoja en su propia página ==
'''Cuando''' : Para mostrar las pestañas estandard de ficha entidad (producto, tercero, etc.) en su propia pestaña de una entidad.
'''Cuándo''' : Para mostrar las pestañas estandard de ficha entidad (producto, tercero, etc.) en su propia pestaña de una entidad.


Hay que hacer lo siguiente :
Hay que hacer lo siguiente :
Line 221: Line 221:


== Acceso a la base de datos ==
== 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 necesita realizar modificaciones en su tabla de la base de datos, utilice la clase generada más arriba.


Si de todos modos quieres acceder a las tablas sin objeto PHP dedicado, esto es posible (por ejemplo para recuperar una lista de registros). En ese caso, piensa en seguir estos ejemplos.
Si de todos modos quiere acceder a las tablas sin objeto PHP dedicado, esto es posible (por ejemplo para recuperar una lista de registros). En ese caso, piense en seguir estos ejemplos.


Para un ''insert'', ''update'' o ''delete'':
Para un ''insert'', ''update'' o ''delete'':
Line 269: Line 269:


== Utilizar el selector de datos de Dolibarr ==
== 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 quieree, puede beneficiarse del selector de datos en las pantallas Dolibarr. Para ello, utilice la siguiente línea:
<source lang="php">
<source lang="php">
  $form=new Form($db);
  $form=new Form($db);
Line 283: Line 283:
</source>
</source>


= [[File:Art.png]] Definir tu página de configuración (opcional) =
= [[File:Art.png]] Definir su página de configuración (opcional) =
'''Cuándo:''' Si tu módulo ofrece varias opciones parametrizables.
'''Cuándo:''' Si su módulo ofrece varias opciones parametrizables.


==Crear tu página de edición de configuración==
==Crear su 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 [[Table llx_const|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 su módulo ofrece varias opciones parametrizacles, es necesario crear una página PHP para editar las opciones (que serán guardadas en la [[Table llx_const|tabla '''llx_const''']]). Cree 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 le muestre el método para leer o guardar en la base de datos su opción. Coloque esta página de configuración también en el directorio '''/admin'''. A continuación, en el descriptor del módulo, modifique 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''').
<source lang="php">
<source lang="php">
  $this->config_page_url = array("monmodule_setupapage.php");
  $this->config_page_url = array("monmodule_setupapage.php");
</source>
</source>


== Probar tu página ==
== Probar su 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.
Vaya 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ía poder modificar estas opciones y verlas en la base de datos.




= [[File:Art.png]] Definir tus entradas de menú (opcional) =
= [[File:Art.png]] Definir sus 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 ha creado páginas PHP, es necesario que estas pantallas sean accesibles desde el menú Dolibarr.


== Definir tus entradas de menú==
== Definir sus entradas de menú==
Para ello, hace falta definir en el fichero descriptor de menú de tabla this->menu, que declara los menús.
Para ello, hace falta definir en el archivo descriptor de menú de tabla this->menu, que declara los menús.
Esta tabla contiene todas las entradas que aparecerán en los menús una vez que el módulo sea activado. Los ficheros de descriptor de módulo contienen un ejemplo de cómo se declara el menú superior, así como las entradas correspondientes en el menú de la derecha
Esta tabla contiene todas las entradas que aparecerán en los menús una vez que el módulo sea activado. Los archivos de descriptor de módulo contienen un ejemplo de cómo se declara el menú superior, así como las entradas correspondientes en el menú de la derecha


He aquí un ejemplo de declaración de entradas de menú en el fichero descriptor:
He aquí un ejemplo de declaración de entradas de menú en el fichero descriptor:
Line 342: Line 342:
Para condicionar el acceso al menú segun los permisos, modificar la propiedad '''perms''' de la tabla. Ver el capítulo sobre permisos, un poco más abajo, para saber como realizar los permisos.
Para condicionar el acceso al menú segun los permisos, modificar la propiedad '''perms''' de la tabla. Ver el capítulo sobre permisos, un poco más abajo, para saber como realizar los permisos.


== Probar tus entradas de menú ==
== Probar sus entradas de menú ==
Desactiva y reactiva tu módulo bajo Dolibarr. Las entradas del menú deberían aparecer después de hacerlo (si la condición 'enabled' está activada).
Desactive y reactive su módulo bajo Dolibarr. Las entradas del menú deberían aparecer después de hacerlo (si la condición 'enabled' está activada).


= [[File:Art.png]] Definir tus propios permisos (opcional) =
= [[File:Art.png]] Definir sus propios permisos (opcional) =
'''Cuándo:''' Si quieres añadir nuevos permisos.
'''Cuándo:''' Si quiere añadir nuevos permisos.


La definición de permisos que gestionará tu módulo se hace en el fichero descriptor creado en la primera fase. Modifica la línea $this->rights_class = 'facture' para que diga:
La definición de permisos que gestionará su módulo se hace en el archivo descriptor creado en la primera fase. Modifique la línea $this->rights_class = 'facture' para que diga:
<source lang="php">
<source lang="php">
  $this->rights_class = 'mimodulo';
  $this->rights_class = 'mimodulo';
</source>
</source>


A continuación, rellena la tabla $this->rights con tantas entradas como permisos diferentes vayas a definir:
A continuación, rellene la tabla $this->rights con tantas entradas como permisos diferentes vaya a definir:
<source lang="php">
<source lang="php">
  $this->rights[$r][0] = 10001;
  $this->rights[$r][0] = 10001;
Line 363: Line 363:
</source>
</source>


En $this->rights[$r][0], introduce un id de permiso que no haya sido ocupado ya (para saber qué id están siendo ya utilizadas, ver el menú '''Información del Sistema''' en una instalación de Dolibarr que esté funcionando. En $this->rights[$r][3], introduce 1 si este permiso se atribuye por defecto a los usuarios según son creados. En $this->rights[$r][1] introduce un texto por defecto -que será mostrado si no se encuentra traducción para tu permiso en el fichero '''admin.lang'''). En $this->rights[$r][4] y $this->rights[$r][5], introduce una cadena de acción y subacción sin espacios. Después puedes probar si un usuario tiene los permisos bien, introduciendo la siguiente secuencia en el código PHP:
En $this->rights[$r][0], introduzca un id de permiso que no haya sido ocupado ya (para saber qué id están siendo ya utilizadas, ver el menú '''Información del Sistema''' en una instalación de Dolibarr que esté funcionando. En $this->rights[$r][3], introduzca 1 si este permiso se atribuye por defecto a los usuarios según son creados. En $this->rights[$r][1] introduzca un texto por defecto -que será mostrado si no se encuentra traducción para su permiso en el archivo '''admin.lang'''). En $this->rights[$r][4] y $this->rights[$r][5], introduzca una cadena de acción y subacción sin espacios. Después puede probar si un usuario tiene los permisos bien, introduciendo la siguiente secuencia en el código PHP:
<source lang="php">
<source lang="php">
  if ($user->rights->mimodulo->accion->subaccion) ...
  if ($user->rights->mimodulo->accion->subaccion) ...
</source>
</source>


= [[File:Art.png]] Definir tus propias cajas (opcional) =
= [[File:Art.png]] Definir sus propias cajas (opcional) =
'''Cuándo:''' Si tu módulo tiene una o varias cajas.
'''Cuándo:''' Si su módulo tiene una o varias cajas.


== Define tus cajas ==
== Defina sus 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, modifique las tablas $this->boxes del archivo descriptor de módulo. Es suficiente con añadir una línea por cada archivo de caja que se encuentre en el directorio '''htdocs/includes/boxes'''.


Ejemplo:
Ejemplo:
Line 383: Line 383:
</source>
</source>


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 cree los archivos mabox0.php, mabox1.php...  tomando como ejemplo las cajas existentes (en el directorio htdocs/include/boxes)


== Prueba tus cajas en Dolibarr ==
== Pruebe sus 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.
Vaya al menú '''Bienvenida – Configuración – Caja'''. Sus cajas deben aparecer en la lista de cajas activables. Actívelas, vaya a la página de bienvenida y verifique que se muestran correctamente.




= [[File:Art.png]] Definir tus propias exportaciones (opcional) =
= [[File:Art.png]] Definir sus 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 su 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 ==
== Definir la exportación ==
Para ello, descomenta y modifica las tablas $this->export_xxx  de tu fichero descriptor de módulo.
Para ello, descomente y modifique las tablas $this->export_xxx  de su archivo descriptor de módulo.


== Probar la exportación ==
== 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.
Vaya al menú "Herramientas > Exportar" de Dolibarr. Su exportación debería aparecer en la lista de exportaciones predefinidas disponibles (si su módulo ha sido activado correctamente). Deberían aparecer, para que pudiera elegirlos, los campos que definió en la fase anterior en las tablas correspondientes. Seleccione algunos campos y pruebe a generar un archivo de exportación.




= [[File:Art.png]] Definir tus estilos CSS (opcional) =
= [[File:Art.png]] Definir sus 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 sus pantallas PHP utiliza 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.




= [[File:Art.png]] Definir tus funciones Javascript (opcional) =
= [[File:Art.png]] Definir sus funciones Javascript (opcional) =
Esta funcionalidad ya no existe.
Esta funcionalidad ya no existe.


= [[File:Art.png]] Ejecutar código sobre un evento Dolibarr (opcional)=
= [[File:Art.png]] 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 quiere 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 archivo '''disparador (triggers)'''.
Véase también [[Interfaces Dolibarr hacia el exterior]] e [[Interfaces del Exterior hacia Dolibarr]]
Véase también [[Interfaces Dolibarr hacia el exterior]] e [[Interfaces del Exterior hacia Dolibarr]]


= [[File:Art.png]] Crear un paquete para liberar e instalar tu módulo =
= [[File:Art.png]] Crear un paquete para liberar e instalar su 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).
* Vaya al directorio '''/build''' y copie el archivo '''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, puede bajarte la última snapshot CVS en la sección de Downloads del sitio de Dolibarr con el nombre “Development Version” (tome en este caso todos los directorios que sean autónomos e independientes de la versión).


Teclea en este archivo la lista de nombres de los nuevos ficheros que has creado para tu módulo (descriptor de módulo, nuevos ficherossql de tablas, páginas php, imágenes, etc...)
Teclee en este archivo la lista de nombres de los nuevos archivos que ha creado para su módulo (descriptor de módulo, nuevos ficheros sql de tablas, páginas php, imágenes, etc...)
* Lanza el script vía Perl (necesitas la versión 5.0. o superiores de Perl)
* Lance el script vía Perl (necesita la versión 5.0. o superiores de Perl)
<source lang="bash">
<source lang="bash">
  perl makepack-dolibarrmodule.pl
  perl makepack-dolibarrmodule.pl
</source>
</source>


El script te pide el nombre de tu módulo, su versión más reciente y la más antigua. Se va a crear un fichero '''mimodulo.tgz''', que incluirá tu módulo listo para ser desplegado.
El script le pide el nombre de su módulo, su versión más reciente y la más antigua. Se va a crear un fichero '''mimodulo.tgz''', que incluirá su módulo listo para ser desplegado.
* La persona que reciba tu módulo deberá ubicar el fichero en el directorio raíz de Dolibarr y ejecutar el comando:
* La persona que reciba su módulo deberá ubicar el archivo en el directorio raíz de Dolibarr y ejecutar el comando:
<source lang="bash">
<source lang="bash">
  tar -xvf monmodule.tgz
  tar -xvf monmodule.tgz
</source>
</source>


* Si  deseas que tu módulo sea aprovechado por todos, puedes enviarlo(el fichero tgz) al sitio web de Dolibarr, en la sección de descargar: http://www.dolibarr.org -> downloads -> contrib -> submit a file (debes de haber creado una cuenta y estar logeado para que aparezca el link).
* Si  desea que su módulo sea aprovechado por todos, puede enviarlo (el fichero tgz) al sitio web de Dolibarr, en la sección de descargas: http://www.dolibarr.org -> downloads -> contrib -> submit a file (debe de haber creado una cuenta y estar logeado para que aparezca el link).
** Si tu módulo está correctamente realizado, será rápidamente validado.
** Si su módulo está correctamente realizado, será rápidamente validado.
** Si la calidad es suficiente, la licencia lo permite y la funcionalidad del módulo es de interés general, el código podrá añadirse al código fuente de Dolibarr (salvo que no lo desees).
** Si la calidad es suficiente, la licencia lo permite y la funcionalidad del módulo es de interés general, el código podrá añadirse al código fuente de Dolibarr (salvo que no lo desee).




Navigation menu