From 70848f1215cd48698024b77a48debf6092d50921 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 30 Oct 2004 01:45:57 +0000 Subject: [PATCH] Fix: Refonte de la gestion des erreurs du module webcalendar --- htdocs/compta/clients.php | 12 ++- htdocs/compta/fiche.php | 1 - htdocs/lib/webcal.class.php | 167 ++++++++++++++++++++---------------- 3 files changed, 103 insertions(+), 77 deletions(-) diff --git a/htdocs/compta/clients.php b/htdocs/compta/clients.php index 02d0bd3db1d..69c9b8a427a 100644 --- a/htdocs/compta/clients.php +++ b/htdocs/compta/clients.php @@ -20,11 +20,21 @@ * $Source$ * */ + +/*! + \file htdocs/compta/clients.php + \ingroup compta + \brief Page accueil des clients + \version $Revision$ +*/ + require("./pre.inc.php"); require("../contact.class.php"); -require("../lib/webcal.class.php"); require("../cactioncomm.class.php"); require("../actioncomm.class.php"); +if ($conf->webcal->enabled) { + require("../lib/webcal.class.php"); +} llxHeader(); diff --git a/htdocs/compta/fiche.php b/htdocs/compta/fiche.php index 69406756c0f..e70047f673c 100644 --- a/htdocs/compta/fiche.php +++ b/htdocs/compta/fiche.php @@ -29,7 +29,6 @@ require("./pre.inc.php"); require("../contact.class.php"); -require("../lib/webcal.class.php"); require("../cactioncomm.class.php"); require("../actioncomm.class.php"); require("../facture.class.php"); diff --git a/htdocs/lib/webcal.class.php b/htdocs/lib/webcal.class.php index 0b05b481f4c..436019f7b91 100644 --- a/htdocs/lib/webcal.class.php +++ b/htdocs/lib/webcal.class.php @@ -1,5 +1,6 @@ + * Copyright (C) 2004 Laurent Destailleur * * 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 @@ -20,115 +21,131 @@ * */ -/*! \file htdocs/lib/webcal.class.php - \brief Classe permettant d'acceder a la database webcalendar. - \author Rodolphe Quiedeville. - \version $Revision$ - - Ensemble des fonctions permettant d'acceder a la database webcalendar. +/*! + \file htdocs/lib/webcal.class.php + \ingroup webcal + \brief Ensemble des fonctions permettant d'acceder a la database webcalendar. + \author Rodolphe Quiedeville. + \version $Revision$ */ -/*! \class Webcal - \brief Classe permettant d'acceder a la database webcalendar - - Ensemble des fonctions permettant d'acceder a la database webcalendar +require_once (DOL_DOCUMENT_ROOT ."/lib/".$conf->webcal->db->type.".lib.php"); + +/*! + \class Webcal + \brief Classe permettant d'acceder a la database webcalendar */ class Webcal { var $localdb; var $heure = -1; var $duree = 0; - + var $date; + var $texte; + var $desc; + /*! - \brief Permet de se connecter a la database webcalendar. + \brief Constructeur de la classe d'interface à Webcalendar */ function Webcal() { global $conf; - $this->localdb = new Db($conf->webcal->db->type, - $conf->webcal->db->host, - $conf->webcal->db->user, - $conf->webcal->db->pass, - $conf->webcal->db->name); + // On initie la connexion à la base Webcalendar + $this->localdb = new DoliDb( + $conf->webcal->db->type, + $conf->webcal->db->host, + $conf->webcal->db->user, + $conf->webcal->db->pass, + $conf->webcal->db->name); } + /*! - \brief ajoute une entree dans le calendrier de l'utilsateur - \param[in] user le login de l'utilisateur - \param[in] date la date de l'evenement dans le calendrier - \param[in] texte le titre a indiquer dans l'evenement - \param[in] desc la description a indiquer dans l'evenement + \brief Ajoute une entree dans le calendrier de l'utilisateur + \param[in] user le login de l'utilisateur + \param[in] date la date de l'evenement dans le calendrier + \param[in] texte le titre a indiquer dans l'evenement + \param[in] desc la description a indiquer dans l'evenement + \return int 1 en cas de succès, -1,-2, -3 en cas d'erreur */ function add($user, $date, $texte, $desc) { + // Recupère l'id max+1 dans la base webcalendar $id = $this->get_next_id(); - $cal_id = $id; - $cal_create_by = $user->webcal_login; - $cal_date = strftime('%Y%m%d', $date); - $cal_time = $this->heure; - $cal_mod_date = strftime('%Y%m%d', time()); - $cal_mod_time = strftime('%H%M', time()); - $cal_duration = $this->duree; - $cal_priority = 2; - $cal_type = "E"; - $cal_access = "P"; - $cal_name = $texte; - $cal_description = $desc; + if ($id > 0) { + $cal_id = $id; + $cal_create_by = $user->webcal_login; + $cal_date = strftime('%Y%m%d', $date); + $cal_time = $this->heure; + $cal_mod_date = strftime('%Y%m%d', time()); + $cal_mod_time = strftime('%H%M', time()); + $cal_duration = $this->duree; + $cal_priority = 2; + $cal_type = "E"; + $cal_access = "P"; + $cal_name = $texte; + $cal_description = $desc; + + $sql = "INSERT INTO webcal_entry (cal_id, cal_create_by,cal_date,cal_time,cal_mod_date, + cal_mod_time,cal_duration,cal_priority,cal_type, cal_access, cal_name,cal_description)"; + + $sql .= " VALUES ($cal_id, '$cal_create_by', $cal_date, $cal_time,$cal_mod_date, $cal_mod_time, + $cal_duration,$cal_priority,'$cal_type', '$cal_access', '$cal_name','$cal_description')"; - $sql = "INSERT INTO webcal_entry (cal_id, cal_create_by,cal_date,cal_time,cal_mod_date, - cal_mod_time,cal_duration,cal_priority,cal_type, cal_access, cal_name,cal_description)"; + if ( $this->localdb->query($sql) ) + { + + $sql = "INSERT INTO webcal_entry_user (cal_id, cal_login, cal_status)"; + $sql .= " VALUES ($cal_id, '$cal_create_by', 'A')"; + + if ( $this->localdb->query($sql) ) + { + // OK + return 1; + } + else + { + $error = $this->localdb->error() . '
' .$sql; + return -1; + } + } + else + { + $error = $this->localdb->error() . '
' .$sql; + return -2; + } + } + else { + $error = $this->localdb->error() . '
' .$sql; + return -3; + } + } - $sql .= " VALUES ($cal_id, '$cal_create_by', $cal_date, $cal_time,$cal_mod_date, $cal_mod_time, - $cal_duration,$cal_priority,'$cal_type', '$cal_access', '$cal_name','$cal_description')"; - - if ( $this->localdb->query($sql) ) - { - - $sql = "INSERT INTO webcal_entry_user (cal_id, cal_login, cal_status)"; - $sql .= " VALUES ($cal_id, '$cal_create_by', 'A')"; - - if ( $this->localdb->query($sql) ) - { - - } - else - { - $error = $this->localdb->error() . '
' .$sql; - } - } - else - { - $error = $this->localdb->error() . '
' .$sql; - } - - $this->localdb->close(); - } /*! - \brief obtient l'id suivant dans le webcalendar - \return id retourne l'id suivant dans le webcalendar + \brief Obtient l'id suivant dans le webcalendar + \return id retourne l'id suivant dans le webcalendar */ - function get_next_id() { + $sql = "SELECT max(cal_id) FROM webcal_entry"; - $sql = "SELECT max(cal_id) FROM webcal_entry"; - - if ($this->localdb->query($sql)) - { - $id = $this->localdb->result(0, 0) + 1; - return $id; - } - else - { - print $this->localdb->error(); - } + if ($this->localdb->query($sql)) + { + $id = $this->localdb->result(0, 0) + 1; + return $id; + } + else + { + print $this->localdb->error(); + return -1; + } } } ?>