Sie sind auf Seite 1von 10

Desarrollo de un mdulo en Dolibarr

Para crear un nuevo mdulo 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 aadir una o varias de las
siguientes funcionalidades:
Aadir nuevas tablas a la base de datos.
Aadir sus propias entradas en los mens.
Aadir pantallas de edicin/consulta de nuevas tablas.
Aadir o eliminar pestaas en las pginas de vista/edicin de objetos (factura, producto, pedido, evento, etc.)
Aadir exportaciones predefinidas a la funcin Exportar.
Aadir variables de substitucin
Aadir nuevas cajas a la pgina de inicio.
Definir nuevos permisos.
Activar cdigo automtico sobre una accin particular de Dolibarr.
Insertar nuestro cdigo mediante los hooks de Dolibarr
Aadir un mdulo de numeracin
Aadir un modelo de documento
Aadir un nuevo tema
etc. Todas estas operaciones slo estn disponibles a partir de la versin 3.2 de Dolibarr.
Cear un mdulo
Los captulos siguientes describen las acciones a realizar para crear un mdulo Dolibarr. Los primeros captulos son
obligatorios cualquiera que sea la vocacin de los mdulos, los siguientes dependern de lo que deba hacer el mdulo
Crear un descriptor de Mdulo (obligatorio)
Cundo: Obligatorio cada vez que se desarrolla una extensin, cualquiera que sea su finalidad.
Crear su descriptor
La primera fase es la de crear un fichero descriptor del mdulo. Para ello:
Crear el directorio /htdocs/mimodulo/core/modules. Seguidamente ir al directorio dev/skeletons y copiar el
archivo modMyModule.class.php en el directoriohtdocs/monmodule/core/modules.
A continuacin, modificar el contenido del archivo, reemplazando:
los "modMyModule" por un valor que corresponda a la finalidad de su mdulo. Este valor debe siempre comenzar
por mod.
ATENCIN: El MiModulo debe estar compuesto por una serie de caracteres, siendo los nicos permitidos [A-Za-z_]
con longuitud max de MyModule de 12 caracteres.
$this->numero = 100000 por un nmero de mdulo que est libre. Ver Listado de los id de mdulos
Modificar eventualmente otras variables definidas por los desarrolladores (ver el comentario en el cdigo del
esqueleto para ver su significado)
Crear el directorio /htdocs/mimodulo/
Ahora su fichero descriptor est configurado.
Probar su descriptor
Ejecute Dolibarr y vaya a la pgina "Configuracin > Mdulo". Debera aparecer una nueva lnea con su nuevo mdulo
y la posibilidad de activarlo o no (eche un vistazo a todas las pestaas de cada categora para encontrarlo). Es el valor
$this->special el que determina en qu pestaa se encuentra su mdulo.
rbol de un nuevo mdulo
Crear un directorio 'mimodulo' que contendr los archivos del mdulo. Este directorio debe de estar en el
directorio htdocs y contendr los siguientes subdirectorios:
mymodule/build/ can contains any file you develop for compiling or building package
mymodule/core/modules/ contains module descriptor file modMyModule.class.php
mymodule/core/triggers contains triggers provided by module
mymodule/admin/ contains pages to setup module
mymodule/class/ contains PHP class files provided by module
mymodule/css contains CSS files provided by module
mymodule/docs to provide doc and licence files
mymodule/img contains images files provided by module
mymodule/langs/xx_XX contains language files for language xx_XX (try to put at least en_US)
mymodule/lib contains libraries provided and used by module
mymodule/scripts to provide command line tools or scripts
mymodule/sql contains SQL file provided by module to add new tables or indexes
mymodule/themes/mytheme if module provide its own theme/skin
mymodule/* contains php pages (note that you can also add any other subdir of your choice)
Crear sus tablas SQL y la clase PHP con los mtodos de acceso (opcional)
Cundo: Si su mdulo necesita gestionar sus propios datos.
Crear sus ficheros .sql
Si su mdulo de verdad requiere administrar datos que no existen en la base de datos en la versin estndar de
Dolibarr, ser necesario definir ciertas tablas SQL para registrar esos datos.
Cree un subdirectorio sql en el directorio de su mdulo (por ejemplo, htdocs/mimodulo/sql), con el fin de colocar los
scripts sql que va a crear.
Regla a respetar:
Agregue los archivos de orden de creacin de sus tablas siguiendo el principio de un fichero llx_mitabla.sql por
tabla, eventualmente acompaado del archivo llx_mitabla.key.sql' (ver los archivos existentes
en install/mysql/tables, para tomar ejemplo).
En trminos de orden de gestin de datos, todos deben estar en un archivo llamado data.sql situado en la misma
carpeta /mimodulo/sql/.
Ejemplo de contenido de un fichero data.sql
DELETE FROM llx_const WHERE name='MYMODULE_IT_WORKS' AND entity='__ENTITY__';
INSERT INTO llx_const (name, value, type, note, visible, entity) VALUES
('MYMODULE_IT_WORKS','1','chaine','A constant vor my module',1,'__ENTITY__');
Las rdenes SQL de los archivos deben de ser operacionales para la base de datos mysql. Nota: Los archivos de otras
bases de datos no se mantienen. Se leen y se convierten al vuelo por el driver de la base de datos.
Probar su archivo .sql
Una vez que los archivos estn listos, puede volver a Dolibarr para desactivar el mdulo, eliminar las tablas de la base
de datos y reactivar el mdulo. Las tablas deben ser recreadas por la activacin del mdulo. Si no es as, verifique sus
scripts o consulte los logs Dolibarr.
Generar la clase PHP de acceso (DAO)
Una vez que su/s tabla/s estn creadas en la base de datos, vaya al directorio dev/skeletons, copie el
archivo build_class_from_table.php en la el directorio sql/ de su mdulo module, y ejecute el script
php build_class_from_table.php nombretabla
Nota: Si el comando no funciona, intente con php-cli en lugar de php.
Esto genera un archivo out.nombretabla.class.php que contiene la clase de gestin de la tabla nombretabla. En
esta clase se encuentran los mtodos CRUD (Create/Read/Update/Delete) ya operativos para hacer un insert,
un fetch (select), un update, y un delete de una lnea de la tabla. Suprima justo el "out" del nombre del archivo y pgalo
en un subdirectorio de htdocs propio en su mdulo (Por ejemplo en htdocs/mimodulo).
Un archivo out.nombretabla_script.php se genera igualmente y contiene un ejemplo de cdigo para utilizar la clase
para cada uno de los cuatro mtodos CRUD.
Visualizacin de pestaas pestaas (opcional)
Aadir o eliminar pestaas en las fichas entidad
Cundo : Para aadir su propia pestaa en las pestaas estandard de una ficha entidad (factura, pedido, presupuesto,
miembro...)
Para ello, vaya al archivo descriptor del mdulo creado anteriormente y modifique la tabla $this->tabs:
// Array to add new pages in new tabs or remove existing one
$this->tabs =
array('objecttype:+tabname1:Title1:@mymodule:/mymodule/mynewtab1.php?id=__ID__', // To
add a new tab identified by code tabname1

'objecttype:+tabname2:Title2:@mymodule:/mymodule/mynewtab2.php?id=__ID__', // To add
another new tab identified by code tabname2
'objecttype:-tabname');
// To remove an existing tab identified by code tabname
La tabla debe contener una lista de cadena, cada cadena representa una nueva pestaa. El formato de la cadena se
compone de 4 partes separadas por ":"
Parte 1: El cdigo de la entidad (objecttype) en la que debe aparecer la pestaa siendo el valor de ella misma:
'thirdparty' para aadir una pestaa en la vista de tercero
'intervention' para aadir una pestaa en la vista de intervencin
'order_supplier' para aadir una pestaa en la vista de pedido a proveedor
'invoice_supplier' para aadir una pestaa en la vista de factura de proveedor
'invoice' para aadir una pestaa en la vista de factura a cliente
'order' para aadir una pestaa en la vista de pedido de cliente
'product' para aadir una pestaa en la vista de producto
'stock' para aadir una pestaa en la vista de stock
'propal' para aadir una pestaa en la vista de presupesto a cliente
'member' para aadir una pestaa en la vista de miembro
'contract' para aadir una pestaa en la vista de contrato
'user' para aadir una pestaa en la vista de usuario
'group' para aadir una pestaa en la vista de grupo
'contact' para aadir una pestaa en la vista de contacto
'categories_x' para aadir una pestaa en la vista de categora (reemplazar 'x' por el tpo de categora
(0=producto, 1=proveedor, 2=cliente, 3=miembro)
Parte 2: El ttulo de la pestaa. Puede ser una etiqueta directa o mejor un cdigo de traduccin de un archivo lang.
Parte 3: El nombre del archivo .lang (sin la extensin .lang) que contiene la correspondencia entre el cdigo de
traduccin y la etiqueta a mostrar. Si el nombre empieza con @, Dolibarr buscar el archivo en el directorio lang
del propio mdulo, es decir, htdocs/mimodulo/langs/code_CODE/mimodulo.lang, de lo contrario Dolibarr buscar el
archivo de en /langs/code_CODE/mimodulo.lang
Parte 4: La url de la pgina a mostrar cuando se haga click en las pestaa. La cadena __ID__ ser reemplazada
automticamente por el Id de la entidad concerniente.
Para alimentar el contenido de la pestaa con los datos de la base de datos, vea el captulo siguiente.
Aadir pestaas de una ficha entidad en su propia pgina
Cundo : Para mostrar las pestaas estandard de ficha entidad (producto, tercero, etc.) en su propia pestaa de una
entidad.
Hay que hacer lo siguiente :
1. Incluir los archivos que definen las funciones tiles dentro de sus archivos
Para cada ficha entidad, hay que incluir dos archivos con la instruccin
require_once($url_fichier) ;
Aqu le mostramos la lista de estos archivos (DOL_DOCUMENT_ROOT correspond au dossier dolibarr/htdocs/) :
Entidad tercero (thirdparty) :
DOL_DOCUMENT_ROOT/societe.class.php
DOL_DOCUMENT_ROOT/lib/company.lib.php
Entidad producto (product) :
DOL_DOCUMENT_ROOT/product.class.php
DOL_DOCUMENT_ROOT/lib/product.lib.php
Entidad factura (invoice) :
DOL_DOCUMENT_ROOT/facture.class.php
DOL_DOCUMENT_ROOT/lib/invoice.lib.php
2. Crear y cargar el objeto a mostrar en su pestaa
Crear el objeto de la clase deseada, y recuperar los datos del objeto a partir de la base de datos. Para ello deber
utilizar las funciones fetch() de la clase correspondiente, pasando el parmetro del indentificador del objeto que
recupera desde la url (ej : /mononglet.php?id=1).
Ejemplo :
$id=$_GET["id"];
$product = new Product($db) ;
$result = $product->fetch($id) ; //Tester $result pour vrifier que l'accs la base
s'est bien pass
3. Recuperar la lista de pestaas correspondientes a la entidad seleccionada
Usar la funcin XXX_prepare_head($obj), donde XXX es le nombre de la entidad, para crear una tabla que contiene las
definiciones de las pestaas a mostrar. El parmetro a pasar es el objeto del que desea mostrar las pestaas.
La tabla devuelta se compone de la siguiente manera :
$head // Tableau des onglets
$head[$h] // lment dcrivant un onglet. Il y aura autant de $h que d'onglets
afficher
$head[$h][0] // Url de la page affiche quand on clique sur l'onglet
$head[$h][1] // Titre de l'ongLet
$head[$h][2] // Code de l'onglet, utiliser pour choisir quel onglet sera 'actif' (voir
paragraphe suivant)
Ejemplo :
$head = product_prepare_head($product, $user) ; //le paramtre $user n'est pas prsent
sur certaines fonctions
4. Mostrar las pestaas en su pestaa
Use la funcin dol_fiche_head() que muestra las pestaas contenidas en la tabla $head devuelta por
XX_prepare_head().
dol_fiche_head($links, $active='0', $title='', $notab=0, $picto='')
$links // Tableau des onglets, appel $head plus haut.
$active // Onglet actif (mettre le nom de l'onglet dfini dans votre fichier de module,
ou un nom contenu dans $head[$h][2]). Cet onglet sera mis en surbrillance
$title // ?
$notab // Mettre ce paramtre 1 permet de ne pas afficher de zone bleue en dessous
des onglets.
$picto // Nom de l'image utiliser au dbut de la barre des onglet. Les choix suivant
sont possibles :
// product
// service
// company
Esta funcin muestra las pestaas deseadas y abre un elemento < div class="" > que corresponde a la zona azul bajo
las pestaas (si el parmetro $notab = 0). Para cerrar la zona azul, simplemente cierre el elemento < /div > en el cdigo
PHP.
Nota: Para ms detalles, consulte la documentacin Doxygen o directamente el cdigo de Dolibarr.
Crear sus pginas pantalla PHP (opcional)
Cundo: Si su mdulo consiste en aadir funcionalidades que necesitan nuevas pantallas.
Crear una pgina pantalla PHP
Debe crear a continuacin pantallas PHP que se basen en los datos de sus tablas utilizando los esqueletos como
ejemplo del directorio dev/skeletons. (Para el desarrollo de un script en lnea de comandos, ver Desarrollo de scripts).
Para crear una nueva pgina de usuario, cree un subdirectorio de htdocs (si es que no existe ya) propio en su mdulo
(En htdocs/mimodulo, por ejemplo), con el fin de ubicar en l las pginas que va a crear.
Copie all el archivo skeletons_page.php, que va a servir de punto de partida a su pgina. Modifique el archivo para
que la ruta relativa de
$res=0;
if (! $res && file_exists("../main.inc.php"))
$res=@include("../main.inc.php"); // to work if your module
directory is into dolibarr root htdocs directory
if (! $res && file_exists("../../main.inc.php"))
$res=@include("../../main.inc.php"); // to work if your module directory is
into a subdir of root htdocs directory
if (! $res) die("Include of main fails");
sea la correcta, en funcin de la profundidad del directorio en el que se encuentra el archivo (quitando o aadiendo
"../"). Es en el "main" donde se carga el entorno tcnico y las habilitaciones. Los objetos variables se posicionan ahora:
$user El objeto que contiene las caractersticas del usuario y sus derechos.
$conf El objeto que contiene la configuracin de Dolibarr.
$db El objeto que contiene el gestor de conexin abierto a la base de datos.
$langs El objeto que contiene el idioma del usuario.
La inclusin de una clase o una biblioteca dedicada al mdulo, sin saber a dnde se llamar el archivo, se realiza
mediante una funcin de Dolibarr (no directamente mediante include_once):
Exemple :
dol_include_once('/mimodulo/class/miclass.class.php', 'MiClass');
Las clases de llamadas Dolibarr utilice la siguiente sintaxis:
Exemple :
require_once DOL_DOCUMENT_ROOT.'/core/class/doli.class.php';
Reemplazar partes de templates de pantalla (versin 3.3+)
Algunas partes de la pantalla de Dolibarr estn aisladas en archivos de plantilla. Puede desarrollar un mdulo para
reemplazar una o ms de estas plantillas con las suyas.
Acceso a la base de datos
Si necesita realizar modificaciones en su tabla de la base de datos, utilice la clase generada ms arriba.
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:
$db->begin(); // Debut transaction
$db->query("Ma requete insert, update ou delete");
$db->commit(); // Valide
o $db->rollback() // Annule
Para una lectura:
$resql=$db->query("Ma requete select");
if ($resql)
{
$num = $db->num_rows($resql);
$i = 0;
if ($num)
{
while ($i < $num)
{
$obj = $db->fetch_object($resql);
if ($obj)
{
// You can use here results
print $obj->field1;
print $obj->field2;
}
$i++;
}
}
}
Definicin de estilos
Para que el aspecto de la pgina guarde coherencia con el tema Dolibarr, es necesario utilizar los estilos CSS de
Dolibarr.
Por ejemplo:
class="liste_titre"1 en las etiquetas tr y td para una lnea de ttulo de tabla.
class=pair o class=impair en las etiquetas tr y td de las lneas de datos de la tabla.
class=flat en todos los campos en los que se teclea (input, select, textarea...)
class=button en los objetos de tipo input type=submit.

Utilizar el selector de fechas de Dolibarr
Si quiere, puede beneficiarse del selector de fechas en las pantallas Dolibarr. Para ello, utilice la siguiente lnea:
$form=new Form($db);
$form->select_date('','mykey',0,0,0,"myform");
La cadena "mikey" identifica el campo fecha. Hace falta introducir un valor diferente en caso de que haya varios
campos. La cadena "myform" es el nombre del campo "FORM" (en el formulario, name="myform" de la pgina html). La
visualizacin de un selector de fecha debe por tanto estar integrada en un formulario html.
Para recuperar el valor, a la herencia de POST, el comando es:
$mydate = dol_mktime(12, 0 , 0, $_POST['mykeymonth'], $_POST['mykeyday'],
$_POST['mykeyyear']);
print strftime('%A %d %B %Y', $mydate);
Definir su pgina de configuracin (opcional)
Cundo: Si su mdulo ofrece varias opciones parametrizables.
Crear su pgina de edicin de configuracin
Si su mdulo ofrece varias opciones parametrizacles, es necesario crear una pgina PHP para editar las opciones (que
sern guardadas en la tabla llx_const). Cree una pgina PHP llamadamimodulo_setuppage.php, que registre las
opciones posibles y las ponga al da. Es necesario tomar como ejemplo una pgina de /admin que le muestre el
mtodo para leer o guardar en la base de datos su opcin. Coloque esta pgina de configuracin tambin en el
directorio /admin. A continuacin, en el descriptor del mdulo, modifique la variable para indicar el nombre de esta
pgina PHP (no es necesario modificar la ruta, ya que la pgina estar forzosamente en el directorio /admin).
$this->config_page_url = array("monmodule_setupapage.php");
Probar su pgina
Vaya a la pgina Configuracin > mdulo. Debera aparecer un icono que permite acceder a la pgina de
configuracin, y debera poder modificar estas opciones y verlas en la base de datos.

Definir sus entradas de men (opcional)
Cundo: Si ha creado pginas PHP, es necesario que estas pantallas sean accesibles desde el men Dolibarr.
Definir sus entradas de men
Para ello, hace falta definir en el archivo descriptor de men de tabla this->menu, que declara los mens. Esta tabla
contiene todas las entradas que aparecern en los mens una vez que el mdulo sea activado. Los archivos de
descriptor de mdulo contienen un ejemplo de cmo se declara el men superior, as como las entradas
correspondientes en el men de la derecha
He aqu un ejemplo de declaracin de entradas de men en el fichero descriptor:
// Main menu entries
$this->menu = array(); // List of menus to add
$r=0;

// Add here entries to declare new menus
// Example to declare the Top Menu entry:
$this->menu[$r]=array( 'fk_menu'=>0, // Put 0 if this is a
top menu
'type'=>'top', // This is a Top menu
entry
'titre'=>'MyModule top menu',
'mainmenu'=>'mymodule',
'leftmenu'=>'mymodule',
'url'=>'/mymodule/pagetop.php',
'langs'=>'mylangfile', // Lang file to use (without
.lang) by module. File must be in langs/code_CODE/ directory.
'position'=>100,
'enabled'=>'1', // Define condition
to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if
module is enabled.
'perms'=>'1', // Use
'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a
permission rules
'target'=>'',
'user'=>2); // 0=Menu
for internal users, 1=external users, 2=both
$r++;

// Example to declare a Left Menu entry:
$this->menu[$r]=array( 'fk_menu'=>'fk_mainmenu=xxx', // Use
'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy
is a leftmenucode of parent menu
'type'=>'left', // This is a
Left menu entry
'titre'=>'MyModule left menu 1',
'mainmenu'=>'xxx',
'leftmenu'=>'yyy',
'url'=>'/mymodule/pagelevel1.php',
'langs'=>'mylangfile', // Lang file to use (without
.lang) by module. File must be in langs/code_CODE/ directory.
'position'=>100,
'enabled'=>'1', // Define condition
to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if
module is enabled.
'perms'=>'1', // Use
'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a
permission rules
'target'=>'',
'user'=>2); // 0=Menu
for internal users,1=external users, 2=both
$r++;
Para condicionar el acceso al men segun los permisos, modificar la propiedad perms de la tabla. Ver el captulo sobre
permisos, un poco ms abajo, para saber como realizar los permisos.
Probar sus entradas de men
Desactive y reactive su mdulo bajo Dolibarr. Las entradas del men deberan aparecer despus de hacerlo (si la
condicin 'enabled' est activada).
Definir sus propios permisos (opcional)
Cundo: Si quiere aadir nuevos permisos.
La definicin de permisos que gestionar su mdulo se hace en el archivo descriptor creado en la primera fase.
Modifique la lnea $this->rights_class = 'facture' para que diga:
$this->rights_class = 'mimodulo';
A continuacin, rellene la tabla $this->rights con tantas entradas como permisos diferentes vaya a definir:
$this->rights[$r][0] = 10001;
$this->rights[$r][1] = 'Texto por defecto de mi permiso';
$this->rights[$r][3] = 1;
$this->rights[$r][4] = 'accion';
$this->rights[$r][5] = 'subaccion';
$r++;
En $this->rights[$r][0], introduzca un id de permiso que no haya sido ocupado ya (para saber qu id estn siendo ya
utilizadas, ver el men Informacin del Sistema en una instalacin de Dolibarr que est funcionando. En $this-
>rights[$r][3], introduzca 1 si este permiso se atribuye por defecto a los usuarios segn son creados. En $this-
>rights[$r][1] introduzca un texto por defecto -que ser mostrado si no se encuentra traduccin para su permiso en el
archivo admin.lang). En $this->rights[$r][4] y $this->rights[$r][5], introduzca una cadena de accin y subaccin sin
espacios. Despus puede probar si un usuario tiene los permisos bien, introduciendo la siguiente secuencia en el
cdigo PHP:
if ($user->rights->mimodulo->accion->subaccion) ...
Definir sus propios paneles (opcional)
Cundo: Si su mdulo tiene uno o varios paneles.
Defina sus paneles
Para ello, modifique las tablas $this->boxes del archivo descriptor de mdulo. Es suficiente con aadir 2 lneas por
cada archivo de panel que se encuentre en el directoriohtdocs/mimodulo/core/boxes.
Ejemplo:
$this->boxes[0]['file']='mabox0.php@mimodulo'
$this->boxes[0]['note']='Mi panel 0'
...
$this->boxes[n]['file']='maboxn.php@mimodulo'
$this->boxes[n]['note']='Mi panel n'
A continuacin cree los
archivos htdocs/mimodulo/core/boxes/mabox0.php, htdocs/mimodulo/core/boxes/mabox1.php... tomando como
ejemplo los paneles existentes (en el directorio htdocs/core/boxes)
Pruebe sus paneles en Dolibarr
Vaya al men Inico Configuracin Paneles. Sus paneles deben aparecer en la lista de paneles activables.
Actvelos, vaya a la pgina de bienvenida y verifique que se muestran correctamente.
Definir sus propias exportaciones (opcional)
Cundo: Si su mdulo incorpora exportaciones predefinidas de datos (tanto para sus propias tablas o para otras tablas
existentes de otros mdulos de Dolibarr)

Definir la exportacin
Para ello, descomente y modifique las tablas $this->export_xxx de su archivo descriptor de mdulo.
Probar la exportacin
Vaya al men "Herramientas > Exportar" de Dolibarr. Su exportacin debera aparecer en la lista de exportaciones
predefinidas disponibles (si su mdulo ha sido activado correctamente). Deberan 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 exportacin.

Definir sus estilos CSS (opcional)
Cundo: Si en sus pantallas PHP utiliza clases de estilos distintas a las de los temas de Dolibarr (no recomendado).
Esta funcionalidad todava no es operativa en la versin 2.4., a pesar de estar ya descrita.
Crear y declarar su hoja de estilos
Crear un archivo de estilos llamada mimodulo.css o mimodule.css.php y guardarla en el directorio mimodulo dentro
de htdocs. Solo puede haber un archivo css propio a cada mdulo. Recordamos que es mejor usar los estilos ya
existentes en Dolibarr (el archivo css usado por Dolibarr es el archivo themes/nomtheme/nombretema.css.php.
Una vez su hoja de estilos est disponible, declrela en su archivo descriptor de mdulo modificando la
propiedad $this->module_parts. El valor a indicar debe ser la ruta URL relativa de su archivo css. Por ejemplo
$this->module_parts = array('css' => array('/mimodulo/css/mimodulo.css.php'));
Probar su hoja de estilos
Desactivar y reactivar su mdulo.
Ir la pgina de inicio de Dolibarr. Ver el cdigo de la pgina HTML.
Debera ver en el encabezado HTML, una lnea de declaracin de su hoja de estilos.
Definir sus funciones Javascript (opcional)
Cuando: Si en sus pantallas en PHP utiliza funciones de Javascript no disponibles en estandard (archivo lib_head.js)
Si en sus pantallas en PHP utiliza funciones javascript, es necesario asegurarse de que las funciones declaradas en un
archivo javascript htdocs/mimodulo/js/monmodule.js sea cargado en la cabecera del head html.
Para pedir a Dolibarr que gestione en la generacin de la seccin header la inclusin de uno de sus archivos javascript,
es necesario proporcionar como parmetro a la funcin llxHeader(), al inicio de su pgina, la URL hacia el js a incluir.
Ejemplo para la pgina /htdocs/mimodulo/mapage.php :
require('../main.inc.php');
$morejs=array("/mimomulo/js/monmodule.js");
llxHeader('','Titulo','','','','',$morejs,'',0,0);
Ejecutar cdigo sobre un evento Dolibarr (opcional)
Cundo: Si quiere que se ejecuten acciones particulares al activar ciertas acciones estandar de Dolibarr (por ejemplo,
si deseramos actualizar una tabla de mi mdulo cada vez que se crea una factura en Dolibarr), har falta crear un
archivo disparador (triggers).
Vase tambin Interfaces Dolibarr hacia el exterior e Interfaces del Exterior hacia Dolibarr
Insertar su cdigo usando los hooks de Dolibarr (opcional)
Cundo: Cuando desee cambiar o aadir otro tipo de cdigo en un evento de negociado (vase lel captulo anterior
para esto).
Vase la pgina El sistema Hooks.
Aadir un mdulo de numeracin (opcional)
Cundo: Si quiere aadir una regla de numeracin no cubierta por los mdulos por defecto.
Vase la pgina Crear un mdulo de numeracin.
Aadir un nuevo mdulo de documento (opcional)
Cundo: Si quiere aadir un nuevo modelo de documento.
La documentacin relativa a la generacin de documentos desde los modelos se encuentra disponible en la
pgina Crear un modelo de documento PDF o Crear un modelo de documento ODT.
Aadir un tema (opcional)
Cundo: Si quiere un interface con colores personalizados.
Vase la pgina Temas.
Algunas reglas de cdigo
Las reglas de cdigo a seguir se definen en la Documentacin para desarrolladores, concretamente en la seccin
"Lenguaje" del captulo de "Informacin General".
Utilizacin de MDA
Un mtodo para generar un mdulo funcional desde UML se encuentra en curso de puesta a punto. Ms informacin
en la pgina UML2Dolibarr - Crear un mdulo usando MDA.
Crear un paquete para liberar e instalar su mdulo
Este proceso debe ser usado para fabricar un paquete con el fin de enviarlo a la tienda oficial http://www.dolistore.com.
Tambin puede usarlo para distribuir fcilmente su mdulo va su propio mtodo de distribucin.
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 versin estables. Si es el caso, puede
bajarte la ltima snapshot en la seccin de Downloads del sitio de Dolibarr con el nombre Development Version
(tome en este caso todos los directorios que sean autnomos e independientes de la versin).
Teclee en este archivo la lista de nombres de los nuevos archivos que ha creado para su mdulo (descriptor de
mdulo, nuevos ficheros sql de tablas, pginas php, imgenes, etc...)
Lance el script va Perl (necesita la versin 5.0. o superiores de Perl)
perl makepack-dolibarrmodule.pl
El script le pide el nombre de su mdulo, su versin mayor y menor. Se va a crear un fichero mimodulo.zip, que
incluir su mdulo listo para ser liberado.
La persona que reciba su mdulo deber ubicar el archivo en el directorio raz de Dolibarr y ejecutar el comando:
tar -xvf monmodule.zip
Si desea que su mdulo sea aprovechado por todos, puede enviarlo (el fichero zip) al sitio web de Dolibarr, en la
seccin de descargas: DoliStore.com (debe de haber creado una cuenta y estar logeado para que aparezca el link
"Submit a product").
Si su mdulo est correctamente realizado, ser rpidamente validado.
Si la calidad es suficiente, la licencia lo permite y la funcionalidad del mdulo es de inters general, el cdigo
podr aadirse al cdigo fuente de Dolibarr (salvo que no lo desee).

Das könnte Ihnen auch gefallen