Le code d'interfacage avec webcal est mis dans le trigger webcal.

This commit is contained in:
Laurent Destailleur 2005-09-09 21:24:13 +00:00
parent 2b6438acef
commit 23e83aa0b1
3 changed files with 58 additions and 74 deletions

View File

@ -35,47 +35,46 @@
class ActionComm class ActionComm
{ {
var $id; var $id;
var $db; var $db;
var $type_id; var $type_id;
var $type_code; var $type_code;
var $type; var $type;
var $label; var $label;
var $date; var $date;
var $priority; var $priority;
var $user; var $user;
var $author; var $author;
var $societe; var $societe;
var $contact; var $contact;
var $note; var $note;
var $percent; var $percent;
var $error; var $error;
/** /**
* \brief Constructeur * \brief Constructeur
* \param db Handler d'accès base de donnée * \param db Handler d'accès base de donnée
*/ */
function ActionComm($db) function ActionComm($db)
{ {
$this->db = $db; $this->db = $db;
$this->societe = new Societe($db); $this->societe = new Societe($db);
$this->author = new User($db); $this->author = new User($db);
if (class_exists("Contact")) if (class_exists("Contact"))
{ {
$this->contact = new Contact($db); $this->contact = new Contact($db);
} }
} }
/** /**
* \brief Ajout d'une action en base (et eventuellement dans webcalendar) * \brief Ajout d'une action en base
* \param author auteur de la creation de l'action * \param author auteur de la creation de l'action
* \param webcal ressource webcalendar: 0=on oublie webcal, 1=on ajoute une entrée générique dans webcal, objet=ajout de l'objet dans webcal * \return int id de l'action créée, < 0 si erreur
* \return int id de l'action créée, < 0 si erreur */
*/ function add($author)
function add($author, $webcal=0)
{ {
global $conf; global $langs,$conf;
dolibarr_syslog("ActionComm::add"); dolibarr_syslog("ActionComm::add");
@ -98,30 +97,11 @@ class ActionComm
{ {
$this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."actioncomm"); $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."actioncomm");
if ($conf->webcal->enabled) { // Appel des triggers
include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
// Appel a webcal $interface=new Interfaces($this->db);
dolibarr_syslog("ActionComm::ajout entree dans webcal"); $interface->run_triggers('ACTION_CREATE',$this,$author,$langs,$conf);
// Fin appel triggers
// Si webcal demandé et non défini en tant qu'objet, on le construit
if (! is_object($webcal) && $webcal == 1)
{
$webcal=new ActionComm($this->db);
$webcal->date=$this->date;
$webcal->duree=0;
$webcal->texte=$this->societe;
$webcal->desc="Action ".$this->type_code."\n".$this->note;
}
// Ajoute entrée dans webcal
if (is_object($webcal))
{
$result=$webcal->add($author,$webcal->date,$webcal->texte,$webcal->desc);
if ($result < 0) {
$this->error="Echec insertion dans webcal: ".$webcal->error;
}
}
}
return $this->id; return $this->id;
} }

View File

@ -32,7 +32,7 @@
/** /**
\class interface_demo \class InterfaceDemo
\brief Classe des fonctions triggers des actions personalisées du workflow \brief Classe des fonctions triggers des actions personalisées du workflow
*/ */
@ -42,7 +42,7 @@ class InterfaceDemo
/** /**
* \brief Constructeur. * \brief Constructeur.
* \param DB handler d'accès base * \param DB Handler d'accès base
*/ */
function InterfaceDemo($DB) function InterfaceDemo($DB)
{ {
@ -88,15 +88,16 @@ class InterfaceDemo
} }
/** /**
* \brief Fonction appelée lors du déclenchement d'un évènement Dolibarr. * \brief Fonction appelée lors du déclenchement d'un évènement Dolibarr.
* D'autres fonctions run_trigger peuvent etre présentes dans includes/triggers * D'autres fonctions run_trigger peuvent etre présentes dans includes/triggers
* \param action Code de l'evenement * \param action Code de l'evenement
* \param object Objet concerné * \param object Objet concerné
* \param user Objet user * \param user Objet user
* \param lang Objet lang * \param lang Objet lang
* \param conf Objet conf * \param conf Objet conf
* \return int <0 si ko, 0 si aucune action faite, >0 si ok
*/ */
function run_trigger($action,$object,$user,$lang,$conf) function run_trigger($action,$object,$user,$langs,$conf)
{ {
// Mettre ici le code à exécuter en réaction de l'action // Mettre ici le code à exécuter en réaction de l'action
// Les données de l'action sont stockées dans $object // Les données de l'action sont stockées dans $object
@ -188,7 +189,9 @@ class InterfaceDemo
else else
{ {
dolibarr_syslog("Trigger '".$this->name."' for action '$action' was ran but no handler found for this action."); dolibarr_syslog("Trigger '".$this->name."' for action '$action' was ran but no handler found for this action.");
return -1;
} }
return 0;
} }
} }

View File

@ -35,7 +35,7 @@ include_once(DOL_DOCUMENT_ROOT.'/lib/webcal.class.php');
/** /**
\class InterfaceWebCal \class InterfaceWebCal
\brief Classe des fonctions triggers des actions personalisées du workflow \brief Classe des fonctions triggers des actions webcalendar
*/ */
class InterfaceWebCal class InterfaceWebCal
@ -46,7 +46,7 @@ class InterfaceWebCal
/** /**
* \brief Constructeur. * \brief Constructeur.
* \param DB handler d'accès base * \param DB Handler d'accès base
*/ */
function InterfaceWebCal($DB) function InterfaceWebCal($DB)
{ {
@ -99,7 +99,7 @@ class InterfaceWebCal
* \param user Objet user * \param user Objet user
* \param lang Objet lang * \param lang Objet lang
* \param conf Objet conf * \param conf Objet conf
* \return int <0 si ko, >0 si ok * \return int <0 si ko, 0 si aucune action faite, >0 si ok
*/ */
function run_trigger($action,$object,$user,$langs,$conf) function run_trigger($action,$object,$user,$langs,$conf)
{ {
@ -160,6 +160,7 @@ class InterfaceWebCal
} }
} }
return 0;
} }
} }