Subversion Repositories Applications.projet

Rev

Rev 431 | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?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_externe.class.php,v 1.2 2005-09-27 16:42:00 alexandre_tb Exp $
/**
* Application projet
*
* La classe liste_externe
*
*@package projet
//Auteur original :
*@author        Alexandre Granier <alexandre@tela-botanica.org>
//Autres auteurs :
*@author        Aucun
*@copyright     Tela-Botanica 2000-2004
*@version       $Revision: 1.2 $
// +------------------------------------------------------------------------------------------------------+
*/

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


/**
 * class liste_externe
 * 
 */
class liste_externe
{
     /*** Attributes: ***/

    /**
     * Identifiant de la liste, dans la table agora et dans la table
     * projet_lien_liste_externe
     * @access private
     */
    var $_id_liste;
    /**
     * 
     * @access private
     */
    var $_db;
    
    /**
     * Constructeur
     *
     * @param DB objetDB Un objet PEAR::DB
     * @return void
     * @access public
     */
    function liste_externe(&$objetDB )
    {
        $this->_db = $objetDB ;
    } // end of member function liste_externe

    /**
     * Renvoie un tableau avec en clé l'identifiant d'une liste et en valeur le nom de
     * la liste.
     *
     * @return Array
     * @access public
     */
    function getListeNom( )
    {
        $requete = 'select AGO_A_ID, AGO_A_NOMGRPLG from agora' ;
        $resultat = $this->_db->query ($requete) ;
        if (DB::isError ($resultat)) {
            die ('Echec de la requete : '.$requete.'<br />'.$resultat->getMessage()) ;
        }
        $tableau_resultat = array() ;
        while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
            $tableau_resultat[$ligne['AGO_A_ID']] = $ligne['AGO_A_NOMGRPLG'] ;
        }
        return $tableau_resultat ;
    } // end of member function getListeNom

    /**
     * Renvoie un tableau avec les identifiants des listes associées au projet passé en
     * paramètre.
     *
     * @param int id_projet L'identifiant du projet
     * @return Array
     * @access public
     */
    function getListesAssociees( $id_projet )
    {
        $requete = 'select plle_id_liste from projet_lien_liste_externe where plle_id_projet='.$this->_db->escapeSimple($id_projet) ;
        $resultat = $this->_db->query ($requete) ;
        if (DB::isError ($resultat)) {
            die ('Echec de la requete : '.$requete.'<br />'.$resultat->getMessage()) ;
        }
        $tableau_resultat = array() ;
        while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
            array_push ($tableau_resultat, $ligne->plle_id_liste) ;
        }
        return $tableau_resultat ;
    } // end of member function getListesAssociees

    /**
     *  enregistrerSQL
     *
     * @return
     */
    
    function enregistrerSQL ($valeur, $id_projet) {
        
        // on commence par supprimer
        $requete = 'delete from projet_lien_liste_externe where plle_id_projet='.$this->_db->escapeSimple($id_projet) ;
        $resultat = $this->_db->query ($requete) ;
        
        // puis on réinsère
        foreach ($valeur as $cle => $val) {
            if (!preg_match ('/liste_/', $cle)) continue ;
            $id_liste = preg_replace ('/liste_/', '', $cle) ;
            $requete = 'insert into projet_lien_liste_externe set plle_id_liste='.$this->_db->escapeSimple($id_liste).', plle_id_projet='.$this->_db->escapeSimple($id_projet) ;
            $resultat = $this->_db->query ($requete) ;
            if (DB::isError ($resultat)) {
                die ('Echec de la requete : '.$requete.'<br />'.$resultat->getMessage()) ;
            }
        }
    }

    /**
     * Renvoie un tableau avec les infos sur la liste, voir les noms des champs de la
     * table agora pour une description plus détaillé.
     *
     * @param int id_liste L'identifiant de la liste 
     * @return void
     * @access public
     */
    function getInfoListe( $id_liste )
    {
        $requete = 'select * from agora where AGO_A_ID='.$this->_db->escapeSimple($id_liste) ;
        $resultat = $this->_db->query ($requete) ;
        if (DB::isError ($resultat)) {
            return ('Echec de la requete : '.$requete.'<br />'.$resultat->getMessage()) ;
        }
        $ligne = $resultat->fetchRow (DB_FETCHMODE_OBJECT) ;
        return $ligne ;
    } // end of member function getInfoListe

} // end of liste_externe
?>