<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */ 
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1                                                                                      |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org)                                         |
// +------------------------------------------------------------------------------------------------------+
// | This library is free software; you can redistribute it and/or                                        |
// | modify it under the terms of the GNU General Public                                                  |
// | License as published by the Free Software Foundation; either                                         |
// | version 2.1 of the License, or (at your option) any later version.                                   |
// |                                                                                                      |
// | This library is distributed in the hope that it will be useful,                                      |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of                                       |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU                                    |
// | General Public License for more details.                                                             |
// |                                                                                                      |
// | You should have received a copy of the GNU General Public                                            |
// | License along with this library; if not, write to the Free Software                                  |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
// +------------------------------------------------------------------------------------------------------+
// CVS : $Id: liste_discussion.class.php,v 1.3 2007-04-19 15:34:35 neiluj Exp $
/**
* Application projet
*
* La classe liste_discussion
*
*@package projet
//Auteur original :
*@author        Alexandre Granier <alexandre@tela-botanica.org>
//Autres auteurs :
*@author        Aucun
*@copyright     Tela-Botanica 2000-2004
*@version       $Revision: 1.3 $
// +------------------------------------------------------------------------------------------------------+
*/


// +------------------------------------------------------------------------------------------------------+
// |                                            ENTETE du PROGRAMME                                       |
// +------------------------------------------------------------------------------------------------------+

require_once GEN_CHEMIN_API.'sql/SQL_manipulation.fonct.php' ;
/**
 * class liste_discussion
 * 
 */
class liste_discussion
{

     /*** Attributes: ***/

 
    /**
     * Le nom de la liste, sans le domaine.
     * @access private
     */
    var $_nom;
    /**
     * 
     * @access private
     */
    var $_adresse;
    /**
     * Le domaine de la liste
     * @access private
     */
    var $_domaine;
    /**
     * 
     * @access private
     */
    var $_adresse_inscription;
    /**
     * 
     * @access private
     */
    var $_adresse_desinscription;
    /**
     * 
     * @access private
     */
    var $_adresse_aide;
    /**
     * Une connexion PEAR::DB
     * @access private
     */
    var $_db;
    /**
     * L'identifiant de la liste.
     * @access private
     */
    var $_id;
    /**
     * 
     * @access private
     */
    var $_adresse_inscription_resume;
    /**
     * Indique la portee, publique ou privee de la liste
     * @access private
     */
    var $_portee;
    
    /**
     * Le constructeur
     *
     * @param int id_liste L'identifiant de la liste souhait�
     * @param DB objetDB Un objet PEAR:DB
     * @return void
     * @access public
     */
    function liste_discussion( $id_liste, & $objetDB )
    {
        $this->_db = $objetDB ;
        if ($id_liste != '') {
            $this->_id = $id_liste ;
            
            $requete_liste = 'select * from projet_liste where pl_id_liste='.$this->_db->escapeSimple($this->_id) ;
            $resultat_liste = $this->_db->query ($requete_liste) ;
            if (DB::isError ($resultat_liste)) {
                die ("Echec de la requete : $requete_liste<br />".$resultat_liste->getMessage()) ;
            }
            $ligne_liste = $resultat_liste->fetchRow(DB_FETCHMODE_OBJECT) ;
            $this->_adresse = $ligne_liste->pl_adresse_liste ;
            $this->_domaine = $ligne_liste->pl_domaine ;
            $this->_nom = $ligne_liste->pl_nom_liste ;
            $this->_adresse_inscription = $ligne_liste->pl_adresse_inscription ;
            $this->_adresse_inscription_resume = $ligne_liste->pl_nom_liste.'-digest-subscribe@'.$this->_domaine ;
            $this->_portee = $ligne_liste->pl_visibilite ;
        }
    } // end of member function liste_discussion


    /**
     * Renvoie le domaine de la liste
     *
     * @return string
     * @access public
     */
    function getDomaine( )
    {
        return $this->_domaine ;
    } // end of member function getDomaine

    /**
     * Renvoie le nom de la liste
     *
     * @return string
     * @access public
     */
    function getNom( )
    {
        return $this->_nom ;
    } // end of member function getNom

    /**
     * Renvoie l'identifiant de la liste
     *
     * @return integer
     * @access public
     */
    function getId( )
    {
        return $this->_id ;
    } // end of member function getNom


     function getVisibilite( )
    {
        return $this->_portee ;
    } // end of member function getNom

    /**
     * Enregistre une ligne dans la table projet_liste
     * Le tableau de valeur doit contenir les �l�ments suivants 'nom_liste','','domaine_liste'
     *
     * @param Array tableau_de_valeur Le tableau de valeur a ins�rer dans la base avec pour cl� les noms des �l�ments
     * @access  public
     * @return void
     */

    function enregistrerSQL ($valeur) {
        
        $id = SQL_obtenirNouveauId($this->_db, 'projet_liste', 'pl_id_liste') ;

        $requete = "insert into projet_liste set pl_id_liste=".$this->_db->escapeSimple($id) ;
        $requete .= ", pl_nom_liste=\"".$valeur['nom_liste']."\", pl_domaine=\"".$valeur['domaine_liste']."\"".
                    ", pl_adresse_liste=\"".$valeur['nom_liste'].'@'.$valeur['domaine_liste'].'", pl_adresse_inscription="'.
                    $valeur['nom_liste']."-subscribe@".$valeur['domaine_liste'].'",pl_adresse_desinscription="'.
                    $valeur['nom_liste']."-unsubscribe@".$valeur['domaine_liste'].'", pl_adresse_aide="'.
                    $valeur['nom_liste']."-help@".$valeur['domaine_liste'].'", pl_visibilite="'.$valeur['liste_visibilite'].'"' ;

        $resultat = $this->_db->query ($requete) ;
        if (DB::isError($resultat)) {
            die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
        }
        $this->_id = $id ;
        $this->_domaine = $valeur['domaine_liste'] ;
        $this->_nom = $valeur['nom_liste'] ;
        return $id;
    }

    /**
     * 
     *
     * @param string code_sql 
     * @return bool
     * @access public
     */
    function suppressionSQL()
    {
        
        $requete = "delete from projet_liste where pl_id_liste=".$this->_db->escapeSimple($this->_id);
        $resultat = $this->_db->query ($requete) ;

        return true ;
    } // end of member function suppressionSQL

    /**
     * V�rifie si une liste existe d�j� dans la table projet_liste.
     *
     * @param string adresse_liste L'adresse de la liste � tester
     * @param DB objetDB Un objet PEAR::DB
     * @return bool
     * @static
     * @access public
     */
    function verifieDoubleListe( $adresse_liste,  &$objetDB )
    {
        $requete = 'select pl_id_liste from projet_liste where pl_adresse_liste="'.$adresse_liste.'"' ;
        $resultat = $objetDB->query ($requete) ;
        if (DB::isError ($resultat)) {
            die ("Echec de la requete : $requete<br />".$resultat->getMessage()) ;
        }
        if ($resultat->numRows()) {
            return false;
        }
        return true ;
    } // end of member function verifieDoubleListe


    /**
     * Renvoie l'adresse de la liste
     *
     * @return string
     * @access public
     */
    function getAdresseEnvoi( )
    {
        return $this->_adresse ;
    } // end of member function getAdresseEnvoi

    /**
     * Renvoie l'adresse de la liste
     *
     * @return string
     * @access public
     */
    function getAdresseInscription( )
    {
        return $this->_adresse_inscription ;
    } // end of member function getAdresseEnvoi

    /**
     * 
     *
     * @return string
     * @access public
     */
    function getAdresseResume( )
    {
        return $this->_adresse_inscription_resume ;
    } // end of member function getAdresseResume


    /**
     * 
     *
     * @return string
     * @access public
     */
    function isPublic( )
    {
        return $this->_portee ;
    } // end of member function getAdresseResume
} // end of liste_discussion
?>