Subversion Repositories eFlore/Archives.herbiers

Rev

Blame | Last modification | View Log | RSS feed

<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */ 
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1                                                                                      |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2005 Tela Botanica (accueil@tela-botanica.org)                                         |
// +------------------------------------------------------------------------------------------------------+
// | This file is part of Herbier.                                                                        |
// |                                                                                                      |
// | Foobar 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 of the License, or                                    |
// | (at your option) any later version.                                                                  |
// |                                                                                                      |
// | Foobar 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 Foobar; if not, write to the Free Software                                                |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
// +------------------------------------------------------------------------------------------------------+
// CVS : $Id: hb_organisation.class.php,v 1.1 2005-11-23 10:32:32 jp_milcent Exp $
/**
* Classe H_organisation
*
* Classe permettant de récupérer les données concernant les organisations de la base de données.
*
*@package Herbier
*@subpackage Classes
//Auteur original :
*@author        Alexandre GRANIER <alexandre@tela-botanica.org>
//Autres auteurs :
*@author        Jean-Pascal MILCENT <jpm@clapas.org>
*@copyright     Tela-Botanica 2000-2005
*@version       $Revision: 1.1 $ $Date: 2005-11-23 10:32:32 $
// +------------------------------------------------------------------------------------------------------+
*/

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

// +------------------------------------------------------------------------------------------------------+
// |                                            CORPS du PROGRAMME                                        |
// +------------------------------------------------------------------------------------------------------+
/**
* class H_organisation()
*
* class H_organisation contient la structure nécessaire pour
* représenter une table HERBIERS_ORGANISATION dont voici
* la structure
* @package herbiers
*/
class H_organisation {
    /** @var integer l'identifiant de l'organisation.*/
    var $id;
    /** @var string contient le nom de l'organisation.*/
    var $nom;
    /** @var string contient l'adrese de l'organisation.*/
    var $adresse;
    /** @var string contient l'adrese 01 de l'organisation.*/
    var $adresse_02;
    /** @var H_collection  un objet de type H_collection{@link H_collection}.*/
    var $collections;
    /** @var string contiendra l'intitulé du pays.*/
    var $pays;
    /** @var array contient un tableau d'objet equipe appartenant à l'organisation.*/
    var $equipe_liste;
    
    /**
    *  Constructeur de H_organisation
    *
    * @param  aucun
    * @return void
    * @access public
    */
    function H_organisation($id_organisation = null)
    {
        if (!is_null($id_organisation)) {
            $this->setId($id_organisation);
            $this->setNom($this->recupererNomOrganisation($id_organisation));
        }
        $collections = array();
        $equipe_liste = array();
        $organisation_utilisateur = array();
    }
    /** Accesseur getId() - Retourner l'id de l'organisation.
    *
    * @return integer l'identifiant de l'organisation.
    * @access public
    */
    function getId()
    {
        return $this->id;
    }
    /** Accesseur setId() - Attribuer un id à l'organisation.
    *
    * @param integer l'identifiant de l'organisation.
    * @return void l'identifiant est ajouté à l'objet.
    * @access public
    */
    function setId($id)
    {
        $this->id = $id;
    }
    /** Accesseur setNom() - Attribuer un nom à l'organisation.
    *
    * @param string le nom de l'organisation.
    * @return void le nom est ajouté à l'objet.
    * @access public
    */
    function setNom($nom)
    {
        $this->nom = $nom;
    }
    /** Accesseur getNom() - Retourner le nom de l'organisation.
    *
    * @return string le nom de l'organisation.
    * @access public
    */
    function getNom()
    {
        return $this->nom;
    }
    
    /**
    *  Méthode getFromSQL() - Initialise objet H_organisation
    *
    *  Initialise un objet H_organisation dont les propriétés
    *  contiennent l'information rataché à une organisation
    *  caractérisé par son $id (un entier positif) qui correspond
    *  à la clé primaire ID_ORG de la table HERBIERS_ORGANISATION
    *
    * @param int la clé primaire de la table HERBIERS_ORGANISATION
    * @return void
    * @access public
    */
    function getFromSQL($id)
    {
        $requete =  'SELECT * '.
                    'FROM '.HB_BDD_NOM.'.HERBIERS_ORGANISATION '.
                    'WHERE ID_ORG='.$id.' '.
                    'ORDER BY TOWN';
        $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
        $ligne = mysql_fetch_object($resultat);
        foreach (get_object_vars($ligne) as $cle => $valeur) {
            $this->$cle = $valeur;
        }
        
        // Récupération des collections
        $requete_02 =   'SELECT ID '.
                        'FROM '.HB_BDD_NOM.'.HERBIERS_COLLECTION '.
                        'WHERE PARENT_ID = '.$id;
        
        $resultat_02 = mysql_query($requete_02) or die (BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete_02));
        while ($ligne_02 = mysql_fetch_object($resultat_02)) {
            $temp_coll = new H_collection() ;
            $this->collections[] = $temp_coll->getFromSQL($ligne_02->ID);
            unset($temp_coll);
        }
        $this->pays = getCountryName($this->COUNTRY_CODE);
        unset($this->COUNTRY_CODE);
        
        // Récupération de l'équipe
        $requete_03 =   'SELECT * '.
                        'FROM '.HB_BDD_NOM.'.HERBIERS_ont_un_staff '.
                        'WHERE ID_ORG = '.$id;
        $resultat_03 = mysql_query($requete_03) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete_03));

        while ($ligne_03 = mysql_fetch_object($resultat_03)) {
            $temp_equipe = new H_equipe();
            $this->equipe_liste[] = $temp_equipe->getFromSQL($ligne_03->ID_STAFF);
            unset($temp_equipe);
        }
        
        // Recherche de l'auteur de la saisie
        $requete_saisie =   'SELECT U_NAME, U_SURNAME '.
                            'FROM '.HB_BDD_NOM_ANNUAIRE.'.annuaire_tela, '.HB_BDD_NOM.'.HERBIERS_ADMINISTRER, '.HB_BDD_NOM.'.HERBIERS_ORGANISATION '.
                            'WHERE HERBIERS_ADMINISTRER.HA_ID_ORG = '.$id.' '.
                            'AND HERBIERS_ADMINISTRER.HA_ID_ANNUAIRE = annuaire_tela.U_ID';
        $resultat_saisie = mysql_query($requete_saisie) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete_saisie));
        $ligne_saisie = mysql_fetch_object($resultat_saisie);
        $this->U_NAME = $ligne_saisie->U_NAME;
        $this->U_SURNAME = $ligne_saisie->U_SURNAME;
        
       //$this = H_Herbier::remplacerEsperluette($this);
                        foreach (get_object_vars(H_Herbier::remplacerEsperluette($this)) as $key => $value) {
                                $this->$key = $value;
                        }   
    }
    
    /**
    *  Méthode recupererNomOrganisation() - Retourne le nom d'une organisation.
    *
    * Permet de récupérer dans la base de données le nom d'une organisation dont on passe l'identifiant
    * en paramêtre.
    *
    * @param integer l'identifiant d'une organisation.
    * @return string le nom de l'institution.
    * @access public
    */
    function recupererNomOrganisation($id_organisation)
    {
        $requete =  'SELECT INSTITUTION_NAME '.
                    'FROM HERBIERS_ORGANISATION '.
                    'WHERE ID_ORG = "'.$id_organisation.'"';
        $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
        $ligne = mysql_fetch_object($resultat);
        $organisation_nom = $ligne->INSTITUTION_NAME;
        mysql_free_result($resultat);
        return $organisation_nom;
    }
    
        /**
    *  Méthode insererMembreEquipe() - Insère un nouveau membre dans l'organisation.
    *
    * Permet d'insérer dans la base de données un lien entre une organisation et un membre d'équipe.
    *
    * @param integer l'identifiant d'un membre d'une équipe.
    * @return void 
    * @access public
    */
    function insererMembreEquipe($id_equipe)
    {
        $requete =  'INSERT INTO HERBIERS_ont_un_staff '.
                    'SET ID_ORG = '.$this->getId().', ID_STAFF = '.$id_equipe;
        $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
    }
}

// +------------------------------------------------------------------------------------------------------+
// |                                            PIED du PROGRAMME                                         |
// +------------------------------------------------------------------------------------------------------+


/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.3  2005/04/06 13:29:17  jpm
* Ajout et modifications des objets représentant la base de données Herbier.
*
* Revision 1.2  2005/03/09 15:57:33  jpm
* Modification de la forme.
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>