<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.dolibarr.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=81.248.100.2</id>
	<title>Dolibarr ERP CRM Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.dolibarr.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=81.248.100.2"/>
	<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php/Special:Contributions/81.248.100.2"/>
	<updated>2026-10-23T08:48:13Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Interfaces_Dolibarr_vers_exterieur&amp;diff=529</id>
		<title>Interfaces Dolibarr vers exterieur</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Interfaces_Dolibarr_vers_exterieur&amp;diff=529"/>
		<updated>2005-07-27T04:13:56Z</updated>

		<summary type="html">&lt;p&gt;81.248.100.2: /* Ajouter son code sur un évênement */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ajouter son code sur un évênement ==&lt;br /&gt;
&lt;br /&gt;
Pour permettre de déclencher du code personalisé en réaction à un évenement Dolibarr (création/modification/suppression d&#039;une société/facture/produit), Dolibarr propose un mécanisme de triggers. Ce mécanisme vous permet de personnaliser un workflow afin que les évènements de gestion Dolibarr soit repercutés dans une autre application. Rien n&#039;empèche également de l&#039;utiliser pour modifier le comportement de Dolibarr même: par exemple, pour que la validation d&#039;une facture provoque la création d&#039;un contrat automatiquement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Donc, pour ajouter son propre code à déclencher par trigger, la procédure est la suivante:&lt;br /&gt;
# Copier le fichier &#039;&#039;includes/triggers/interface_demo.class.php&#039;&#039; sous le nom &#039;&#039;interface_xxx.class.php&#039;&#039; (ou xxx est une chaine de votre choix), en laissant ce nouveau fchier dans le meme répertoire. Par exemple &#039;&#039;includes/triggers/interface_monworkflow.class.php&#039;&#039;&lt;br /&gt;
# Editer ce fichier &#039;&#039;interface_monworkflow.class.php&#039;&#039; afin de renommer la classe &#039;&#039;InterfaceDemo&#039;&#039; par &#039;&#039;InterfaceMonWorkflow&#039;&#039; et ajouter votre code dans la fonction &#039;&#039;run_trigger&#039;&#039;. Cette fonction est appelée à chaque évennement Dolibarr. Placer votre code en fonction du ou des évenements sur lesquels vous voulez réagir, chaque évenement étant identifié par un test sur la variable $action:&lt;br /&gt;
&lt;br /&gt;
  function run_trigger($action,$object,$user,$lang,$conf)&lt;br /&gt;
  {&lt;br /&gt;
        // Mettre ici le code à exécuter en réaction de l&#039;action&lt;br /&gt;
        // Le type de l&#039;évenement Dolibarr est stocké dans $action&lt;br /&gt;
        // Les données de l&#039;action sont stockées dans $object&lt;br /&gt;
        // La configuration, utilisateur et langage sont dans $conf,$user et $lang&lt;br /&gt;
        if ($action == &#039;COMPANY_CREATE&#039;)&lt;br /&gt;
        {&lt;br /&gt;
            dolibarr_syslog(&amp;quot;Trigger for action &#039;$action&#039; launched. id=&amp;quot;.$object-&amp;gt;id);&lt;br /&gt;
        }&lt;br /&gt;
        elseif ($action == &#039;COMPANY_MODIFY&#039;)&lt;br /&gt;
        {        &lt;br /&gt;
            dolibarr_syslog(&amp;quot;Trigger for action &#039;$action&#039; launched. id=&amp;quot;.$object-&amp;gt;id);&lt;br /&gt;
        }&lt;br /&gt;
        elseif ($action == &#039;COMPANY_DELETE&#039;)&lt;br /&gt;
        ...&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
Il n&#039;y a plus qu&#039;à tester, en provoquant l&#039;évènement déclencheur dans Dolibarr.&lt;br /&gt;
&lt;br /&gt;
== Gérer de nouveaux évènements ==&lt;br /&gt;
&lt;br /&gt;
Les évenements Dolibarr qui provoquent un appel de triggers sont, pour l&#039;instant, identifiés par les codes évenements suivants:&lt;br /&gt;
* COMPANY_CREATE&lt;br /&gt;
* COMPANY_MODIFY&lt;br /&gt;
* COMPANY_DELETE&lt;br /&gt;
* BILL_VALIDATE&lt;br /&gt;
&lt;br /&gt;
Pour gérer d&#039;autre évenements que ceux ci-dessus, il faut modifier le code Dolibarr pour y ajouter la séquence suivante dans les méthodes métiers des classes utilisées pour gérer les évenements:&lt;br /&gt;
&lt;br /&gt;
  // Appel des triggers&lt;br /&gt;
  include_once(DOL_DOCUMENT_ROOT . &amp;quot;/interfaces.class.php&amp;quot;);&lt;br /&gt;
  $interface=new Interfaces($this-&amp;gt;db);&lt;br /&gt;
  $interface-&amp;gt;run_triggers(&#039;XXXXX_YYYYYY&#039;,$this,$user,$lang,$conf);&lt;br /&gt;
  // Fin appel triggers&lt;br /&gt;
&lt;br /&gt;
Ici, $this doit etre l&#039;objet de la classe metier qui contient toutes les informations à passer au trigger. Remplacer, de plus, le &#039;XXXXX_YYYYYY&#039; par un code évenement non déjà utilisé.&lt;br /&gt;
Il sera alors possible d&#039;ajouter dans la methode run_trigger, un if qui permet de gérer ce code. La methode run_trigger serait alors de la forme :&lt;br /&gt;
&lt;br /&gt;
  function run_trigger($action,$object,$user,$lang,$conf)&lt;br /&gt;
  {&lt;br /&gt;
        // Mettre ici le code à exécuter en réaction de l&#039;action&lt;br /&gt;
        // Le type de l&#039;évenement Dolibarr est stocké dans $action&lt;br /&gt;
        // Les données de l&#039;action sont stockées dans $object&lt;br /&gt;
        // La configuration, utilisateur et langage sont dans $conf,$user et $lang&lt;br /&gt;
        &amp;lt;b&amp;gt;&lt;br /&gt;
        if ($action == &#039;XXXXX_YYYYY&#039;)&lt;br /&gt;
        {&lt;br /&gt;
            dolibarr_syslog(&amp;quot;Trigger for action &#039;$action&#039; launched. id=&amp;quot;.$object-&amp;gt;id);&lt;br /&gt;
        }&lt;br /&gt;
        &amp;lt;/b&amp;gt;&lt;br /&gt;
        elseif ($action == &#039;COMPANY_CREATE&#039;)&lt;br /&gt;
        {&lt;br /&gt;
            dolibarr_syslog(&amp;quot;Trigger for action &#039;$action&#039; launched. id=&amp;quot;.$object-&amp;gt;id);&lt;br /&gt;
        }&lt;br /&gt;
        elseif ($action == &#039;COMPANY_MODIFY&#039;)&lt;br /&gt;
        {        &lt;br /&gt;
            dolibarr_syslog(&amp;quot;Trigger for action &#039;$action&#039; launched. id=&amp;quot;.$object-&amp;gt;id);&lt;br /&gt;
        }&lt;br /&gt;
        elseif ($action == &#039;COMPANY_DELETE&#039;)&lt;br /&gt;
        ...&lt;br /&gt;
  }&lt;/div&gt;</summary>
		<author><name>81.248.100.2</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Librairies_externes_et_d%C3%A9pendances&amp;diff=1083</id>
		<title>Librairies externes et dépendances</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Librairies_externes_et_d%C3%A9pendances&amp;diff=1083"/>
		<updated>2005-07-27T04:07:23Z</updated>

		<summary type="html">&lt;p&gt;81.248.100.2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Librairies embarquées dans le code source ==&lt;br /&gt;
* Classe d&#039;export au format tableur&lt;br /&gt;
http://www.bettina-attack.de/jonny/view.php/projects/php_writeexcel/&lt;br /&gt;
* Librairies de génération de pdf&lt;br /&gt;
http://www.fpdf.org/ version 1.52&lt;br /&gt;
* Librairies authentification Pear&lt;br /&gt;
* Librairies magpierss&lt;br /&gt;
* Librairies phplot&lt;br /&gt;
&lt;br /&gt;
== Librairies externes ==&lt;br /&gt;
* Librairies PHP&lt;br /&gt;
php4-imagick - Les graphiques ne sont pas disponibles si ce module n&#039;est pas présent&lt;br /&gt;
&lt;br /&gt;
Complément :&lt;br /&gt;
Sous gentoo, il s&#039;agit du package dev-php/PECL-imagick&lt;/div&gt;</summary>
		<author><name>81.248.100.2</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Permissions&amp;diff=429</id>
		<title>Permissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Permissions&amp;diff=429"/>
		<updated>2005-07-27T04:04:37Z</updated>

		<summary type="html">&lt;p&gt;81.248.100.2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Chaque permission se voit affecter un id unique. Cet id identifie la permission dans les tables de permission [[Table user_rights]] et [[Table usergourp_rights]].&lt;br /&gt;
&lt;br /&gt;
Avant de créer de nouvelles permissions les développeurs doivent compléter ce document c&#039;est lui et lui seul qui fait office de réservation et d&#039;inventaire des identifiants retenus&lt;br /&gt;
&lt;br /&gt;
Identification des classes :&lt;br /&gt;
&lt;br /&gt;
Tableau d&#039;identification des classes&lt;br /&gt;
&lt;br /&gt;
* 1 - [[Module Facture]]&lt;br /&gt;
* 2 - [[Module Propositions commerciales]]&lt;br /&gt;
* 3 - [[Module Produits]]&lt;br /&gt;
* 4 - [[Module Projets]]&lt;br /&gt;
* 5 - Gestion utilisateurs&lt;br /&gt;
* 6 - [[Module Fiches d&#039;intervention]]&lt;br /&gt;
* 7 - [[Module Adhérents]]&lt;br /&gt;
* 8 - [[Module Commandes]]&lt;br /&gt;
* 9 - [[Module Comptabilité]]&lt;br /&gt;
* 10 - [[Module Expedition]]&lt;br /&gt;
* 11 - [[Module Banque]]&lt;br /&gt;
* 12 - [[Module Société]]&lt;br /&gt;
* 13 - [[Module Caisse]]&lt;br /&gt;
* 14 - [[Module Téléphonie]]&lt;br /&gt;
* 15 - [[Module Prélèvements bancaires]]&lt;br /&gt;
* 16 - [[Module Contrat]]&lt;br /&gt;
* 17 - [[Module Fournisseur]]&lt;br /&gt;
* 18 - [[Module Fournisseur]] commandes&lt;br /&gt;
* 19 - [[Module Téléphonie]] lignes&lt;br /&gt;
* 20 - [[Module Téléphonie]] lignes ADSL&lt;br /&gt;
* 21 - [[Module Téléphonie]] contrats de lignes téléphonique&lt;br /&gt;
* 22 - [[Module Mailing]]&lt;br /&gt;
* 23 - [[Module Fournisseur]] factures&lt;br /&gt;
* 24 - [[Module Catégorie]]&lt;br /&gt;
&lt;br /&gt;
Extrait de la table des permissions :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     +-----+---------------------------------------------------+------------+------+-----------+&lt;br /&gt;
     |  id | libelle                                           | module     | type | bydefault |&lt;br /&gt;
     +-----+---------------------------------------------------+------------+------+-----------+&lt;br /&gt;
     |  10 | Tous les droits sur les factures                  | facture    | a    |         0 |&lt;br /&gt;
     |  11 | Lire les factures                                 | facture    | r    |         1 |&lt;br /&gt;
     |  12 | Créer modifier les factures                       | facture    | w    |         0 |&lt;br /&gt;
     |  14 | Valider les factures                              | facture    | d    |         0 |&lt;br /&gt;
     |  15 | Envoyer les factures aux clients                  | facture    | d    |         0 |&lt;br /&gt;
     |  16 | Emettre des paiements sur les factures            | facture    | d    |         0 |&lt;br /&gt;
     |  19 | Supprimer les factures                            | facture    | d    |         0 |&lt;br /&gt;
     |  20 | Tous les droits sur les propositions commerciales | propale    | a    |         0 |&lt;br /&gt;
     |  21 | Lire les propositions commerciales                | propale    | r    |         1 |&lt;br /&gt;
     |  22 | Créer modifier les propositions commerciales      | propale    | w    |         0 |&lt;br /&gt;
     |  24 | Valider les propositions commerciales             | propale    | d    |         0 |&lt;br /&gt;
     |  25 | Envoyer les propositions commerciales aux clients | propale    | d    |         0 |&lt;br /&gt;
     |  26 | Clôturer les propositions commerciales            | propale    | d    |         0 |&lt;br /&gt;
     |  27 | Supprimer les propositions commerciales           | propale    | d    |         0 |&lt;br /&gt;
     |  30 | Tous les droits sur les produits                  | produit    | a    |         0 |&lt;br /&gt;
     |  31 | Lire les produits                                 | produit    | r    |         1 |&lt;br /&gt;
     |  32 | Créer modifier les produits                       | produit    | w    |         0 |&lt;br /&gt;
     |  34 | Supprimer les produits                            | produit    | d    |         0 |&lt;br /&gt;
     |  40 | Tous les droits sur les projets                   | projet     | a    |         0 |&lt;br /&gt;
     |  41 | Lire les projets                                  | projet     | r    |         1 |&lt;br /&gt;
     |  42 | Créer modifier les projets                        | projet     | w    |         0 |&lt;br /&gt;
     |  44 | Supprimer les projets                             | projet     | d    |         0 |&lt;br /&gt;
     |  60 | Tous les droits sur les fiches d&#039;intervention     | ficheinter | a    |         0 |&lt;br /&gt;
     |  61 | Lire les fiches d&#039;intervention                    | ficheinter | r    |         1 |&lt;br /&gt;
     |  62 | Créer modifier les fiches d&#039;intervention          | ficheinter | w    |         0 |&lt;br /&gt;
     |  64 | Supprimer les fiches d&#039;intervention               | ficheinter | d    |         0 |&lt;br /&gt;
     |  90 | Tous les droits sur la compta                     | compta     | a    |         0 |&lt;br /&gt;
     |  91 | Lire les charges                                  | compta     | r    |         1 |&lt;br /&gt;
     |  92 | Créer modifier les charges                        | compta     | w    |         0 |&lt;br /&gt;
     |  93 | Supprimer une charge                              | compta     | d    |         0 |&lt;br /&gt;
     |  95 | Lire CA, bilans, résultats                        | compta     | r    |         1 |&lt;br /&gt;
     | 110 | Tous les droits les comptes                       | banque     | a    |         0 |&lt;br /&gt;
     | 111 | Lire les comptes                                  | banque     | r    |         1 |&lt;br /&gt;
     | 112 | Créer modifier rapprocher transactions            | banque     | w    |         0 |&lt;br /&gt;
     | 113 | Configurer les comptes (créer, gérer catégories)  | banque     | w    |         0 |&lt;br /&gt;
     | 120 | Tous les droits sur les sociétés                  | societe    | a    |         0 |&lt;br /&gt;
     | 121 | Lire les sociétés                                 | societe    | r    |         1 |&lt;br /&gt;
     | 122 | Créer modifier les societes                       | societe    | w    |         0 |&lt;br /&gt;
     | 129 | Supprimer les sociétés                            | societe    | w    |         0 |&lt;br /&gt;
     | 130 | Tous les droits les caisses liquides              | caisse     | a    |         0 |&lt;br /&gt;
     | 131 | Lire les caisses                                  | caisse     | r    |         1 |&lt;br /&gt;
     | 132 | Créer modifier transactions                       | caisse     | w    |         0 |&lt;br /&gt;
     | 133 | Configurer les caisses (créer, supprimer)         | caisse     | w    |         0 |&lt;br /&gt;
     +-----+---------------------------------------------------+------------+------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>81.248.100.2</name></author>
	</entry>
</feed>