New: Nouvelle regle de nommage des triggers pour rendre dev plus simple
This commit is contained in:
parent
a7a3f52788
commit
696eb14515
@ -39,6 +39,13 @@ print_fiche_titre("Dolibarr",'','setup');
|
||||
|
||||
print "<br>\n";
|
||||
|
||||
print $langs->trans("Version").':';
|
||||
print '<ul>';
|
||||
print '<li>'.DOL_VERSION.'</li>';
|
||||
print '</ul>';
|
||||
|
||||
print "<br>\n";
|
||||
|
||||
print $langs->trans("DolibarrLicense").':';
|
||||
print '<ul>';
|
||||
print '<li>GNU/GPL</li>';
|
||||
@ -108,7 +115,7 @@ if (eregi('^fr_',$langs->getDefaultLang()))
|
||||
print 'Vente / Support';
|
||||
print '<ul>';
|
||||
print '<li>';
|
||||
print 'Contactez Rodolphe Quiédeville sur <a target="blank" href="http://www.dolibarr.com/">www.dolibarr.com</a>';
|
||||
print 'Contactez Rodolphe Quiédeville sur <a target="blank" href="http://rodolphe.quiedeville.org">www.dolibarr.com</a>';
|
||||
print '</li>';
|
||||
print '</ul>';
|
||||
}
|
||||
|
||||
@ -25,6 +25,7 @@
|
||||
*/
|
||||
|
||||
require("./pre.inc.php");
|
||||
include_once(DOL_DOCUMENT_ROOT ."/interfaces.class.php");
|
||||
|
||||
if (!$user->admin)
|
||||
accessforbidden();
|
||||
@ -61,7 +62,7 @@ function Activate($value)
|
||||
if ($modName)
|
||||
{
|
||||
$file = $modName . ".class.php";
|
||||
include_once("../includes/modules/$file");
|
||||
include_once("../includes/modules/".$file);
|
||||
$objMod = new $modName($db);
|
||||
$objMod->init();
|
||||
}
|
||||
@ -88,7 +89,7 @@ function UnActivate($value)
|
||||
if ($modName)
|
||||
{
|
||||
$file = $modName . ".class.php";
|
||||
include_once("../includes/modules/$file");
|
||||
include_once("../includes/modules/".$file);
|
||||
$objMod = new $modName($db);
|
||||
$objMod->remove();
|
||||
}
|
||||
@ -107,24 +108,26 @@ function UnActivate($value)
|
||||
|
||||
llxHeader("","");
|
||||
|
||||
$html = new Form($db);
|
||||
|
||||
print_fiche_titre($langs->trans("TriggersAvailable"),'','setup');
|
||||
|
||||
print "<br>\n";
|
||||
print $langs->trans("TriggersDesc")."<br>";
|
||||
print "<br>\n";
|
||||
|
||||
print "<table class=\"noborder\" width=\"100%\">\n";
|
||||
print "<tr class=\"liste_titre\">\n";
|
||||
print " <td colspan=\"2\">".$langs->trans("File")."</td>\n";
|
||||
print " <td>".$langs->trans("Description")."</td>\n";
|
||||
//print " <td>".$langs->trans("Description")."</td>\n";
|
||||
print " <td align=\"center\">".$langs->trans("Version")."</td>\n";
|
||||
print " <td align=\"center\">".$langs->trans("Activated")."</td>\n";
|
||||
//print " <td align=\"center\">".$langs->trans("Action")."</td>\n";
|
||||
print " <td align=\"center\">".$langs->trans("Active")."</td>\n";
|
||||
print " <td align=\"center\"> </td>\n";
|
||||
print "</tr>\n";
|
||||
|
||||
|
||||
$dir = DOL_DOCUMENT_ROOT . "/includes/triggers/";
|
||||
// Define dir directory
|
||||
$interfaces=new Interfaces($db);
|
||||
$dir = $interfaces->dir;
|
||||
|
||||
$handle=opendir($dir);
|
||||
$files = array();
|
||||
@ -133,39 +136,38 @@ $orders = array();
|
||||
$i = 0;
|
||||
while (($file = readdir($handle))!==false)
|
||||
{
|
||||
if (is_readable($dir.$file) && ereg('^interface_(.*)\.class\.php',$file,$reg))
|
||||
if (is_readable($dir.'/'.$file) && ereg('^interface_([^_]+)_(.+)\.class\.php',$file,$reg))
|
||||
{
|
||||
$modName = 'Interface'.ucfirst($reg[1]);
|
||||
if ($modName)
|
||||
{
|
||||
if (in_array($modName,$modules))
|
||||
{
|
||||
$langs->load("errors");
|
||||
print '<div class="error">'.$langs->trans("Error").' : '.$langs->trans("ErrorDuplicateTrigger",$modName,"/htdocs/includes/triggers/").'</div>';
|
||||
$objMod = new $modName($db);
|
||||
|
||||
$modules[$i] = $modName;
|
||||
$files[$i] = $file;
|
||||
$orders[$i] = "$objMod->family"; // Tri par famille
|
||||
$i++;
|
||||
}
|
||||
else
|
||||
{
|
||||
include_once($dir.$file);
|
||||
$objMod = new $modName($db);
|
||||
|
||||
$modules[$i] = $modName;
|
||||
$files[$i] = $file;
|
||||
$orders[$i] = "$objMod->family"; // Tri par famille
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
$modName = 'Interface'.ucfirst($reg[2]);
|
||||
//print "file=$file"; print "modName=$modName"; exit;
|
||||
if (in_array($modName,$modules))
|
||||
{
|
||||
$langs->load("errors");
|
||||
print '<div class="error">'.$langs->trans("Error").' : '.$langs->trans("ErrorDuplicateTrigger",$modName,"/htdocs/includes/triggers/").'</div>';
|
||||
$objMod = new $modName($db);
|
||||
|
||||
$modules[$i] = $modName;
|
||||
$files[$i] = $file;
|
||||
$orders[$i] = $objMod->family; // Tri par famille
|
||||
$i++;
|
||||
}
|
||||
else
|
||||
{
|
||||
include_once($dir.'/'.$file);
|
||||
$objMod = new $modName($db);
|
||||
|
||||
$modules[$i] = $modName;
|
||||
$files[$i] = $file;
|
||||
$orders[$i] = $objMod->family; // Tri par famille
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
asort($orders);
|
||||
$var=True;
|
||||
|
||||
// Loop on each trigger
|
||||
foreach ($orders as $key => $value)
|
||||
{
|
||||
$tab=split('_',$value);
|
||||
@ -180,46 +182,61 @@ foreach ($orders as $key => $value)
|
||||
$const_name = $objMod->const_name;
|
||||
|
||||
$var=!$var;
|
||||
|
||||
// Define disabledbyname and disabledbymodule
|
||||
$disabledbyname=0;
|
||||
$disabledbymodule=1;
|
||||
$module='';
|
||||
if (eregi('NORUN$',$files[$key])) $disabledbyname=1;
|
||||
if (eregi('^interface_([^_]+)_(.+)\.class\.php',$files[$key],$reg))
|
||||
{
|
||||
// Check if trigger file is for a particular module
|
||||
$module=eregi_replace('^mod','',$reg[1]);
|
||||
$constparam='MAIN_MODULE_'.strtoupper($module);
|
||||
if (strtolower($reg[1]) == 'all') $disabledbymodule=0;
|
||||
else if (empty($conf->global->$constparam)) $disabledbymodule=2;
|
||||
}
|
||||
|
||||
// Show line for trigger file
|
||||
print "<tr $bc[$var]>\n";
|
||||
|
||||
print '<td valign="top" width="14" align="center">';
|
||||
print $objMod->picto?img_object('',$objMod->picto):img_object('','generic');
|
||||
print '</td>';
|
||||
print '<td valign="top">'.$files[$key]."</td>\n";
|
||||
print '<td valign="top">'.$objMod->getDesc()."</td>\n";
|
||||
//print '<td valign="top">'.$objMod->getDesc()."</td>\n";
|
||||
print "<td valign=\"top\" align=\"center\">".$objMod->getVersion()."</td>\n";
|
||||
|
||||
// \todo Activation trigger
|
||||
// Etat trigger
|
||||
print "<td valign=\"top\" align=\"center\">";
|
||||
$statut_trigger=1;
|
||||
if (eregi('NORUN$',$files[$key])) $statut_trigger=0;
|
||||
|
||||
if ($statut_trigger == 1)
|
||||
{
|
||||
print img_tick();
|
||||
}
|
||||
else
|
||||
if ($disabledbyname > 0 || $disabledbymodule > 1)
|
||||
{
|
||||
print " ";
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
print img_tick();
|
||||
}
|
||||
print "</td>\n";
|
||||
|
||||
/*
|
||||
print "<td valign=\"top\" align=\"center\">";
|
||||
if ($const_value == 1)
|
||||
{
|
||||
// Module actif
|
||||
print "<a href=\"modules.php?id=".$objMod->numero."&action=reset&value=" . $modName . "&spe=" . $_GET["spe"] . "\">" . $langs->trans("Disable") . "</a></td>\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
// Module non actif
|
||||
print "<a href=\"modules.php?id=".$objMod->numero."&action=set&value=" . $modName . "&spe=" . $_GET["spe"] . "\">" . $langs->trans("Activate") . "</a></td>\n";
|
||||
}
|
||||
*/
|
||||
print "<td> </td>\n";
|
||||
print '<td valign="top">';
|
||||
$text ='<b>'.$langs->trans("Description").':</b><br>';
|
||||
$text.=$objMod->getDesc().'<br>';
|
||||
$text.='<br><b>'.$langs->trans("Status").':</b><br>';
|
||||
if ($disabledbyname == 1)
|
||||
{
|
||||
$text.=$langs->trans("TriggerDisabledByName").'<br>';
|
||||
if ($disabledbymodule == 2) $text.=$langs->trans("TriggerDisabledAsModuleDisabled",$module).'<br>';
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($disabledbymodule == 0) $text.=$langs->trans("TriggerAlwaysActive").'<br>';
|
||||
if ($disabledbymodule == 1) $text.=$langs->trans("TriggerActiveAsModuleActive",$module).'<br>';
|
||||
if ($disabledbymodule == 2) $text.=$langs->trans("TriggerDisabledAsModuleDisabled",$module).'<br>';
|
||||
}
|
||||
print $html->textwithhelp('',$text);
|
||||
print "</td>\n";
|
||||
|
||||
print "</tr>\n";
|
||||
|
||||
}
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
*/
|
||||
|
||||
/** \defgroup webcalendar Module Webcalendar
|
||||
\brief Module to include Webcalendar into Dolibarr and
|
||||
\brief Module to include Webcalendar GUI into Dolibarr menu and
|
||||
add Dolibarr events directly inside a Webcalendar database.
|
||||
*/
|
||||
|
||||
@ -60,11 +60,11 @@ class modWebcalendar extends DolibarrModules
|
||||
$this->family = "projects";
|
||||
// Module title used if translation string 'ModuleXXXName' not found (XXX is id value)
|
||||
$this->name = "Webcalendar";
|
||||
// Module descriptoin used translation string 'ModuleXXXDesc' not found (XXX is id value)
|
||||
// Module description used if translation string 'ModuleXXXDesc' not found (XXX is id value)
|
||||
$this->description = "Interfaçage avec le calendrier Webcalendar";
|
||||
// Possible values for version are: 'experimental' or 'dolibarr' or version
|
||||
// Possible values for version are: 'development', 'experimental', 'dolibarr' or version
|
||||
$this->version = 'dolibarr';
|
||||
// Id used in llx_const table to manage module status (enabled/disabled)
|
||||
// Key used in llx_const table to save module status enabled/disabled (XXX is id value)
|
||||
$this->const_name = 'MAIN_MODULE_WEBCALENDAR';
|
||||
// Where to store the module in setup page (0=common,1=interface,2=other)
|
||||
$this->special = 1;
|
||||
|
||||
@ -1,8 +1,17 @@
|
||||
Directory content
|
||||
--------------------------------------------------------
|
||||
This directory contains all available Dolibarr triggers.
|
||||
|
||||
Name of some triggers ends with -NORUN. This means that they are not enabled and will
|
||||
never be launched.
|
||||
If you want to use them, just rename the file name removing the -NORUN part in their name.
|
||||
Trigger file name syntax is:
|
||||
> interface_modModule_mytrigger.php[-NORUN]
|
||||
|
||||
where:
|
||||
> modModule is part of module descriptor file name found in includes/modules
|
||||
directory or value 'all' if not enabled by a particular module.
|
||||
> Mytrigger is name of the trigger. The PHP class inside the trigger file
|
||||
would be named InterfaceMytrigger.
|
||||
> -NORUN is optionnal and disable completely a trigger file if set. To use
|
||||
a trigger with such a name, rename file to remove the -NORUN part.
|
||||
|
||||
|
||||
$Id$
|
||||
@ -1,9 +1,20 @@
|
||||
Ce répertoire contient tous les triggers Dolibarr disponibles.
|
||||
Directory content
|
||||
--------------------------------------------------------
|
||||
Ce répertoire contient tous les triggers Dolibarr.
|
||||
|
||||
Le nom de certain trigger se termine par -NORUN ce qui signigie que ceux-ci
|
||||
ne seront pas actifs et ne se seront jamais éxécutés.
|
||||
Si vous souhiatez les utiliser il suffit de rennommer ceux-ci en supprimant
|
||||
la partie -NORUN de leur nom.
|
||||
La syntaxe d'un fichier Trigger est:
|
||||
> interface_modModule_mytrigger.php[-NORUN]
|
||||
|
||||
where:
|
||||
> modModule est la partie du nom du descripteur de module trouve dans le
|
||||
repertoire includes/modules pour lequel le trigger doit etre.
|
||||
actiff ou la valeure 'all' si ne doit pas etre actif pour un
|
||||
module particulier.
|
||||
> Mytrigger est le nom du trigger. La classe PHP dans le fichier trigger
|
||||
aura pour nom InterfaceMytrigger.
|
||||
> -NORUN est optionnel et desactive le fichier trigger si defini. Pour
|
||||
utiliser un tel fichier trigger, renommer le fichier afin
|
||||
d'enlever la partie -NORUN.
|
||||
|
||||
|
||||
$Id$
|
||||
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
/* Copyright (C) 2005 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
/* Copyright (C) 2005-2007 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -16,17 +16,19 @@
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* $Id$
|
||||
* $Source$
|
||||
*/
|
||||
|
||||
/**
|
||||
\file htdocs/includes/triggers/interface_demo.class.php
|
||||
\file htdocs/includes/triggers/interface_all_Demo.class.php
|
||||
\ingroup core
|
||||
\brief Fichier de demo de personalisation des actions du workflow
|
||||
\remarks Son propre fichier d'actions peut etre créé par recopie de celui-ci:
|
||||
- Le nom du fichier doit etre interface_xxx.class.php
|
||||
- Le nom du fichier doit etre: interface_modMymodule_Mytrigger.class.php
|
||||
ou: interface_all_Mytrigger.class.php
|
||||
- Le fichier doit rester stocké dans includes/triggers
|
||||
- Le nom de la classe doit etre InterfaceXxx
|
||||
- Le nom de la classe doit etre InterfaceMytrigger
|
||||
- Le nom de la methode constructeur doit etre InterfaceMytrigger
|
||||
- Le nom de la propriete name doit etre Mytrigger
|
||||
*/
|
||||
|
||||
|
||||
@ -47,10 +49,10 @@ class InterfaceDemo
|
||||
{
|
||||
$this->db = $DB ;
|
||||
|
||||
$this->name = "Demo";
|
||||
$this->name = "Demo"; // Put here same value than in file and class name
|
||||
$this->family = "demo";
|
||||
$this->description = "Les triggers de ce composant sont des fonctions vierges. Elles n'ont aucun effet. Ce composant est fourni à des fins de tutorial.";
|
||||
$this->version = 'dolibarr'; // 'experimental' or 'dolibarr' or version
|
||||
$this->version = 'dolibarr'; // 'development', 'experimental', 'dolibarr' or version
|
||||
}
|
||||
|
||||
/**
|
||||
@ -16,17 +16,12 @@
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* $Id$
|
||||
* $Source$
|
||||
*/
|
||||
|
||||
/**
|
||||
\file htdocs/includes/triggers/interface_ecotax.class.php
|
||||
\file htdocs/includes/triggers/interface_modCommande_Ecotax.class.php
|
||||
\ingroup core
|
||||
\brief Ecotax ajoute
|
||||
\remarks Son propre fichier d'actions peut etre créé par recopie de celui-ci:
|
||||
- Le nom du fichier doit etre interface_xxx.class.php
|
||||
- Le fichier doit rester stocké dans includes/triggers
|
||||
- Le nom de la classe doit etre InterfaceXxx
|
||||
\brief Ajout Ecotax sur produit d'un certaine categorie
|
||||
*/
|
||||
|
||||
|
||||
@ -16,22 +16,17 @@
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* $Id$
|
||||
* $Source$
|
||||
*/
|
||||
|
||||
/**
|
||||
\file htdocs/includes/triggers/interface_demo.class.php
|
||||
\file htdocs/includes/triggers/interface_modCommande_fraisport.class.php
|
||||
\ingroup core
|
||||
\brief Fichier de demo de personalisation des actions du workflow
|
||||
\remarks Son propre fichier d'actions peut etre créé par recopie de celui-ci:
|
||||
- Le nom du fichier doit etre interface_xxx.class.php
|
||||
- Le fichier doit rester stocké dans includes/triggers
|
||||
- Le nom de la classe doit etre InterfaceXxx
|
||||
\brief Fichier trigger pour ajout frais port
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
\class InterfaceEditeur
|
||||
\class InterfaceFraisport
|
||||
\brief Classe des fonctions triggers des actions personalisées du workflow
|
||||
*/
|
||||
|
||||
@ -48,7 +43,7 @@ class InterfaceFraisport
|
||||
{
|
||||
$this->db = $DB ;
|
||||
|
||||
$this->name = "Frais de port";
|
||||
$this->name = "Fraisport";
|
||||
$this->family = "facture";
|
||||
$this->description = "Les triggers de ce composant calculent les frais de port.";
|
||||
$this->revision = explode(' ','$Revision$');
|
||||
@ -16,17 +16,12 @@
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* $Id$
|
||||
* $Source$
|
||||
*/
|
||||
|
||||
/**
|
||||
\file htdocs/includes/triggers/interface_demo.class.php
|
||||
\file htdocs/includes/triggers/interface_modEditeur_editeur.class.php
|
||||
\ingroup core
|
||||
\brief Fichier de demo de personalisation des actions du workflow
|
||||
\remarks Son propre fichier d'actions peut etre créé par recopie de celui-ci:
|
||||
- Le nom du fichier doit etre interface_xxx.class.php
|
||||
- Le fichier doit rester stocké dans includes/triggers
|
||||
- Le nom de la classe doit etre InterfaceXxx
|
||||
*/
|
||||
|
||||
|
||||
@ -50,7 +45,7 @@ class InterfaceEditeur
|
||||
|
||||
$this->name = "Editeur";
|
||||
$this->family = "editeur";
|
||||
$this->description = "Les triggers de ce composant s'appliquent sur les utilisateurs.";
|
||||
$this->description = "Les triggers de ce composant tri les lignes commandes par stock_loc.";
|
||||
$this->revision = explode(' ','$Revision$');
|
||||
$this->version = $this->revision[1];
|
||||
}
|
||||
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
/* Copyright (C) 2005-2006 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
/* Copyright (C) 2005-2007 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -16,11 +16,10 @@
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* $Id$
|
||||
* $Source$
|
||||
*/
|
||||
|
||||
/**
|
||||
\file htdocs/includes/triggers/interface_ldap.class.php
|
||||
\file htdocs/includes/triggers/interface_modLdap_Ldapsynchro.class.php
|
||||
\ingroup core
|
||||
\brief Fichier de gestion des triggers LDAP
|
||||
*/
|
||||
@ -29,11 +28,11 @@ require_once (DOL_DOCUMENT_ROOT."/lib/ldap.class.php");
|
||||
|
||||
|
||||
/**
|
||||
\class InterfaceLdap
|
||||
\class InterfaceLdapsynchro
|
||||
\brief Classe des fonctions triggers des actions de synchro LDAP
|
||||
*/
|
||||
|
||||
class InterfaceLdap
|
||||
class InterfaceLdapsynchro
|
||||
{
|
||||
var $db;
|
||||
var $error;
|
||||
@ -43,11 +42,11 @@ class InterfaceLdap
|
||||
* \brief Constructeur.
|
||||
* \param DB Handler d'accès base
|
||||
*/
|
||||
function InterfaceLdap($DB)
|
||||
function InterfaceLdapsynchro($DB)
|
||||
{
|
||||
$this->db = $DB ;
|
||||
|
||||
$this->name = "Ldap";
|
||||
$this->name = "Ldapsynchro";
|
||||
$this->family = "ldap";
|
||||
$this->description = "Les triggers de ce composant permettent d'effectuer les synchro de Dolibarr vers un annuaire LDAP.";
|
||||
$this->version = 'dolibarr'; // 'experimental' or 'dolibarr' or version
|
||||
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
/* Copyright (C) 2006 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
/* Copyright (C) 2006-2007 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -16,11 +16,10 @@
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* $Id$
|
||||
* $Source$
|
||||
*/
|
||||
|
||||
/**
|
||||
\file htdocs/includes/triggers/interface_notification.class.php
|
||||
\file htdocs/includes/triggers/interface_modNotification_notification.class.php
|
||||
\ingroup notification
|
||||
\brief Fichier de gestion des notifications sur evenement Dolibarr
|
||||
*/
|
||||
@ -45,7 +44,7 @@ class InterfaceNotification
|
||||
|
||||
$this->name = "Notification";
|
||||
$this->family = "notification";
|
||||
$this->description = "Les triggers de ce composant sont les fonctions qui gèrent les notifications par mail du module Notification.";
|
||||
$this->description = "Les triggers de ce composant envoie les notifications par mail selon configuration du module Notification.";
|
||||
$this->version = 'dolibarr'; // 'experimental' or 'dolibarr' or version
|
||||
}
|
||||
|
||||
@ -16,28 +16,23 @@
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* $Id$
|
||||
* $Source$
|
||||
*/
|
||||
|
||||
/**
|
||||
\file htdocs/includes/triggers/interface_webcal.class.php
|
||||
\file htdocs/includes/triggers/interface_modWebcalendar_webcalsynchro.class.php
|
||||
\ingroup webcalendar
|
||||
\brief Fichier de demo de personalisation des actions du workflow
|
||||
\remarks Son propre fichier d'actions peut etre créé par recopie de celui-ci:
|
||||
- Le nom du fichier doit etre interface_xxx.class.php
|
||||
- Le fichier doit rester stocké dans includes/triggers
|
||||
- Le nom de la classe doit etre InterfaceXxx
|
||||
\brief Fichier de gestion des triggers webcalendar
|
||||
*/
|
||||
|
||||
include_once(DOL_DOCUMENT_ROOT.'/lib/webcal.class.php');
|
||||
|
||||
|
||||
/**
|
||||
\class InterfaceWebCal
|
||||
\class InterfaceWebcalsynchro
|
||||
\brief Classe des fonctions triggers des actions webcalendar
|
||||
*/
|
||||
|
||||
class InterfaceWebCal
|
||||
class InterfaceWebcalsynchro
|
||||
{
|
||||
var $db;
|
||||
var $error;
|
||||
@ -51,11 +46,11 @@ class InterfaceWebCal
|
||||
* \brief Constructeur.
|
||||
* \param DB Handler d'accès base
|
||||
*/
|
||||
function InterfaceWebCal($DB)
|
||||
function InterfaceWebcalsynchro($DB)
|
||||
{
|
||||
$this->db = $DB ;
|
||||
|
||||
$this->name = "WebCal";
|
||||
$this->name = "Webcalsynchro";
|
||||
$this->family = "webcal";
|
||||
$this->description = "Les triggers de ce composant permettent d'insérer un évênement dans le calendrier webcalendar pour chaque grand évênement Dolibarr.";
|
||||
$this->version = 'dolibarr'; // 'experimental' or 'dolibarr' or version
|
||||
@ -54,67 +54,86 @@ class Interfaces
|
||||
* \param user Objet user
|
||||
* \param lang Objet lang
|
||||
* \param conf Objet conf
|
||||
* \return int Nb triggers déclenchés si pas d'erreurs, -Nb en erreur sinon.
|
||||
* \return int Nb triggers ayant agit si pas d'erreurs, -Nb en erreur sinon.
|
||||
*/
|
||||
function run_triggers($action,$object,$user,$lang,$conf)
|
||||
{
|
||||
|
||||
$handle=opendir($this->dir);
|
||||
$modules = array();
|
||||
$nbtotal = $nbok = $nbko = 0;
|
||||
$nbfile = $nbtotal = $nbok = $nbko = 0;
|
||||
|
||||
while (($file = readdir($handle))!==false)
|
||||
{
|
||||
if (is_readable($this->dir."/".$file) && eregi('interface_(.*).class.php$',$file,$reg))
|
||||
if (is_readable($this->dir."/".$file) && eregi('^interface_([^_]+)_(.+)\.class\.php',$file,$reg))
|
||||
{
|
||||
$modName = "Interface".ucfirst($reg[1]);
|
||||
$nbfile++;
|
||||
|
||||
$modName = "Interface".ucfirst($reg[2]);
|
||||
//print "file=$file"; print "modName=$modName"; exit;
|
||||
if ($modName)
|
||||
if (in_array($modName,$modules))
|
||||
{
|
||||
if (in_array($modName,$modules))
|
||||
$langs->load("errors");
|
||||
dolibarr_syslog("Interface::run_triggers ".$langs->trans("ErrorDuplicateTrigger",$modName,"/htdocs/includes/triggers/"),LOG_ERR);
|
||||
continue;
|
||||
}
|
||||
|
||||
// Check if trigger file is disabled by name
|
||||
if (eregi('NORUN$',$file))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
// Check if trigger file is for a particular module
|
||||
$qualified=true;
|
||||
if (strtolower($reg[1]) != 'all')
|
||||
{
|
||||
$module=eregi_replace('^mod','',$reg[1]);
|
||||
$constparam='MAIN_MODULE_'.strtoupper($module);
|
||||
if (empty($conf->global->$constparam)) $qualified=false;
|
||||
}
|
||||
|
||||
if (! $qualified)
|
||||
{
|
||||
dolibarr_syslog("Interfaces::run_triggers Triggers for file '".$file."' need module to be enabled",LOG_INFO);
|
||||
continue;
|
||||
}
|
||||
|
||||
include_once($this->dir."/".$file);
|
||||
$objMod = new $modName($this->db);
|
||||
if ($objMod)
|
||||
{
|
||||
$modules[$i] = $modName;
|
||||
//dolibarr_syslog("Interfaces::run_triggers Launch triggers for file '".$file."'",LOG_INFO);
|
||||
$result=$objMod->run_trigger($action,$object,$user,$lang,$conf);
|
||||
if ($result > 0)
|
||||
{
|
||||
$langs->load("errors");
|
||||
dolibarr_syslog($langs->trans("ErrorDuplicateTrigger",$modName,"/htdocs/includes/triggers/"),LOG_ERR);
|
||||
// Action OK
|
||||
$nbtotal++;
|
||||
$nbok++;
|
||||
}
|
||||
else
|
||||
if ($result == 0)
|
||||
{
|
||||
include_once($this->dir."/".$file);
|
||||
$objMod = new $modName($this->db);
|
||||
if ($objMod)
|
||||
{
|
||||
$modules[$i] = $modName;
|
||||
$result=$objMod->run_trigger($action,$object,$user,$lang,$conf);
|
||||
if ($result > 0)
|
||||
{
|
||||
// Action OK
|
||||
$nbtotal++;
|
||||
$nbok++;
|
||||
}
|
||||
if ($result == 0)
|
||||
{
|
||||
// Aucune action faite
|
||||
$nbtotal++;
|
||||
}
|
||||
if ($result < 0)
|
||||
{
|
||||
// Action KO
|
||||
$nbtotal++;
|
||||
$nbko++;
|
||||
$this->errors[]=$objMod->error;
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
// Aucune action faite
|
||||
$nbtotal++;
|
||||
}
|
||||
if ($result < 0)
|
||||
{
|
||||
// Action KO
|
||||
$nbtotal++;
|
||||
$nbko++;
|
||||
$this->errors[]=$objMod->error;
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($nbko)
|
||||
{
|
||||
dolibarr_syslog("Interfaces::run_triggers Found: ".$nbtotal.", Done: ".$nbok.", Failed: ".$nbko);
|
||||
dolibarr_syslog("Interfaces::run_triggers Files found: ".$nbfile.", Files launched: ".$nbtotal.", Done: ".$nbok.", Failed: ".$nbko, LOG_ERR);
|
||||
return -$nbko;
|
||||
}
|
||||
else
|
||||
{
|
||||
//dolibarr_syslog("Interfaces::run_triggers Files found: ".$nbfile.", Files launched: ".$nbtotal.", Done: ".$nbok.", Failed: ".$nbko, LOG_DEBUG);
|
||||
return $nbok;
|
||||
}
|
||||
}
|
||||
|
||||
@ -48,6 +48,7 @@ MenuLimits=Limits and accuracy
|
||||
NotConfigured=Not configured
|
||||
Setup=Setup
|
||||
Activation=Activation
|
||||
Active=Active
|
||||
SetupShort=Setup
|
||||
OtherOptions=Other options
|
||||
OtherSetup=Other setup
|
||||
@ -480,6 +481,10 @@ CompanyFundationDesc=Edit on this page all known information of the company or f
|
||||
DisplayDesc=You can choose here all parameters related to the Dolibarr look and feel
|
||||
TriggersAvailable=Triggers available
|
||||
TriggersDesc=Triggers are files that, once copied into directory <b>htdocs/includes/triggers</b>, modify the behaviour of Dolibarr workflow. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
|
||||
TriggerDisabledByName=Triggers in this file are disabled by <b>-NORUN</b> suffix in name.
|
||||
TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module <b>%s</b> is disabled.
|
||||
TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules.
|
||||
TriggerActiveAsModuleActive=Triggers in this file are active as module <b>%s</b> is enabled.
|
||||
GeneratedPasswordDesc=Define here which rule you want to use to generate new password if you ask to have auto generated password
|
||||
DictionnaryDesc=Define here all reference datas. You can complete predefined value with yours
|
||||
ConstDesc=All other parameters not available in previous pages
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
# Dolibarr language file - en_US - errors
|
||||
ErrorDuplicateTrigger=A trigger file named '<b>%s</b>' is already loaded. Remove duplicate trigger file in directory '<b>%s</b>'.
|
||||
ErrorDuplicateTrigger=A trigger file with class nam '<b>%s</b>' is present sevaral times. Remove duplicate trigger file in directory '<b>%s</b>'.
|
||||
ErrorFailToDeleteFile=Failed to remove file '<b>%s</b>'.
|
||||
ErrorThisContactIsAlreadyDefinedAsThisType=This contact is already defined as contact for this type.
|
||||
ErrorCashAccountAcceptsOnlyCashMoney=This bank account is a cash account, so it accepts payments of type cash only.
|
||||
|
||||
@ -48,6 +48,7 @@ MenuLimits=Limites et pr
|
||||
NotConfigured=Non configuré
|
||||
Setup=Configuration
|
||||
Activation=Activation
|
||||
Active=Actif
|
||||
SetupShort=Config
|
||||
OtherOptions=Autres options
|
||||
OtherSetup=Divers
|
||||
@ -479,6 +480,10 @@ CompanyFundationDesc=
|
||||
DisplayDesc=Vous pouvez choisir ici tous les paramètres liés à l'apparence de Dolibarr
|
||||
TriggersAvailable=Triggers disponibles
|
||||
TriggersDesc=Les triggers sont des fichiers qui, une fois déposés dans le répertoire <b>htdocs/includes/triggers</b>, modifient le comportement du workflow de Dolibarr. Ils réalisent des actions supplémentaires, déclenchées par les événements Dolibarr (création société, validation facture, clôture contrat...).
|
||||
TriggerDisabledByName=Triggers de ce fichier désactivés par le suffix <b>-NORUN</b> dans le nom du fichier.
|
||||
TriggerDisabledAsModuleDisabled=Triggers de ce fichier désactivés car le module <b>%s</b> n'est pas actif.
|
||||
TriggerAlwaysActive=Triggers de ce fichier toujours actifs, quelque soient les modules Dolibarr activés.
|
||||
TriggerActiveAsModuleActive=Triggers de ce fichier actifs car le module <b>%s</b> est actif.
|
||||
GeneratedPasswordDesc=Definissez ici quelle règle vous voulez utilisez pour générer les mots de passe quand vous demander à fabriquer un nouveau mot de passe
|
||||
DictionnaryDesc=Definissez ici les données de référence. Vous pouvez compléter/modifier les données prédéfinies avec les votres
|
||||
ConstDesc=Tout autre parametre non editable dans les pages précédentes
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
# Dolibarr language file - fr_FR - errors
|
||||
ErrorDuplicateTrigger=Un fichier trigger du nom de '<b>%s</b>' est deja chargé. Supprimer le doublon du répertoire '<b>%s</b>'.
|
||||
ErrorDuplicateTrigger=Un fichier trigger de classe '<b>%s</b>' est present plusieurs fois. Supprimer le doublon du répertoire '<b>%s</b>'.
|
||||
ErrorFailToDeleteFile=Echec de l'effacement du fichier '<b>%s</b>'.
|
||||
ErrorThisContactIsAlreadyDefinedAsThisType=Ce contact est déjà défini comme contact pour ce type.
|
||||
ErrorCashAccountAcceptsOnlyCashMoney=Ce compte bancaire est de type caisse et n'accepte que les mode de réglement de type <b>espèce</b>.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user