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_herbier.class.php,v 1.1 2005-11-23 10:32:32 jp_milcent Exp $
/**
* Classe H_Herbier
*
* 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        Jean-Pascal MILCENT <jpm@clapas.org>
//Autres auteurs :
*@author        Alexandre GRANIER <alexandre@tela-botanica.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_Herbier()
*
* class H_Herbier contient les méthodes communes aux différentes classes de l'application Herbier.
* @package herbiers
*/
class H_Herbier {
    // +--------------------------------------------------------------------------------------------------+
    // ATTRIBUTS
    /** @var integer le nombre représentant l'action courante de l'application.*/
    var $action;
    /** @var string url de base de l'application d'administration d'Herbier.*/
    var $url_base;
    /** @var string url avec l'action configurable via sprintf.*/
    var $url_action;
    /** @var string url avec l'action et l'id organisation configurable via sprintf.*/
    var $url_action_org;
    /** @var string url avec l'action, l'id organisation et l'id equipe configurable via sprintf.*/
    var $url_action_org_equipe;
    /** @var string url avec l'action, l'id organisation et l'id collection configurable via sprintf.*/
    var $url_action_org_coll;
    /** @var string url avec l'action, l'id organisation et l'id note configurable via sprintf.*/
    var $url_action_org_note;
    /** @var string url avec l'action, l'id organisation, l'id collection et l'id note configurable via sprintf.*/
    var $url_action_org_coll_note;
    /** @var string url avec l'action et l'id correspondant configurable via sprintf.*/
    var $url_action_cor;
    /** @var string url avec l'action et l'id rédacteur configurable via sprintf.*/
    var $url_action_red;
    /** @var string url avec l'action et l'id utilisateur configurable via sprintf.*/
    var $url_action_utilisateur;
    /** @var array le tableau contenant une liste d'objet utilisateur ayant des droits dans l'administration de Herbier.*/
    var $utilisateur_liste;
    /** @var H_Utilisateur l'objet H_Utilisateur correspondant à l'utilisateur actuel de Herbier.*/
    var $utilisateur;
    /** @var H_Utilisateur un objet H_Utilisateur de type correspondant actuel de Herbier.*/
    var $correspondant;
    /** @var H_Utilisateur un objet H_Utilisateur de type rédacteur actuel de Herbier.*/
    var $redacteur;
    /** @var H_Organisation un objet H_Organisation correspondant à l'organisation courante de l'utilisateur actuel.*/
    var $organisation;
    /** @var H_equipe l'objet de type H_equipe courant appartenant à l'organisation courante.*/
    var $equipe;
    /** @var H_collection l'objet de type H_collection courant appartenant à l'organisation courante.*/
    var $collection;
    /** @var H_indic l'objet de type H_indic courant appartenant à la collection courante.*/
    var $note;
    // +--------------------------------------------------------------------------------------------------+
    // CONSTRUCTEUR
    /**
    *  Constructeur de H_Herbier
    *
    * @param integer l'identifiant de l'utilisateur courant des herbiers.
    * @return void
    * @access public
    */
    function H_Herbier($id_utilisateur = null)
    {
        // Ajout de l'action courante
        if (isset($_REQUEST['action'])) {
            $this->setAction($_REQUEST['action']);
        }
        
        $this->utilisateur_liste = array();
        // Ajout des urls courantes
        if (defined('HB_URL_COURANTE_ADMIN')) {
            $this->setUrlBase(HB_URL_COURANTE_ADMIN);
        }
        if (defined('HB_URL_COURANTE_ADMIN_ACTION')) {
            $this->setUrlAction(HB_URL_COURANTE_ADMIN_ACTION);
        }
        if (defined('HB_URL_COURANTE_ADMIN_ACTION_UTILISATEUR')) {
            $this->setUrlActionUtilisateur(HB_URL_COURANTE_ADMIN_ACTION_UTILISATEUR);
        }
        if (defined('HB_URL_COURANTE_ADMIN_ACTION_ORGANISATION')) {
            $this->setUrlActionOrg(HB_URL_COURANTE_ADMIN_ACTION_ORGANISATION);
        }
        if (defined('HB_URL_COURANTE_ADMIN_ACTION_ORG_EQUIPE')) {
            $this->setUrlActionOrgEquipe(HB_URL_COURANTE_ADMIN_ACTION_ORG_EQUIPE);
        }
        if (defined('HB_URL_COURANTE_ADMIN_ACTION_ORG_COLL')) {
            $this->setUrlActionOrgColl(HB_URL_COURANTE_ADMIN_ACTION_ORG_COLL);
        }
        if (defined('HB_URL_COURANTE_ADMIN_ACTION_ORG_NOTE')) {
            $this->setUrlActionOrgNote(HB_URL_COURANTE_ADMIN_ACTION_ORG_NOTE);
        }
        if (defined('HB_URL_COURANTE_ADMIN_ACTION_ORG_COLL_NOTE')) {
            $this->setUrlActionOrgCollNote(HB_URL_COURANTE_ADMIN_ACTION_ORG_COLL_NOTE);
        }
        if (defined('HB_URL_COURANTE_ADMIN_ACTION_COR')) {
            $this->setUrlActionCor(HB_URL_COURANTE_ADMIN_ACTION_COR);
        }
        if (defined('HB_URL_COURANTE_ADMIN_ACTION_RED')) {
            $this->setUrlActionRed(HB_URL_COURANTE_ADMIN_ACTION_RED);
        }
        // Ajout de l'utilisateur courant
        if (!is_null($id_utilisateur)) {
            $un_utilisateur = new H_Utilisateur($id_utilisateur);
            $this->setUtilisateur($un_utilisateur);
        }
        
        // Ajout de l'organisation courante
        if (isset($_REQUEST['id_org'])) {
            $une_organisation = new H_organisation($_REQUEST['id_org']);
            $this->setOrganisation($une_organisation);
        }
        
        // Ajout du membre de l'équipe courant
        if (isset($_REQUEST['id_equipe'])) {
            $une_equipe = new H_equipe($_REQUEST['id_equipe']);
            $this->setEquipe($une_equipe);
        }
        
        // Ajout de la collection courante
        if (isset($_REQUEST['id_coll'])) {
            $une_collection = new H_collection($_REQUEST['id_coll']);
            $this->setCollection($une_collection);
        }
        
        // Ajout de la collection courante
        if (isset($_REQUEST['id_note'])) {
            $une_note = new H_indic($_REQUEST['id_note']);
            $this->setNote($une_note);
        }
        
        // Ajout du correspondant
        if (isset($_REQUEST['id_cor'])) {
            $un_correspondant = new H_Utilisateur($_REQUEST['id_cor']);
            $this->setCorrespondant($un_correspondant);
        }
        
        // Ajout du rédacteur
        if (isset($_REQUEST['id_red'])) {
            $un_redacteur = new H_Utilisateur($_REQUEST['id_red']);
            $this->setRedacteur($un_redacteur);
        }
    }
    // +--------------------------------------------------------------------------------------------------+
    // ACCESSEURS
    /** Accesseur setAction() - Ajoute l'action courante.
    *
    * @param integer le nombre représentant l'action courante de l'application.
    * @return void
    * @access public
    */
    function setAction($id_action)
    {
        $this->action = $id_action;
    }
    /** Accesseur getAction() - Retourne l'action courante.
    *
    * @return integer le numéro de l'action courante de l'application.
    * @access public
    */
    function getAction()
    {
        return $this->action;
    }
    /** Accesseur setUrlBase() - Ajoute l'url de base courante.
    *
    * @param string l'url de base courante de l'application.
    * @return void
    * @access public
    */
    function setUrlBase($url)
    {
        $this->url_base = $url;
    }
    /** Accesseur getUrlBase() - Retourne l'url de base courante.
    *
    * @return string l'url de base courante de l'application.
    * @access public
    */
    function getUrlBase()
    {
        return $this->url_base;
    }
    /** Accesseur setUrlAction() - Ajoute l'url avec l'action configurable.
    *
    * @param string l'url avec l'action configurable via sprintf.
    * @return void
    * @access public
    */
    function setUrlAction($url)
    {
        $this->url_action = $url;
    }
    /** Accesseur getUrlAction() - Retourne l'url avec l'action configurable.
    *
    * @return string l'url avec l'action configurable via sprintf.
    * @access public
    */
    function getUrlAction()
    {
        return $this->url_action;
    }
    /** Accesseur setUrlActionCor() - Ajoute l'url avec l'action et l'id correspondant configurable.
    *
    * @param string l'url avec l'action et l'id correspondant configurable via sprintf.
    * @return void
    * @access public
    */
    function setUrlActionCor($url)
    {
        $this->url_action_cor = $url;
    }
    /** Accesseur getUrlActionCor() - Retourne l'url avec l'action et l'id correspondant configurable.
    *
    * @return string l'url avec l'action et l'id correspondant configurable via sprintf.
    * @access public
    */
    function getUrlActionCor()
    {
        return $this->url_action_cor;
    }
    /** Accesseur setUrlActionRed() - Ajoute l'url avec l'action et l'id rédacteur configurable.
    *
    * @param string l'url avec l'action et l'id rédacteur configurable via sprintf.
    * @return void
    * @access public
    */
    function setUrlActionRed($url)
    {
        $this->url_action_red = $url;
    }
    /** Accesseur getUrlActionRed() - Retourne l'url avec l'action et l'id rédacteur configurable.
    *
    * @return string l'url avec l'action et l'id rédacteur configurable via sprintf.
    * @access public
    */
    function getUrlActionRed()
    {
        return $this->url_action_red;
    }
    /** Accesseur setUrlActionOrg() - Ajoute l'url avec l'action et l'id organisation configurable.
    *
    * @param string l'url avec l'action et l'id organisation configurable via sprintf.
    * @return void
    * @access public
    */
    function setUrlActionOrg($url)
    {
        $this->url_action_org = $url;
    }
    /** Accesseur getUrlActionOrg() - Retourne l'url avec l'action et l'id organisation configurable.
    *
    * @return string l'url avec l'action et l'id organisation configurable via sprintf.
    * @access public
    */
    function getUrlActionOrg()
    {
        return $this->url_action_org;
    }
    /** Accesseur setUrlActionOrgEquipe() - Ajoute l'url avec l'action, l'id organisation et l'id equipe configurable.
    *
    * @param string l'url avec l'action, l'id organisation et l'id equipe configurable via sprintf.
    * @return void
    * @access public
    */
    function setUrlActionOrgEquipe($url)
    {
        $this->url_action_org_equipe = $url;
    }
    /** Accesseur getUrlActionOrgEquipe() - Retourne l'url avec l'action, l'id organisation et l'id equipe configurable.
    *
    * @return string l'url avec l'action, l'id organisation et l'id equipe configurable via sprintf.
    * @access public
    */
    function getUrlActionOrgEquipe()
    {
        return $this->url_action_org_equipe;
    }
    /** Accesseur setUrlActionOrgColl() - Ajoute l'url avec l'action, l'id organisation et l'id collection configurable.
    *
    * @param string l'url avec l'action, l'id organisation et l'id collection configurable via sprintf.
    * @return void
    * @access public
    */
    function setUrlActionOrgColl($url)
    {
        $this->url_action_org_coll = $url;
    }
    /** Accesseur getUrlActionOrgColl() - Retourne l'url avec l'action, l'id organisation et l'id collection configurable.
    *
    * @return string l'url avec l'action, l'id organisation et l'id collection configurable via sprintf.
    * @access public
    */
    function getUrlActionOrgColl()
    {
        return $this->url_action_org_coll;
    }
    /** Accesseur setUrlActionOrgNote() - Ajoute l'url avec action, id organisation et id note configurable.
    *
    * @param string l'url avec l'action, l'id organisation et id note configurable via sprintf.
    * @return void
    * @access public
    */
    function setUrlActionOrgNote($url)
    {
        $this->url_action_org_note = $url;
    }
    /** Accesseur getUrlActionOrgNote() - Retourne l'url avec l'action, l'id organisation et id note configurable.
    *
    * @return string l'url avec l'action, l'id organisation et l'id note configurable via sprintf.
    * @access public
    */
    function getUrlActionOrgNote()
    {
        return $this->url_action_org_note;
    }
    /** Accesseur setUrlActionOrgCollNote() - Ajoute l'url avec action, id organisation, id collection et id note configurable.
    *
    * @param string l'url avec l'action, l'id organisation, l'id collection et id note configurable via sprintf.
    * @return void
    * @access public
    */
    function setUrlActionOrgCollNote($url)
    {
        $this->url_action_org_coll_note = $url;
    }
    /** Accesseur getUrlActionOrgCollNote() - Retourne l'url avec l'action, l'id organisation, l'id collection et id note configurable.
    *
    * @return string l'url avec l'action, l'id organisation, l'id collection et l'id note configurable via sprintf.
    * @access public
    */
    function getUrlActionOrgCollNote()
    {
        return $this->url_action_org_coll_note;
    }
    /** Accesseur setUrlActionUtilisateur() - Ajoute l'url avec l'action et l'id utilisateur configurable.
    *
    * @param string l'url avec l'action et l'id utilisateur configurable via sprintf.
    * @return void
    * @access public
    */
    function setUrlActionUtilisateur($url)
    {
        $this->url_action_utilisateur = $url;
    }
    /** Accesseur getUrlActionUtilisateur() - Retourne l'url avec l'action et l'id utilisateur configurable.
    *
    * @return string l'url avec l'action et l'id utilisateur configurable via sprintf.
    * @access public
    */
    function getUrlActionUtilisateur()
    {
        return $this->url_action_utilisateur;
    }
    /** Accesseur setUtilisateur() - Ajoute l'utilisateur courant.
    *
    * @param H_Utilisateur l'objet l'utilisateur courant.
    * @return void
    * @access public
    */
    function setUtilisateur(&$un_utilisateur)
    {
        $this->utilisateur =& $un_utilisateur;
    }
    /** Accesseur getUtilisateur() - Retourne l'utilisateur courant.
    *
    * @return H_Utilisateur l'objet l'utilisateur courant.
    * @access public
    */
    function getUtilisateur()
    {
        return $this->utilisateur;
    }
    /** Accesseur setCorrespondant() - Ajoute le correspondant courant.
    *
    * @param H_Utilisateur l'objet correspondant courant.
    * @return void
    * @access public
    */
    function setCorrespondant(&$un_correspondant)
    {
        $this->correspondant =& $un_correspondant;
    }
    /** Accesseur getCorrespondant() - Retourne le correspondant courant.
    *
    * @return H_Utilisateur l'objet correspondant courant.
    * @access public
    */
    function getCorrespondant()
    {
        return $this->correspondant;
    }
    /** Accesseur setRedacteur() - Ajoute le rédacteur courant.
    *
    * @param H_Utilisateur l'objet rédacteur courant.
    * @return void
    * @access public
    */
    function setRedacteur(&$un_redacteur)
    {
        $this->redacteur =& $un_redacteur;
    }
    /** Accesseur getRedacteur() - Retourne le rédacteur courant.
    *
    * @return H_Utilisateur l'objet rédacteur courant.
    * @access public
    */
    function getRedacteur()
    {
        return $this->redacteur;
    }
    /** Accesseur setOrganisation() - Ajoute l'organisation de l'utilisateur.
    *
    * @param H_Organisation l'objet organisation correspondant à l'utilisateur.
    * @return void
    * @access public
    */
    function setOrganisation(&$une_organisation)
    {
        $this->organisation =& $une_organisation;
    }
    /** Accesseur getOrganisation() - Retourne l'organisation courante.
    *
    * @return H_Organisation l'objet organisation courant de l'utilisateur.
    * @access public
    */
    function getOrganisation()
    {
        return $this->organisation;
    }
    /** Accesseur setEquipe() - Ajoute l'équipe courante.
    *
    * @param H_equipe l'objet équipe correspondant à l'organisation courante.
    * @return void
    * @access public
    */
    function setEquipe(&$une_equipe)
    {
        $this->equipe =& $une_equipe;
    }
    /** Accesseur setCollection() - Ajoute une collection.
    *
    * @param H_collection l'objet collection courant.
    * @return void
    * @access public
    */
    function setCollection(&$une_collection)
    {
        $this->collection =& $une_collection;
    }
    /** Accesseur getCollection() - Retourne une collection.
    *
    * @return H_collection l'objet collection courant.
    * @access public
    */
    function getCollection()
    {
        return $this->collection;
    }
    /** Accesseur setNote() - Ajoute une note.
    *
    * @param H_indic l'objet note (H_indic) courant.
    * @return void
    * @access public
    */
    function setNote(&$une_note)
    {
        $this->note =& $une_note;
    }
    
    // +--------------------------------------------------------------------------------------------------+
    // MÉTHODES
    /**
    *  Méthode remplacerEsperluette() - Remplace les & en &amp;
    *
    * Permet de remplacer les & en &amp; dans les données extraites de la 
    * base de données.
    *
    * @param object l'objet dans lequel il faut ramplacer les & des attributs.
    * @return mixed l'objet avec les & remplacés en &amp; ou si erreur FALSE.
    * @access public
    */
    function remplacerEsperluette(&$objet)
    {
        // Remplacement des & en &amp; avant renvoi des données
        if (is_object($objet)) {
            foreach (get_object_vars($objet) as $cle => $valeur) {
                $objet->$cle = str_replace(' & ', ' &amp; ', $valeur);
            }
            return $objet;
        }
        return FALSE;
    }
}

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


/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.2  2005/04/06 13:29:17  jpm
* Ajout et modifications des objets représentant la base de données Herbier.
*
* Revision 1.1  2005/03/08 14:13:21  jpm
* Ajout des classes d'accès à la base de données.
*
*
* +-- Fin du code ----------------------------------------------------------------------------------------+
*/
?>