Subversion Repositories eFlore/Archives.herbiers

Rev

Rev 7 | Rev 19 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 7 Rev 12
1
<?php
1
<?php
2
/*vim: set expandtab tabstop=4 shiftwidth=4: */ 
2
/*vim: set expandtab tabstop=4 shiftwidth=4: */ 
3
// +------------------------------------------------------------------------------------------------------+
3
// +------------------------------------------------------------------------------------------------------+
4
// | PHP version 4.1                                                                                      |
4
// | PHP version 4.1                                                                                      |
5
// +------------------------------------------------------------------------------------------------------+
5
// +------------------------------------------------------------------------------------------------------+
6
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org)                                         |
6
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org)                                         |
7
// +------------------------------------------------------------------------------------------------------+
7
// +------------------------------------------------------------------------------------------------------+
8
// | This file is part of Herbier - Administration.                                                       |
8
// | This file is part of Herbier - Administration.                                                       |
9
// |                                                                                                      |
9
// |                                                                                                      |
10
// | Foobar is free software; you can redistribute it and/or modify                                       |
10
// | Foobar is free software; you can redistribute it and/or modify                                       |
11
// | it under the terms of the GNU General Public License as published by                                 |
11
// | it under the terms of the GNU General Public License as published by                                 |
12
// | the Free Software Foundation; either version 2 of the License, or                                    |
12
// | the Free Software Foundation; either version 2 of the License, or                                    |
13
// | (at your option) any later version.                                                                  |
13
// | (at your option) any later version.                                                                  |
14
// |                                                                                                      |
14
// |                                                                                                      |
15
// | Foobar is distributed in the hope that it will be useful,                                            |
15
// | Foobar is distributed in the hope that it will be useful,                                            |
16
// | but WITHOUT ANY WARRANTY; without even the implied warranty of                                       |
16
// | but WITHOUT ANY WARRANTY; without even the implied warranty of                                       |
17
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                                        |
17
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                                        |
18
// | GNU General Public License for more details.                                                         |
18
// | GNU General Public License for more details.                                                         |
19
// |                                                                                                      |
19
// |                                                                                                      |
20
// | You should have received a copy of the GNU General Public License                                    |
20
// | You should have received a copy of the GNU General Public License                                    |
21
// | along with Foobar; if not, write to the Free Software                                                |
21
// | along with Foobar; if not, write to the Free Software                                                |
22
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
22
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
23
// +------------------------------------------------------------------------------------------------------+
23
// +------------------------------------------------------------------------------------------------------+
24
// CVS : $Id: hba_manipulation.fonct.php,v 1.2 2006-10-30 18:57:46 jp_milcent Exp $
24
// CVS : $Id: hba_manipulation.fonct.php,v 1.3 2006-10-31 15:06:44 jp_milcent Exp $
25
/**
25
/**
26
* Fonctions de manipulation de la base de données Herbier.
26
* Fonctions de manipulation de la base de données Herbier.
27
*
27
*
28
* Fonctions permettant d'ajouter, modifier ou supprimer des informations dans la base de données Herbier.
28
* Fonctions permettant d'ajouter, modifier ou supprimer des informations dans la base de données Herbier.
29
*
29
*
30
*@package Herbier-Administration
30
*@package Herbier-Administration
31
*@subpackage Fonctions
31
*@subpackage Fonctions
32
//Auteur original :
32
//Auteur original :
33
*@author        Alexandre GRANIER <alexandre@tela-botanica.org>
33
*@author        Alexandre GRANIER <alexandre@tela-botanica.org>
34
//Autres auteurs :
34
//Autres auteurs :
35
*@author        Jean-Pascal MILCENT <jpm@clapas.org>
35
*@author        Jean-Pascal MILCENT <jpm@clapas.org>
36
*@copyright     Tela-Botanica 2000-2005
36
*@copyright     Tela-Botanica 2000-2005
37
*@version       $Revision: 1.2 $ $Date: 2006-10-30 18:57:46 $
37
*@version       $Revision: 1.3 $ $Date: 2006-10-31 15:06:44 $
38
// +------------------------------------------------------------------------------------------------------+
38
// +------------------------------------------------------------------------------------------------------+
39
*/
39
*/
40
 
40
 
41
// +------------------------------------------------------------------------------------------------------+
41
// +------------------------------------------------------------------------------------------------------+
42
// |                                           LISTE de FONCTIONS                                         |
42
// |                                           LISTE de FONCTIONS                                         |
43
// +------------------------------------------------------------------------------------------------------+
43
// +------------------------------------------------------------------------------------------------------+
44
 
44
 
45
// +------------------------------------------------------------------------------------------------------+
45
// +------------------------------------------------------------------------------------------------------+
46
// GESTION du MENU
46
// GESTION du MENU
47
 
47
 
48
function entete(&$un_herbier)
48
function entete(&$un_herbier)
49
{
49
{
50
    $retour =   '<div id="hba_info">'."\n";
50
    $retour =   '<div id="hba_info">'."\n";
51
    
51
    
52
    // Gestion des infos
52
    // Gestion des infos
53
    $retour .=  '<h1>'.'Vous êtes'.'</h1>'."\n";
53
    $retour .=  '<h1>'.'Vous êtes'.'</h1>'."\n";
54
    // Affichage des droits
54
    // Affichage des droits
55
    if ($un_herbier->utilisateur->getAdminBool()) {
55
    if ($un_herbier->utilisateur->getAdminBool()) {
56
        $retour .=  '<p>'.'Administrateur de ce projet'.'</p>'."\n";
56
        $retour .=  '<p>'.'Administrateur de ce projet'.'</p>'."\n";
57
    } elseif ($un_herbier->utilisateur->getCoordBool()) {
57
    } elseif ($un_herbier->utilisateur->getCoordBool()) {
58
        $retour .=  '<p>'.'Coordinateur de ce projet'.'</p>'."\n";
58
        $retour .=  '<p>'.'Coordinateur de ce projet'.'</p>'."\n";
59
    } elseif ($un_herbier->utilisateur->getRedacBool()) {
59
    } elseif ($un_herbier->utilisateur->getRedacBool()) {
60
        $retour .=  '<p>'.'Rédacteur de ce projet'.'</p>'."\n";
60
        $retour .=  '<p>'.'Rédacteur de ce projet'.'</p>'."\n";
61
    }
61
    }
62
    // Affichage du noms de l'institution
62
    // Affichage du noms de l'institution
63
    /*
63
    /*
64
    if (is_object($une_organisation = $un_herbier->getOrganisation())) {
64
    if (is_object($une_organisation = $un_herbier->getOrganisation())) {
65
        $retour .=  '<dt>'.'Institution :'.'</dt>'."\n".'<dd>';
65
        $retour .=  '<dt>'.'Institution :'.'</dt>'."\n".'<dd>';
66
        if ($txt_court = raccourcirTexte($une_organisation->getNom(), HBA_LONGUEUR_ORG_NOM)) {
66
        if ($txt_court = raccourcirTexte($une_organisation->getNom(), HBA_LONGUEUR_ORG_NOM)) {
67
            $retour .= '<abbr title="'.$une_organisation->getNom().'">'.$txt_court.'</abbr>';
67
            $retour .= '<abbr title="'.$une_organisation->getNom().'">'.$txt_court.'</abbr>';
68
        } else {
68
        } else {
69
            $retour .= $une_organisation->getNom();
69
            $retour .= $une_organisation->getNom();
70
        }
70
        }
71
        $retour .=  '</dd>'."\n";
71
        $retour .=  '</dd>'."\n";
72
    }
72
    }
73
    */
73
    */
74
    
74
    
75
    // Gestion des menus
75
    // Gestion des menus
76
    if ($un_herbier->utilisateur->getDroit()) {
76
    if ($un_herbier->utilisateur->getDroit()) {
77
        $retour .=  '<ul>'."\n";
77
        $retour .=  '<ul>'."\n";
78
        $retour .=  '<li><a href="'.sprintf($un_herbier->getUrlAction(), HBA_ACTION_ANNULER).'">'.
78
        $retour .=  '<li><a href="'.sprintf($un_herbier->getUrlAction(), HBA_ACTION_ANNULER).'">'.
79
                        'Accueil'.
79
                        'Accueil'.
80
                        '</a></li>'."\n";
80
                        '</a></li>'."\n";
81
        $retour .=  '<li><a href="'.sprintf($un_herbier->getUrlAction(), HBA_ACTION_HERBIER_AJOUT).'">'.
81
        $retour .=  '<li><a href="'.sprintf($un_herbier->getUrlAction(), HBA_ACTION_HERBIER_AJOUT).'">'.
82
                    'Ajouter une institution (herbier)'.
82
                    'Ajouter une institution (herbier)'.
83
                    '</a></li>'."\n";
83
                    '</a></li>'."\n";
84
        if ($un_herbier->utilisateur->getAdminBool()) {
84
        if ($un_herbier->utilisateur->getAdminBool()) {
85
            $retour .=  '<li><a href="'.sprintf($un_herbier->getUrlAction(), NOUVEAU_CORR).'">'.
85
            $retour .=  '<li><a href="'.sprintf($un_herbier->getUrlAction(), NOUVEAU_CORR).'">'.
86
                        'Inscrire un correspondant'.
86
                        'Inscrire un correspondant'.
87
                        '</a></li>'."\n";
87
                        '</a></li>'."\n";
88
        } elseif ($un_herbier->utilisateur->getCoordBool()) {
88
        } elseif ($un_herbier->utilisateur->getCoordBool()) {
89
            $retour .=  '<li><a href="'.sprintf($un_herbier->getUrlAction(), NOUV_RED).'">'.
89
            $retour .=  '<li><a href="'.sprintf($un_herbier->getUrlAction(), NOUV_RED).'">'.
90
                        'Inscrire un rédacteur'.
90
                        'Inscrire un rédacteur'.
91
                        '</a></li>'."\n";
91
                        '</a></li>'."\n";
92
        }
92
        }
93
        $retour .=  '</ul>'."\n";
93
        $retour .=  '</ul>'."\n";
94
        // Gestion du menu contextuel
94
        // Gestion du menu contextuel
95
        $menu_contextuel = '';
95
        $menu_contextuel = '';
96
        switch ($un_herbier->getAction()) {
96
        switch ($un_herbier->getAction()) {
97
            case NOUV_COLL : // 4
97
            case NOUV_COLL : // 4
98
            case MOD_DESC : // 21
98
            case MOD_DESC : // 21
99
            case MOD_ADM : // 22
99
            case MOD_ADM : // 22
100
            case NOUV_TEAM : // 30
100
            case NOUV_TEAM : // 30
101
            case MOD_STAFF : // 32
101
            case MOD_STAFF : // 32
102
            case NOUV_INDIC : // 40
102
            case NOUV_INDIC : // 40
103
            case MOD_NOTE : // 42
103
            case MOD_NOTE : // 42
104
                $id_org = $un_herbier->organisation->getId();
104
                $id_org = $un_herbier->organisation->getId();
105
                $menu_contextuel .= '<li><a href="'.
105
                $menu_contextuel .= '<li><a href="'.
106
                                    sprintf($un_herbier->getUrlActionOrg(), MOD_HERB, $id_org).'">'.
106
                                    sprintf($un_herbier->getUrlActionOrg(), MOD_HERB, $id_org).'">'.
107
                                    'Retour à l\'institution'.
107
                                    'Retour à l\'institution'.
108
                                    '</a></li>'."\n";
108
                                    '</a></li>'."\n";
109
                break;
109
                break;
110
            case MOD_HERB : // 20
110
            case MOD_HERB : // 20
111
            case MOD_ADM_V : // 26
111
            case MOD_ADM_V : // 26
112
            case MOD_DESC_V : // 27
112
            case MOD_DESC_V : // 27
113
            case SUPPR_COLL : // 29
113
            case SUPPR_COLL : // 29
114
            case NOUV_TEAM_V : // 31
114
            case NOUV_TEAM_V : // 31
115
            case MOD_STAFF_V : // 33
115
            case MOD_STAFF_V : // 33
116
            case SUPPR_STAFF : // 34
116
            case SUPPR_STAFF : // 34
117
            case NOUV_INDIC_V : // 41
117
            case NOUV_INDIC_V : // 41
118
            case SUPPR_NOTE : // 43
118
            case SUPPR_NOTE : // 43
119
            case MOD_NOTE_V : // 44
119
            case MOD_NOTE_V : // 44
120
            case HBA_ACTION_COLL_DEROULER : // 5
120
            case HBA_ACTION_COLL_DEROULER : // 5
121
                $id_org = $un_herbier->organisation->getId();
121
                $id_org = $un_herbier->organisation->getId();
122
                $menu_contextuel .= '<li><a href="'.
122
                $menu_contextuel .= '<li><a href="'.
123
                                    sprintf($un_herbier->getUrlActionOrg(), MOD_ADM, $id_org).'">'.
123
                                    sprintf($un_herbier->getUrlActionOrg(), MOD_ADM, $id_org).'">'.
124
                                    'Modifier l\'institution'.
124
                                    'Modifier l\'institution'.
125
                                    '</a></li>'."\n".
125
                                    '</a></li>'."\n".
126
                                    '<li><a href="'.
126
                                    '<li><a href="'.
127
                                    sprintf($un_herbier->getUrlActionOrg(), NOUV_TEAM, $id_org).'">'.
127
                                    sprintf($un_herbier->getUrlActionOrg(), NOUV_TEAM, $id_org).'">'.
128
                                    'Ajouter un membre à l\'équipe'.
128
                                    'Ajouter un membre à l\'équipe'.
129
                                    '</a></li>'."\n".
129
                                    '</a></li>'."\n".
130
                                    '<li><a href="'.
130
                                    '<li><a href="'.
131
                                    sprintf($un_herbier->getUrlActionOrg(), NOUV_COLL, $id_org).'">'.
131
                                    sprintf($un_herbier->getUrlActionOrg(), NOUV_COLL, $id_org).'">'.
132
                                    'Ajouter une collection'.
132
                                    'Ajouter une collection'.
133
                                    '</a></li>'."\n";
133
                                    '</a></li>'."\n";
134
                break;
134
                break;
135
        }
135
        }
136
        if (!empty($menu_contextuel)) {
136
        if (!empty($menu_contextuel)) {
137
            $retour .=  '<hr class="clear"/>'."\n";
137
            $retour .=  '<hr class="clear"/>'."\n";
138
            $retour .=  '<ul>'."\n";
138
            $retour .=  '<ul>'."\n";
139
            $retour .=  $menu_contextuel;
139
            $retour .=  $menu_contextuel;
140
            $retour .=  '</ul>'."\n";
140
            $retour .=  '</ul>'."\n";
141
        }
141
        }
142
    }
142
    }
143
    $retour .=  '</div>'."\n";
143
    $retour .=  '</div>'."\n";
144
    return $retour;
144
    return $retour;
145
}
145
}
146
 
146
 
147
// +------------------------------------------------------------------------------------------------------+
147
// +------------------------------------------------------------------------------------------------------+
148
// GESTION de l'ACCUEIL
148
// GESTION de l'ACCUEIL
149
 
149
 
150
// Affichage de l'accueil
150
// Affichage de l'accueil
151
function menu(&$un_herbier)
151
function menu(&$un_herbier)
152
{
152
{
153
    $retour = '';
153
    $retour = '';
154
    
154
    
155
    // Message d'accueil et aide
155
    // Message d'accueil et aide
156
    if (!$un_herbier->utilisateur->recupererOrganisationListe($un_herbier->utilisateur)) {
156
    if (!$un_herbier->utilisateur->recupererOrganisationListe($un_herbier->utilisateur)) {
157
        $retour .= '<h1>'.'Bienvenue sur la console d\'administration du projet Herbiers.'.'</h1>'."\n";
157
        $retour .= '<h1>'.'Bienvenue sur la console d\'administration du projet Herbiers.'.'</h1>'."\n";
158
        $retour .= fournirAideAccueil();
158
        $retour .= fournirAideAccueil();
159
        $retour .= '<h1 class="hba_titre">'.'Liste de vos herbiers'.'</h1>'."\n";
159
        $retour .= '<h1 class="hba_titre">'.'Liste de vos herbiers'.'</h1>'."\n";
160
    } else {
160
    } else {
161
        $retour .= '<h1 class="hba_titre">'.'Liste de vos herbiers'.'</h1>'."\n";
161
        $retour .= '<h1 class="hba_titre">'.'Liste de vos herbiers'.'</h1>'."\n";
162
        $retour .= fournirAideAccueilOrganisation();
162
        $retour .= fournirAideAccueilOrganisation();
163
    }
163
    }
164
    // Les herbiers de l'utilisateur courant
164
    // Les herbiers de l'utilisateur courant
165
    $retour .= mesherbiers($un_herbier);
165
    $retour .= mesherbiers($un_herbier);
166
    
166
    
167
    // Les herbiers des correspondants
167
    // Les herbiers des correspondants
168
    if ($un_herbier->utilisateur->getAdminBool()) {
168
    if ($un_herbier->utilisateur->getAdminBool()) {
169
        $retour .= liste_corr($un_herbier);
169
        $retour .= liste_corr($un_herbier);
170
    }
170
    }
171
    
171
    
172
    // Les herbiers des rédacteurs
172
    // Les herbiers des rédacteurs
173
    if ($un_herbier->utilisateur->getCoordBool()) {
173
    if ($un_herbier->utilisateur->getCoordBool()) {
174
        $retour .= liste_red($un_herbier);
174
        $retour .= liste_red($un_herbier);
175
    }
175
    }
176
    return $retour;
176
    return $retour;
177
}
177
}
178
 
178
 
179
// Affichage des herbiers d'un utilisateur
179
// Affichage des herbiers d'un utilisateur
180
function mesherbiers(&$un_herbier) 
180
function mesherbiers(&$un_herbier) 
181
{
181
{
182
    $retour = '';
182
    $retour = '';
183
    
183
    
184
    if (!$un_herbier->utilisateur->recupererOrganisationListe($un_herbier->utilisateur)) {
184
    if (!$un_herbier->utilisateur->recupererOrganisationListe($un_herbier->utilisateur)) {
185
        $retour .= '<p class="hba_attention">'.'Aucun herbier encore saisi !'.'</p>'."\n";
185
        $retour .= '<p class="hba_attention">'.'Aucun herbier encore saisi !'.'</p>'."\n";
186
    } else {
186
    } else {
187
        // Si l'utilisateur à saisi des herbiers : nous les affichons...
187
        // Si l'utilisateur à saisi des herbiers : nous les affichons...
188
        $retour .=  '<div class="hba_liste_organisation">'."\n".
188
        $retour .=  '<div class="hba_liste_organisation">'."\n".
189
                    '<table>'."\n".
189
                    '<table>'."\n".
190
                    '<thead>'."\n".
190
                    '<thead>'."\n".
191
                    '<tr>'."\n".'<th>'.'Ville'.'</th><th>'.'Institution'.'</th><th colspan="2">'.'Actions'.'</th>'."\n".'</tr>'."\n".
191
                    '<tr>'."\n".'<th>'.'Ville'.'</th><th>'.'Institution'.'</th><th colspan="2">'.'Actions'.'</th>'."\n".'</tr>'."\n".
192
                    '</thead>'."\n";
192
                    '</thead>'."\n";
193
        $retour .=  '<tbody>'."\n";
193
        $retour .=  '<tbody>'."\n";
194
        foreach ($un_herbier->utilisateur->getOrganisationListe() as $valeur) {
194
        foreach ($un_herbier->utilisateur->getOrganisationListe() as $valeur) {
195
            $retour .=  '<tr class="'.color_alterne(&$flag).'">'."\n";
195
            $retour .=  '<tr class="'.color_alterne(&$flag).'">'."\n";
196
            $retour .= '<td>'.$valeur->TOWN.'</td><td>'.$valeur->INSTITUTION_NAME.'</td>';
196
            $retour .= '<td>'.$valeur->TOWN.'</td><td>'.$valeur->INSTITUTION_NAME.'</td>';
197
            
197
            
198
            // Gestion des actions
198
            // Gestion des actions
199
            $retour .= '<td><a href="'.sprintf($un_herbier->url_action_org, MOD_HERB, $valeur->ID_ORG).'">'.'modifier'.'</a></td>';
199
            $retour .= '<td><a href="'.sprintf($un_herbier->url_action_org, MOD_HERB, $valeur->ID_ORG).'">'.'modifier'.'</a></td>';
200
            // Protection de l'institution exemple
200
            // Protection de l'institution exemple
201
            if ($valeur->ID_ORG != HBA_EXEMPLE_ID) {
201
            if ($valeur->ID_ORG != HBA_EXEMPLE_ID) {
202
                $retour .= '<td><a href="'.sprintf($un_herbier->url_action_org, SUPPR_HERB, $valeur->ID_ORG).'"';
202
                $retour .= '<td><a href="'.sprintf($un_herbier->url_action_org, SUPPR_HERB, $valeur->ID_ORG).'"';
203
                $retour .= ' onclick="javascript:return confirm(\''.'Êtes-vous sûr de vouloir supprimer cette institution ?'.'\');"';
203
                $retour .= ' onclick="javascript:return confirm(\''.'Êtes-vous sûr de vouloir supprimer cette institution ?'.'\');"';
204
                $retour .= '>'.'supprimer'.'</a></td>'."\n";
204
                $retour .= '>'.'supprimer'.'</a></td>'."\n";
205
            }
205
            }
206
            $retour .= '</tr>';
206
            $retour .= '</tr>';
207
        }
207
        }
208
        $retour .=  '</tbody>'."\n".'</table>'."\n".'</div>'."\n";
208
        $retour .=  '</tbody>'."\n".'</table>'."\n".'</div>'."\n";
209
    }
209
    }
210
    // Si l'utilisateur est un coordinateur nous affichons les herbiers saisis par ses rédacteurs
210
    // Si l'utilisateur est un coordinateur nous affichons les herbiers saisis par ses rédacteurs
211
    if ($un_herbier->utilisateur->getCoordBool()) {
211
    if ($un_herbier->utilisateur->getCoordBool()) {
212
        $retour .= leursherbiers($un_herbier);
212
        $retour .= leursherbiers($un_herbier);
213
    }
213
    }
214
    
214
    
215
    return $retour;
215
    return $retour;
216
}
216
}
217
 
217
 
218
// Renvoie les herbiers des rédacteurs dépendant d'un coordinateur
218
// Renvoie les herbiers des rédacteurs dépendant d'un coordinateur
219
function leursherbiers(&$un_herbier)
219
function leursherbiers(&$un_herbier)
220
{
220
{
221
    // Initialisation de variables
221
    // Initialisation de variables
222
    $retour = '';
222
    $retour = '';
223
    
223
    
224
    // Recheche de la liste des rédacteurs
224
    // Recheche de la liste des rédacteurs
225
    $requete =  'SELECT U_NAME, U_SURNAME, U_ID '.
225
    $requete =  'SELECT U_NAME, U_SURNAME, U_ID '.
226
                'FROM '.HB_BDD_NOM_ANNUAIRE.'.annuaire_tela, '.HB_BDD_NOM.'.HERBIERS_COORDONNE '.
226
                'FROM '.HB_BDD_NOM_ANNUAIRE.'.annuaire_tela, '.HB_BDD_NOM.'.HERBIERS_COORDONNE '.
227
                'WHERE HC_ID_COORDINATEUR = '.$un_herbier->utilisateur->getId().' '.
227
                'WHERE HC_ID_COORDINATEUR = '.$un_herbier->utilisateur->getId().' '.
228
                'AND HC_ID_REDACTEUR = U_ID';
228
                'AND HC_ID_REDACTEUR = U_ID';
229
    $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
229
    $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
230
    $id_utilisateur_courant_tmp = $un_herbier->utilisateur->getId();
230
    $id_utilisateur_courant_tmp = $un_herbier->utilisateur->getId();
231
    while ($ligne = mysql_fetch_object($resultat)) {
231
    while ($ligne = mysql_fetch_object($resultat)) {
232
        $retour .= '<h2>'.'Herbiers de '.$ligne->U_NAME.' '.$ligne->U_SURNAME.'</h2>'."\n";
232
        $retour .= '<h2>'.'Herbiers de '.$ligne->U_NAME.' '.$ligne->U_SURNAME.'</h2>'."\n";
233
        $un_herbier->utilisateur->setId($ligne->U_ID);
233
        $un_herbier->utilisateur->setId($ligne->U_ID);
234
        $retour .= mesherbiers($un_herbier)."\n";
234
        $retour .= mesherbiers($un_herbier)."\n";
235
    }
235
    }
236
    $un_herbier->utilisateur->setId($id_utilisateur_courant_tmp);
236
    $un_herbier->utilisateur->setId($id_utilisateur_courant_tmp);
237
    return $retour;
237
    return $retour;
238
}
238
}
239
 
239
 
240
// +------------------------------------------------------------------------------------------------------+
240
// +------------------------------------------------------------------------------------------------------+
241
// GESTION de l'ORGANISATION (Institution)
241
// GESTION de l'ORGANISATION (Institution)
242
 
242
 
243
function mod_herb(&$un_herbier)
243
function mod_herb(&$un_herbier)
244
{
244
{
245
    // Initialisation de variables
245
    // Initialisation de variables
246
    $organisation_nom = $un_herbier->organisation->getNom();
246
    $organisation_nom = $un_herbier->organisation->getNom();
247
    
247
    
248
    $retour = '<h1>'.'Édition d\'une institution'.' - '.$organisation_nom.'</h1>';
248
    $retour = '<h1>'.'Édition d\'une institution'.' - '.$organisation_nom.'</h1>';
249
    $retour .= fournirAideOrganisation();
249
    $retour .= fournirAideOrganisation();
250
    $liste_equipe = team_liste($un_herbier);
250
    $liste_equipe = team_liste($un_herbier);
251
    if ($liste_equipe != '') {
251
    if ($liste_equipe != '') {
252
        $retour .= '<h1>'.'L\'équipe de l\'institution'.'</h1>';
252
        $retour .= '<h1>'.'L\'équipe de l\'institution'.'</h1>';
253
        $retour .= fournirAideEquipe();
253
        $retour .= fournirAideEquipe();
254
        $retour .= $liste_equipe;
254
        $retour .= $liste_equipe;
255
    }
255
    }
256
    $liste_coll = liste_coll($un_herbier);
256
    $liste_coll = liste_coll($un_herbier);
257
    if ($liste_coll != '') {
257
    if ($liste_coll != '') {
258
        $retour .= '<h1>'.'Liste des collections de l\'institution'.'</h1>'."\n";
258
        $retour .= '<h1>'.'Liste des collections de l\'institution'.'</h1>'."\n";
259
        $retour .= fournirAideCollection();
259
        $retour .= fournirAideCollection();
260
        $retour .= $liste_coll;
260
        $retour .= $liste_coll;
261
    }
261
    }
262
    
262
    
263
    return $retour;
263
    return $retour;
264
}
264
}
265
 
265
 
266
function nouveau(&$un_herbier)
266
function nouveau(&$un_herbier)
267
{
267
{
268
    $retour = '<h1>'.'Saisie des renseignements administratifs d\'une institution'.'</h1>'."\n";
268
    $retour = '<h1>'.'Saisie des renseignements administratifs d\'une institution'.'</h1>'."\n";
269
    $form = new formFromTable($GLOBALS['_HERBIER_']['bdd'], 'HERBIERS_ORGANISATION');
269
    $form = new formFromTable($GLOBALS['_HERBIER_']['bdd'], 'HERBIERS_ORGANISATION');
270
    form_administratif(&$form, $un_herbier);
270
    form_administratif(&$form, $un_herbier);
271
    $javascript = 'onsubmit="javascript:return validateAndSubmitAdd(this);"';
271
    $javascript = 'onsubmit="javascript:return validateAndSubmitAdd(this);"';
272
    $retour .= $form->printForm(sprintf($un_herbier->url_action, HBA_ACTION_HERBIER_VERIF), $javascript, 'liste');
272
    $retour .= $form->printForm(sprintf($un_herbier->url_action, HBA_ACTION_HERBIER_VERIF), $javascript, 'liste');
273
    $retour .= '<div class="nettoyage">&nbsp;</div>'."\n";
273
    $retour .= '<div class="nettoyage">&nbsp;</div>'."\n";
274
    $form->finalise('un_form');
274
    $form->finalise('un_form');
275
    return $retour;
275
    return $retour;
276
}
276
}
277
 
277
 
278
// insertion des donnees administrative dans la base
278
// insertion des donnees administrative dans la base
279
// et des informations sur le correspondant
279
// et des informations sur le correspondant
280
function nouveau_v(&$un_herbier)
280
function nouveau_v(&$un_herbier)
281
{
281
{
282
    $retour = '';
282
    $retour = '';
283
    $form = new formFromTable($GLOBALS['_HERBIER_']['bdd'], 'HERBIERS_ORGANISATION');
283
    $form = new formFromTable($GLOBALS['_HERBIER_']['bdd'], 'HERBIERS_ORGANISATION');
284
    $form = $form->acquerir('HERBIERS_ORGANISATION');
284
    $form = $form->acquerir('HERBIERS_ORGANISATION');
285
    
285
    
286
    $id = $form->insertMySQL();
286
    $id = $form->insertMySQL();
287
    if ($_POST['INSTITUTION_NAME'] == '') {
287
    if ($_POST['INSTITUTION_NAME'] == '') {
288
        $form = new formFromTable($GLOBALS['_HERBIER_']['bdd'], 'HERBIERS_ORGANISATION', 'MOD', $id, 'ID_ORG');
288
        $form = new formFromTable($GLOBALS['_HERBIER_']['bdd'], 'HERBIERS_ORGANISATION', 'MOD', $id, 'ID_ORG');
289
        form_administratif(&$form, $un_herbier);
289
        form_administratif(&$form, $un_herbier);
290
        $retour .=  '<h1>'.'Vous devez saisir un nom d\'institution'.'</h1>'."\n";
290
        $retour .=  '<h1>'.'Vous devez saisir un nom d\'institution'.'</h1>'."\n";
291
        $retour .=  $form->printForm(sprintf($un_herbier->url_action, HBA_ACTION_HERBIER_VERIF), 'onsubmit="javascript:return validateAndSubmitAdd(this);"');
291
        $retour .=  $form->printForm(sprintf($un_herbier->url_action, HBA_ACTION_HERBIER_VERIF), 'onsubmit="javascript:return validateAndSubmitAdd(this);"');
292
        return $retour;
292
        return $retour;
293
    }
293
    }
294
    $une_organisation = new H_organisation();
294
    $une_organisation = new H_organisation();
295
    $une_organisation->setId($id);
295
    $une_organisation->setId($id);
296
    if (!$un_herbier->utilisateur->getAdminBool()) {
296
    if (!$un_herbier->utilisateur->getAdminBool()) {
297
        $un_herbier->utilisateur->insererOrganisationListe($une_organisation);
297
        $un_herbier->utilisateur->insererOrganisationListe($une_organisation);
298
    }
298
    }
299
    return TRUE;
299
    return TRUE;
300
}
300
}
301
 
301
 
302
function form_administratif(&$form, &$un_herbier)
302
function form_administratif(&$form, &$un_herbier)
303
{
303
{
304
    // Définition des styles
304
    // Définition des styles
305
    $form->style_general = 'hba_formulaire';
305
    $form->style_general = 'hba_formulaire';
306
    $form->style_label = 'hba_label';
306
    $form->style_label = 'hba_label';
307
    $form->style_button = 'hba_bouton';
307
    $form->style_button = 'hba_bouton';
308
    $form->style_commentaire = 'hba_commentaire';
308
    $form->style_commentaire = 'hba_commentaire';
309
    $form->style_radiocheckbox = 'hba_radio';
309
    $form->style_radiocheckbox = 'hba_radio';
310
    
310
    
311
    // Choix des champs
311
    // Choix des champs
312
    $form->addChamps('INSTITUTION_NAME', 'Nom de l\'institution <span class="symbole_obligatoire">*</span> : ');
312
    $form->addChamps('INSTITUTION_NAME', 'Nom de l\'institution <span class="symbole_obligatoire">*</span> : ');
313
    $form->addCommentaire('Dans le champs "Nom de l\'institution", ne saisissez que le nom de l\'institution, ne saisissez pas l\'adresse ou l\'index herbariorum.');
313
    $form->addCommentaire('Dans le champs "Nom de l\'institution", ne saisissez que le nom de l\'institution, ne saisissez pas l\'adresse ou l\'index herbariorum.');
314
    $form->addChamps('ADRESS_LINE', 'Adresse : ');
314
    $form->addChamps('ADRESS_LINE', 'Adresse : ');
315
    $form->addChamps('INDEX_HERB', 'Index Herbariorum : ');
315
    $form->addChamps('INDEX_HERB', 'Index Herbariorum : ');
316
    $form->addCommentaire('<br />'.'Ne saisir que des chiffres, sans espace ( 54789 oui, F-54789 non )');
316
    $form->addCommentaire('<br />'.'Ne saisir que des chiffres, sans espace ( 54789 oui, F-54789 non )');
317
    $form->addChamps('ZIP', 'Code postal <span class="symbole_obligatoire">*</span> : ');
317
    $form->addChamps('ZIP', 'Code postal <span class="symbole_obligatoire">*</span> : ');
318
    $form->addChamps('TOWN', 'Ville : ');
318
    $form->addChamps('TOWN', 'Ville : ');
319
    $form->addChamps('REGION', 'Région : ');
319
    $form->addChamps('REGION', 'Région : ');
320
    $form->selectFromTable('COUNTRY_CODE par gen_COUNTRY', 'fr', 'GC_ID', 'GC_NAME', 'Pays : ');
320
    $form->selectFromTable('COUNTRY_CODE par gen_COUNTRY', 'fr', 'GC_ID', 'GC_NAME', 'Pays : ');
321
    $form->addChamps('TEL', 'Téléphone : ');
321
    $form->addChamps('TEL', 'Téléphone : ');
322
    $form->addChamps('FAX', 'fax : ') ;
322
    $form->addChamps('FAX', 'fax : ') ;
323
    $form->addCommentaire('Saisir l\'e-mail de l\'organisation (ex: accueil@organisation.org), pas de mail individuel.');
323
    $form->addCommentaire('Saisir l\'e-mail de l\'organisation (ex: accueil@organisation.org), pas de mail individuel.');
324
    $form->addChamps('EMAIL', 'E-mail : ');
324
    $form->addChamps('EMAIL', 'E-mail : ');
325
    $form->addCommentaire('<br />'.'Un lien internet vers l\'institution, de la forme <b>http://www.mon_institution.org</b>.');
325
    $form->addCommentaire('<br />'.'Un lien internet vers l\'institution, de la forme <b>http://www.mon_institution.org</b>.');
326
    $form->addChamps('HO_URL', 'URL : ');
326
    $form->addChamps('HO_URL', 'URL : ');
327
    $form->addChamps('LOGO', 'Logo (URL vers un fichier graphique) : ');
327
    $form->addChamps('LOGO', 'Logo (URL vers un fichier graphique) : ');
328
    $form->addCommentaire('Indiquez ci-dessous tous les détails concernant l\'accès aux collections de l\'institution, comme les horaires d\'ouverture, les droits à acquitter...');
328
    $form->addCommentaire('Indiquez ci-dessous tous les détails concernant l\'accès aux collections de l\'institution, comme les horaires d\'ouverture, les droits à acquitter...');
329
    $form->addChamps('ACCESS_RESTRICTION', 'Conditions d\'accès : ');
329
    $form->addChamps('ACCESS_RESTRICTION', 'Conditions d\'accès : ');
330
    $form->addCommentaire('<br />'.'Pensez à supprimer le contenu du champs ci-dessous si les informations que vous saisissez ne viennent pas de l\'Index Herbariorum, remplacez par votre nom.');
330
    $form->addCommentaire('<br />'.'Pensez à supprimer le contenu du champs ci-dessous si les informations que vous saisissez ne viennent pas de l\'Index Herbariorum, remplacez par votre nom.');
331
    $form->addChamps('SOURCE_DES_DONNEES', 'Source des informations');
331
    $form->addChamps('SOURCE_DES_DONNEES', 'Source des informations');
332
    $form->addCommentaire('<strong><span class="symbole_obligatoire">'.'*'.'</span>'.' : '.'</strong>'.'champ obligatoire.');
332
    $form->addCommentaire('<strong><span class="symbole_obligatoire">'.'*'.'</span>'.' : '.'</strong>'.'champ obligatoire.');
333
    $form->addChamps('DATE_DERNIERE_MODIF', '', date('Y-m-j H:i:s', time()), $type = 'hidden');
333
	// Gestion des métadonnées
334
    $form->addChamps('CE_MODIFIER_PAR', '',  $un_herbier->utilisateur->getId(), $type = 'hidden');
334
	gererMetaForm(&$form, &$un_herbier);
335
    
335
	    
336
    if ($form->id != HBA_EXEMPLE_ID) {
336
    if ($form->id != HBA_EXEMPLE_ID) {
337
        $form->submit('Valider', 'herbier_pere');
337
        $form->submit('Valider', 'herbier_pere');
338
    }
338
    }
339
    $form->annuler('Annuler', sprintf($un_herbier->url_action, HBA_ACTION_ANNULER));
339
    $form->annuler('Annuler', sprintf($un_herbier->url_action, HBA_ACTION_ANNULER));
340
}
340
}
341
 
341
 
342
function mod_adm($un_herbier)
342
function mod_adm($un_herbier)
343
{
343
{
344
    $retour = '<h1>'.'Modification d\'une institution'.' - '.$un_herbier->organisation->getNom().'</h1>';
344
    $retour = '<h1>'.'Modification d\'une institution'.' - '.$un_herbier->organisation->getNom().'</h1>';
345
    $form = new formFromTable($GLOBALS['_HERBIER_']['bdd'], 'HERBIERS_ORGANISATION', 'MOD', $un_herbier->organisation->getId(), 'ID_ORG');
345
    $form = new formFromTable($GLOBALS['_HERBIER_']['bdd'], 'HERBIERS_ORGANISATION', 'MOD', $un_herbier->organisation->getId(), 'ID_ORG');
346
    form_administratif(&$form, $un_herbier);
346
    form_administratif(&$form, $un_herbier);
347
    $retour .= $form->printForm(sprintf($un_herbier->url_action_org, MOD_ADM_V, $un_herbier->organisation->getId()));
347
    $retour .= $form->printForm(sprintf($un_herbier->url_action_org, MOD_ADM_V, $un_herbier->organisation->getId()));
348
    $form->finalise('un_form');
348
    $form->finalise('un_form');
349
    return $retour;
349
    return $retour;
350
}
350
}
351
 
351
 
352
function mod_adm_v(&$un_herbier)
352
function mod_adm_v(&$un_herbier)
353
{
353
{
354
    $form = new formFromTable($GLOBALS['_HERBIER_']['bdd'], 'HERBIERS_ORGANISATION');
354
    $form = new formFromTable($GLOBALS['_HERBIER_']['bdd'], 'HERBIERS_ORGANISATION');
355
    $form = $form->acquerir('HERBIERS_ORGANISATION');
355
    $form = $form->acquerir('HERBIERS_ORGANISATION');
356
    
356
    
357
    if (($_POST['gen_COUNTRY'] == 'fr') and (!checkZip($_POST['ZIP']))) {
357
    if (($_POST['gen_COUNTRY'] == 'fr') and (!checkZip($_POST['ZIP']))) {
358
        $retour .= checkvalue('Le code postal n\'a pas la forme adéquate', '');
358
        $retour .= checkvalue('Le code postal n\'a pas la forme adéquate', '');
359
        return $retour;
359
        return $retour;
360
    }
360
    }
361
    
361
    
362
    $form->updateMySQL('ID_ORG', $un_herbier->organisation->getId());
362
    $form->updateMySQL('ID_ORG', $un_herbier->organisation->getId());
363
}
363
}
364
 
364
 
365
function suppr_herb(&$un_herbier)
365
function suppr_herb(&$un_herbier)
366
{
366
{
367
    // Initialisation des variables
367
    // Initialisation des variables
368
    $id_org = $un_herbier->organisation->getId();
368
    $id_org = $un_herbier->organisation->getId();
369
    
369
    
370
    // Supression des collections (et par cascades des notes, indic...) des collections de l'organisation
370
    // Supression des collections (et par cascades des notes, indic...) des collections de l'organisation
371
    $requete =  'SELECT ID '.
371
    $requete =  'SELECT ID '.
372
                'FROM HERBIERS_COLLECTION '.
372
                'FROM HERBIERS_COLLECTION '.
373
                'WHERE PARENT_ID = '.$id_org;
373
                'WHERE PARENT_ID = '.$id_org;
374
    $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
374
    $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
375
    while ($ligne = mysql_fetch_object($resultat)) {
375
    while ($ligne = mysql_fetch_object($resultat)) {
376
        suppr_coll($un_herbier, $ligne->ID);
376
        suppr_coll($un_herbier, $ligne->ID);
377
    }
377
    }
378
    
378
    
379
    // Suppression de l'organisation
379
    // Suppression de l'organisation
380
    $requete = 'DELETE FROM HERBIERS_ORGANISATION WHERE ID_ORG = '.$id_org;
380
    $requete = 'DELETE FROM HERBIERS_ORGANISATION WHERE ID_ORG = '.$id_org;
381
    mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
381
    mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
382
    
382
    
383
    // Supression de chaque membre de l'équipe (ou contact) de l'organisation
383
    // Supression de chaque membre de l'équipe (ou contact) de l'organisation
384
    $requete_01 = 'SELECT ID_STAFF '.
384
    $requete_01 = 'SELECT ID_STAFF '.
385
            'FROM HERBIERS_ont_un_staff '.
385
            'FROM HERBIERS_ont_un_staff '.
386
            'WHERE ID_ORG = '.$id_org;
386
            'WHERE ID_ORG = '.$id_org;
387
    $resultat_01 = mysql_query($requete_01) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete_01));
387
    $resultat_01 = mysql_query($requete_01) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete_01));
388
    while ($ligne_01 = mysql_fetch_object($resultat_01)) {
388
    while ($ligne_01 = mysql_fetch_object($resultat_01)) {
389
        $requete_02 =   'DELETE FROM HERBIERS_STAFF '.
389
        $requete_02 =   'DELETE FROM HERBIERS_STAFF '.
390
                        'WHERE ID_STAFF = '.$ligne_01->ID_STAFF;
390
                        'WHERE ID_STAFF = '.$ligne_01->ID_STAFF;
391
        mysql_query($requete_02) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete_02));
391
        mysql_query($requete_02) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete_02));
392
    }
392
    }
393
    // Suppression de la liste des équipiers (et/ou contacts) de l'organisation
393
    // Suppression de la liste des équipiers (et/ou contacts) de l'organisation
394
    $requete =  'DELETE FROM HERBIERS_ont_un_staff '.
394
    $requete =  'DELETE FROM HERBIERS_ont_un_staff '.
395
                'WHERE ID_ORG = '.$id_org;
395
                'WHERE ID_ORG = '.$id_org;
396
    mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
396
    mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
397
    
397
    
398
    // Suppression de l'organisation dans la liste des organisations (= herbiers) de l'utilisateur (HERBIERS_ADMINISTRER)
398
    // Suppression de l'organisation dans la liste des organisations (= herbiers) de l'utilisateur (HERBIERS_ADMINISTRER)
399
    $requete =  'DELETE FROM HERBIERS_ADMINISTRER '.
399
    $requete =  'DELETE FROM HERBIERS_ADMINISTRER '.
400
                'WHERE HA_ID_ORG = '.$id_org;
400
                'WHERE HA_ID_ORG = '.$id_org;
401
    mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
401
    mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
402
}
402
}
403
 
403
 
404
// +------------------------------------------------------------------------------------------------------+
404
// +------------------------------------------------------------------------------------------------------+
405
// GESTION de l'ÉQUIPE, d'un ÉQUIPIER et d'un CONTACT
405
// GESTION de l'ÉQUIPE, d'un ÉQUIPIER et d'un CONTACT
406
 
406
 
407
function team_liste(&$un_herbier)
407
function team_liste(&$un_herbier)
408
{
408
{
409
    $retour = '';
409
    $retour = '';
410
    
410
    
411
    $requete =  'SELECT HERBIERS_STAFF.* '.
411
    $requete =  'SELECT HERBIERS_STAFF.* '.
412
                'from HERBIERS_STAFF, HERBIERS_ont_un_staff, HERBIERS_ORGANISATION '.
412
                'from HERBIERS_STAFF, HERBIERS_ont_un_staff, HERBIERS_ORGANISATION '.
413
                'WHERE HERBIERS_ORGANISATION.ID_ORG = '.$un_herbier->organisation->getId().' '.
413
                'WHERE HERBIERS_ORGANISATION.ID_ORG = '.$un_herbier->organisation->getId().' '.
414
                'AND HERBIERS_ont_un_staff.ID_ORG = HERBIERS_ORGANISATION.ID_ORG '.
414
                'AND HERBIERS_ont_un_staff.ID_ORG = HERBIERS_ORGANISATION.ID_ORG '.
415
                'AND HERBIERS_STAFF.ID_STAFF = HERBIERS_ont_un_staff.ID_STAFF';
415
                'AND HERBIERS_STAFF.ID_STAFF = HERBIERS_ont_un_staff.ID_STAFF';
416
    
416
    
417
    $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
417
    $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
418
    if (mysql_num_rows($resultat) == 0) {
418
    if (mysql_num_rows($resultat) == 0) {
419
        $retour .= '<p class="hba_attention">'.'Aucune équipe renseignée !'.'</p>'."\n";
419
        $retour .= '<p class="hba_attention">'.'Aucune équipe renseignée !'.'</p>'."\n";
420
        return $retour;
420
        return $retour;
421
    }
421
    }
422
    $retour .= '<div class="hba_liste_equipe">'."\n";
422
    $retour .= '<div class="hba_liste_equipe">'."\n";
423
    $retour .= '<table>'."\n";
423
    $retour .= '<table>'."\n";
424
    $retour .= '<thead><tr><th>'.'Nom'.'</th><th>'.'Prénom'.'</th><th colspan="2">'.'Actions'.'</th></tr></thead>'."\n";
424
    $retour .= '<thead><tr><th>'.'Nom'.'</th><th>'.'Prénom'.'</th><th colspan="2">'.'Actions'.'</th></tr></thead>'."\n";
425
    $retour .= '<tbody>'."\n";
425
    $retour .= '<tbody>'."\n";
426
    while ($ligne = mysql_fetch_object($resultat)) {
426
    while ($ligne = mysql_fetch_object($resultat)) {
427
        $retour .= '<tr class="'.color_alterne(&$flag).'"><td>'.$ligne->NOM.'</td><td>'.$ligne->PRENOM.'</td>'."\n";
427
        $retour .= '<tr class="'.color_alterne(&$flag).'"><td>'.$ligne->NOM.'</td><td>'.$ligne->PRENOM.'</td>'."\n";
428
        $retour .=  '<td><a href="'.sprintf($un_herbier->url_action_org_equipe, MOD_STAFF, $un_herbier->organisation->getId(), $ligne->ID_STAFF).'">'.
428
        $retour .=  '<td><a href="'.sprintf($un_herbier->url_action_org_equipe, MOD_STAFF, $un_herbier->organisation->getId(), $ligne->ID_STAFF).'">'.
429
                    'modifier'.'</a></td>'."\n";
429
                    'modifier'.'</a></td>'."\n";
430
        
430
        
431
        if ($un_herbier->organisation->getId() != HBA_EXEMPLE_ID) {
431
        if ($un_herbier->organisation->getId() != HBA_EXEMPLE_ID) {
432
            $retour .=  '<td><a href="'.sprintf($un_herbier->url_action_org_equipe, SUPPR_STAFF, $un_herbier->organisation->getId(), $ligne->ID_STAFF).'" '.
432
            $retour .=  '<td><a href="'.sprintf($un_herbier->url_action_org_equipe, SUPPR_STAFF, $un_herbier->organisation->getId(), $ligne->ID_STAFF).'" '.
433
                        ' onclick="javascript:return confirm(\''.'Êtes-vous sûr de vouloir supprimer : '.$ligne->NOM.' '.$ligne->PRENOM.' ?'.'\');">'.
433
                        ' onclick="javascript:return confirm(\''.'Êtes-vous sûr de vouloir supprimer : '.$ligne->NOM.' '.$ligne->PRENOM.' ?'.'\');">'.
434
                        'supprimer'.'</a></td>'."\n";
434
                        'supprimer'.'</a></td>'."\n";
435
        }
435
        }
436
        $retour .= '</tr>'."\n";
436
        $retour .= '</tr>'."\n";
437
    }
437
    }
438
    $retour .= '</tbody>'."\n".'</table>'."\n".'</div>'."\n";
438
    $retour .= '</tbody>'."\n".'</table>'."\n".'</div>'."\n";
439
    
439
    
440
    return $retour;
440
    return $retour;
441
}
441
}
442
 
442
 
443
function nouv_team(&$un_herbier)
443
function nouv_team(&$un_herbier)
444
{
444
{
445
    $retour = '<h1>'.'Ajout d\'un membre'.'</h1>'."\n";
445
    $retour = '<h1>'.'Ajout d\'un membre'.'</h1>'."\n";
446
    $form = new formFromTable($GLOBALS['_HERBIER_']['bdd'], 'HERBIERS_STAFF');
446
    $form = new formFromTable($GLOBALS['_HERBIER_']['bdd'], 'HERBIERS_STAFF');
447
    form_team($form, $un_herbier);
447
    form_team($form, $un_herbier);
448
    $retour .= $form->printForm(sprintf($un_herbier->url_action_org, NOUV_TEAM_V, $un_herbier->organisation->getId()))."\n";
448
    $retour .= $form->printForm(sprintf($un_herbier->url_action_org, NOUV_TEAM_V, $un_herbier->organisation->getId()))."\n";
449
    $form->finalise('form_team');
449
    $form->finalise('form_team');
450
    return $retour;
450
    return $retour;
451
}
451
}
452
 
452
 
453
function nouv_team_v(&$un_herbier)
453
function nouv_team_v(&$un_herbier)
454
{
454
{
455
    $form = new formFromTable($GLOBALS['_HERBIER_']['bdd'], 'HERBIERS_STAFF');
455
    $form = new formFromTable($GLOBALS['_HERBIER_']['bdd'], 'HERBIERS_STAFF');
456
    $form = $form->acquerir('HERBIERS_STAFF');
456
    $form = $form->acquerir('HERBIERS_STAFF');
457
    $un_herbier->organisation->insererMembreEquipe($form->insertMySQL());
457
    $un_herbier->organisation->insererMembreEquipe($form->insertMySQL());
458
}
458
}
459
 
459
 
460
function form_team(&$form , &$un_herbier)
460
function form_team(&$form , &$un_herbier)
461
{
461
{
462
    // Définition des styles
462
    // Définition des styles
463
    $form->style_general = 'hba_formulaire';
463
    $form->style_general = 'hba_formulaire';
464
    $form->style_label = 'hba_label';
464
    $form->style_label = 'hba_label';
465
    $form->style_button = 'hba_bouton';
465
    $form->style_button = 'hba_bouton';
466
    $form->style_commentaire = 'hba_commentaire';
466
    $form->style_commentaire = 'hba_commentaire';
467
    $form->style_radiocheckbox = 'hba_radio';
467
    $form->style_radiocheckbox = 'hba_radio';
468
    
468
    
469
    // Propose par defaut l'adresse de l'organisation
469
    // Propose par defaut l'adresse de l'organisation
470
    $requete =    'SELECT ADRESS_LINE, TOWN, ZIP '.
470
    $requete =    'SELECT ADRESS_LINE, TOWN, ZIP '.
471
                'FROM HERBIERS_ORGANISATION '.
471
                'FROM HERBIERS_ORGANISATION '.
472
                'WHERE ID_ORG = '.$un_herbier->organisation->getId();
472
                'WHERE ID_ORG = '.$un_herbier->organisation->getId();
473
    $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
473
    $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
474
    $ligne = mysql_fetch_object($resultat);
474
    $ligne = mysql_fetch_object($resultat);
475
    
475
    
476
    $form->addChamps('NOM', 'Nom : ');
476
    $form->addChamps('NOM', 'Nom : ');
477
    $form->addChamps('PRENOM', 'Prénom : ');
477
    $form->addChamps('PRENOM', 'Prénom : ');
478
    $form->addChamps('ADRESSE1', 'Adresse : ', $ligne->ADRESS_LINE);
478
    $form->addChamps('ADRESSE1', 'Adresse : ', $ligne->ADRESS_LINE);
479
    $form->addChamps('ADRESSE2', 'Adresse : ');
479
    $form->addChamps('ADRESSE2', 'Adresse : ');
480
    $form->addChamps('CP', 'Code postal : ', $ligne->ZIP);
480
    $form->addChamps('CP', 'Code postal : ', $ligne->ZIP);
481
    $form->addChamps('VILLE', 'Ville : ', $ligne->TOWN);
481
    $form->addChamps('VILLE', 'Ville : ', $ligne->TOWN);
482
    $form->addChamps('MAIL', 'email : ');
482
    $form->addChamps('MAIL', 'email : ');
483
    $form->addChamps('TEL', 'Tél : ');
483
    $form->addChamps('TEL', 'Tél : ');
484
    $form->addChamps('FAX', 'Fax : ');
484
    $form->addChamps('FAX', 'Fax : ');
485
    $form->addChamps('FONCTION', 'Fonction : ');
485
    $form->addChamps('FONCTION', 'Fonction : ');
486
    $form->radioEnum('CONTACT', 'La personne est-elle contact ? : ','non');
486
    $form->radioEnum('CONTACT', 'La personne est-elle contact ? : ','non');
-
 
487
    // Gestion des métadonnées
-
 
488
	gererMetaForm(&$form, &$un_herbier);
-
 
489
        
487
    if ($un_herbier->organisation->getId() != HBA_EXEMPLE_ID) {
490
    if ($un_herbier->organisation->getId() != HBA_EXEMPLE_ID) {
488
        $form->submit('Valider');
491
        $form->submit('Valider');
489
    }
492
    }
490
    $form->annuler('Annuler', sprintf($un_herbier->url_action_org, MOD_HERB, $un_herbier->organisation->getId()));
493
    $form->annuler('Annuler', sprintf($un_herbier->url_action_org, MOD_HERB, $un_herbier->organisation->getId()));
491
}
494
}
492
 
495
 
493
function suppr_staff(&$un_herbier)
496
function suppr_staff(&$un_herbier)
494
{
497
{
495
    $requete =  'DELETE FROM HERBIERS_ont_un_staff '.
498
    $requete =  'DELETE FROM HERBIERS_ont_un_staff '.
496
                'WHERE ID_STAFF = '.$un_herbier->equipe->getId().' '.
499
                'WHERE ID_STAFF = '.$un_herbier->equipe->getId().' '.
497
                'AND ID_ORG = '.$un_herbier->organisation->getId();
500
                'AND ID_ORG = '.$un_herbier->organisation->getId();
498
    mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
501
    mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
499
    // Verification que la fiche de herbiers_staff ai encore une utilite
502
    // Verification que la fiche de herbiers_staff ai encore une utilite
500
    $requete = 'SELECT ID_STAFF FROM HERBIERS_ont_un_staff WHERE ID_STAFF = '.$un_herbier->equipe->getId();
503
    $requete = 'SELECT ID_STAFF FROM HERBIERS_ont_un_staff WHERE ID_STAFF = '.$un_herbier->equipe->getId();
501
    $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
504
    $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
502
    // le membre n'est plus dans aucun herbier, on le supprime
505
    // le membre n'est plus dans aucun herbier, on le supprime
503
    if (mysql_num_rows($resultat) == 0) {
506
    if (mysql_num_rows($resultat) == 0) {
504
        $requete = 'DELETE FROM HERBIERS_STAFF WHERE ID_STAFF = '.$un_herbier->equipe->getId();
507
        $requete = 'DELETE FROM HERBIERS_STAFF WHERE ID_STAFF = '.$un_herbier->equipe->getId();
505
        mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
508
        mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
506
    }
509
    }
507
}
510
}
508
 
511
 
509
function mod_staff(&$un_herbier)
512
function mod_staff(&$un_herbier)
510
{
513
{
511
    // Initialisation de variables
514
    // Initialisation de variables
512
    $id_equipe = $un_herbier->equipe->getId();
515
    $id_equipe = $un_herbier->equipe->getId();
513
    $id_org = $un_herbier->organisation->getId();
516
    $id_org = $un_herbier->organisation->getId();
514
    
517
    
515
    // Création du formulaire de modification
518
    // Création du formulaire de modification
516
    $retour = '<h1>'.'Modification d\'un membre de l\'équipe'.'</h1>'."\n";
519
    $retour = '<h1>'.'Modification d\'un membre de l\'équipe'.'</h1>'."\n";
517
    $form = new formFromTable($GLOBALS['_HERBIER_']['bdd'], 'HERBIERS_STAFF', 'MOD', $id_equipe, 'ID_STAFF');
520
    $form = new formFromTable($GLOBALS['_HERBIER_']['bdd'], 'HERBIERS_STAFF', 'MOD', $id_equipe, 'ID_STAFF');
518
    form_team($form, $un_herbier);
521
    form_team($form, $un_herbier);
519
    $url = sprintf($un_herbier->getUrlActionOrgEquipe(), MOD_STAFF_V, $id_org, $id_equipe);
522
    $url = sprintf($un_herbier->getUrlActionOrgEquipe(), MOD_STAFF_V, $id_org, $id_equipe);
520
    $retour .= $form->printForm($url);
523
    $retour .= $form->printForm($url);
521
    $form->finalise('form_staff');
524
    $form->finalise('form_staff');
522
    return $retour;
525
    return $retour;
523
}
526
}
524
 
527
 
525
function mod_staff_v(&$un_herbier)
528
function mod_staff_v(&$un_herbier)
526
{
529
{
527
    $form = new formFromTable($GLOBALS['_HERBIER_']['bdd'], 'HERBIERS_STAFF');
530
    $form = new formFromTable($GLOBALS['_HERBIER_']['bdd'], 'HERBIERS_STAFF');
528
    $form = $form->acquerir('HERBIERS_STAFF');
531
    $form = $form->acquerir('HERBIERS_STAFF');
529
    $form->updateMySQL('ID_STAFF', $un_herbier->equipe->getId());
532
    $form->updateMySQL('ID_STAFF', $un_herbier->equipe->getId());
530
}
533
}
531
 
534
 
532
// +------------------------------------------------------------------------------------------------------+
535
// +------------------------------------------------------------------------------------------------------+
533
// GESTION des COLLECTIONS
536
// GESTION des COLLECTIONS
534
 
537
 
535
function liste_coll(&$un_herbier)
538
function liste_coll(&$un_herbier)
536
{
539
{
537
    // Initialisation de variables
540
    // Initialisation de variables
538
    $retour = '';
541
    $retour = '';
539
    $id_action = $un_herbier->getAction();
542
    $id_action = $un_herbier->getAction();
540
    $id_org = $un_herbier->organisation->getId();
543
    $id_org = $un_herbier->organisation->getId();
541
    $id_coll = null;
544
    $id_coll = null;
542
    if (is_object($un_herbier->getCollection())) {
545
    if (is_object($un_herbier->getCollection())) {
543
        $id_coll = $un_herbier->collection->getId();
546
        $id_coll = $un_herbier->collection->getId();
544
    }
547
    }
545
    
548
    
546
    $requete =  'SELECT NOM_COLLECTION,ID '.
549
    $requete =  'SELECT NOM_COLLECTION,ID '.
547
                'FROM HERBIERS_COLLECTION '.
550
                'FROM HERBIERS_COLLECTION '.
548
                'WHERE PARENT_ID = '.$id_org;
551
                'WHERE PARENT_ID = '.$id_org;
549
    $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
552
    $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
550
    
553
    
551
    if (mysql_num_rows($resultat) == 0) {
554
    if (mysql_num_rows($resultat) == 0) {
552
        $retour .= '<p class="hba_attention">'.'Aucune collection renseignée !'.'</p>'."\n";
555
        $retour .= '<p class="hba_attention">'.'Aucune collection renseignée !'.'</p>'."\n";
553
        return $retour;
556
        return $retour;
554
    }
557
    }
555
    $retour .=  '<div class="hba_liste_collection">'."\n".
558
    $retour .=  '<div class="hba_liste_collection">'."\n".
556
                '<table>'."\n".
559
                '<table>'."\n".
557
                '<thead><tr><th colspan="2">'.'Nom'.'</th><th colspan="3">'.'Actions'.'</th></tr></thead>'."\n".
560
                '<thead><tr><th colspan="2">'.'Nom'.'</th><th colspan="3">'.'Actions'.'</th></tr></thead>'."\n".
558
                '<tbody>'."\n";
561
                '<tbody>'."\n";
559
    while ($ligne = mysql_fetch_object($resultat)) {
562
    while ($ligne = mysql_fetch_object($resultat)) {
560
        $retour .= '<tr class="'.color_alterne(&$flag).'"><td class="hb_plier_deplier">';
563
        $retour .= '<tr class="'.color_alterne(&$flag).'"><td class="hb_plier_deplier">';
561
        $requete_indic =    'SELECT ID_INDIC '.
564
        $requete_indic =    'SELECT ID_INDIC '.
562
                            'FROM HERBIERS_INDIC '.
565
                            'FROM HERBIERS_INDIC '.
563
                            'WHERE ID = '.$ligne->ID;
566
                            'WHERE ID = '.$ligne->ID;
564
        $resultat_indic = mysql_query($requete_indic) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete_indic));
567
        $resultat_indic = mysql_query($requete_indic) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete_indic));
565
        if (mysql_num_rows($resultat_indic) > 0) {
568
        if (mysql_num_rows($resultat_indic) > 0) {
566
            $xhtml_fermer = '<a href="'.sprintf($un_herbier->getUrlActionOrgColl(), MOD_HERB, $id_org, $ligne->ID).'">'."\n".
569
            $xhtml_fermer = '<a href="'.sprintf($un_herbier->getUrlActionOrgColl(), MOD_HERB, $id_org, $ligne->ID).'">'."\n".
567
                            '<img class="'.HB_CLASS_IMG_FERMER.'" src="'.HB_IMG_FERMER.'" alt="fermer" />'."\n".
570
                            '<img class="'.HB_CLASS_IMG_FERMER.'" src="'.HB_IMG_FERMER.'" alt="fermer" />'."\n".
568
                            '</a>'."\n";
571
                            '</a>'."\n";
569
            $xhtml_ouvrir = '<a href="'.sprintf($un_herbier->getUrlActionOrgColl(), HBA_ACTION_COLL_DEROULER, $id_org, $ligne->ID).'">'."\n".
572
            $xhtml_ouvrir = '<a href="'.sprintf($un_herbier->getUrlActionOrgColl(), HBA_ACTION_COLL_DEROULER, $id_org, $ligne->ID).'">'."\n".
570
                            '<img class="'.HB_CLASS_IMG_ICONE.'" src="'.HB_IMG_OUVRIR.'" alt="dérouler" />'."\n".
573
                            '<img class="'.HB_CLASS_IMG_ICONE.'" src="'.HB_IMG_OUVRIR.'" alt="dérouler" />'."\n".
571
                            '</a>'."\n";
574
                            '</a>'."\n";
572
            if ($id_coll == $ligne->ID) {
575
            if ($id_coll == $ligne->ID) {
573
                switch ($id_action) {
576
                switch ($id_action) {
574
                    case HBA_ACTION_COLL_DEROULER :
577
                    case HBA_ACTION_COLL_DEROULER :
575
                    case SUPPR_NOTE :
578
                    case SUPPR_NOTE :
576
                    case MOD_NOTE :
579
                    case MOD_NOTE :
577
                    case MOD_NOTE_V :
580
                    case MOD_NOTE_V :
578
                        $retour .= $xhtml_fermer;
581
                        $retour .= $xhtml_fermer;
579
                    break;
582
                    break;
580
                    default :
583
                    default :
581
                        $retour .= $xhtml_ouvrir;
584
                        $retour .= $xhtml_ouvrir;
582
                }
585
                }
583
            } else {
586
            } else {
584
                $retour .= $xhtml_ouvrir;
587
                $retour .= $xhtml_ouvrir;
585
            }
588
            }
586
        }
589
        }
587
        $retour .= '</td><td>';
590
        $retour .= '</td><td>';
588
        $retour .= $ligne->NOM_COLLECTION.'</td>';
591
        $retour .= $ligne->NOM_COLLECTION.'</td>';
589
        $retour .=  '<td><a href="'.
592
        $retour .=  '<td><a href="'.
590
                    sprintf($un_herbier->getUrlActionOrgColl(), MOD_DESC, $id_org, $ligne->ID).
593
                    sprintf($un_herbier->getUrlActionOrgColl(), MOD_DESC, $id_org, $ligne->ID).
591
                    '">'.'modifier'.'</a></td>'."\n";
594
                    '">'.'modifier'.'</a></td>'."\n";
592
        if ($id_org != HBA_EXEMPLE_ID) {
595
        if ($id_org != HBA_EXEMPLE_ID) {
593
            $retour .=  '<td><a href="'.
596
            $retour .=  '<td><a href="'.
594
                        sprintf($un_herbier->getUrlActionOrgColl(), SUPPR_COLL, $id_org, $ligne->ID).
597
                        sprintf($un_herbier->getUrlActionOrgColl(), SUPPR_COLL, $id_org, $ligne->ID).
595
                        '" onclick="javascript:return confirm(\''.'Étes vous sûr de vouloir supprimer cette collection ?'.'\');">'.
598
                        '" onclick="javascript:return confirm(\''.'Étes vous sûr de vouloir supprimer cette collection ?'.'\');">'.
596
                        'supprimer'.'</a>&nbsp;</td>'."\n";
599
                        'supprimer'.'</a>&nbsp;</td>'."\n";
597
        }
600
        }
598
        $retour .=  '<td><a href="'.
601
        $retour .=  '<td><a href="'.
599
                    sprintf($un_herbier->getUrlActionOrgColl(), NOUV_INDIC, $id_org, $ligne->ID).
602
                    sprintf($un_herbier->getUrlActionOrgColl(), NOUV_INDIC, $id_org, $ligne->ID).
600
                    '">'.'ajouter note'.'</a></td>'."\n";
603
                    '">'.'ajouter note'.'</a></td>'."\n";
601
        $retour .= '</tr>';
604
        $retour .= '</tr>';
602
        
605
        
603
        switch ($id_action) {
606
        switch ($id_action) {
604
            case HBA_ACTION_COLL_DEROULER :
607
            case HBA_ACTION_COLL_DEROULER :
605
            case SUPPR_NOTE :
608
            case SUPPR_NOTE :
606
            case MOD_NOTE :
609
            case MOD_NOTE :
607
            case MOD_NOTE_V :
610
            case MOD_NOTE_V :
608
                if ($id_coll == $ligne->ID) {
611
                if ($id_coll == $ligne->ID) {
609
                    $retour .= '<tr class="hba_liste_note"><td colspan="5">'.liste_indic($un_herbier).'</td></tr>'."\n";
612
                    $retour .= '<tr class="hba_liste_note"><td colspan="5">'.liste_indic($un_herbier).'</td></tr>'."\n";
610
                }
613
                }
611
                break;
614
                break;
612
        }
615
        }
613
    }
616
    }
614
    $retour .= '</tbody>'."\n".'</table>'."\n".'</div>';
617
    $retour .= '</tbody>'."\n".'</table>'."\n".'</div>';
615
    
618
    
616
    return $retour;
619
    return $retour;
617
}
620
}
618
 
621
 
619
function nouv_coll(&$un_herbier)
622
function nouv_coll(&$un_herbier)
620
{
623
{
621
    $retour = '<h1>'.'Ajout d\'une collection'.'</h1>'."\n";
624
    $retour = '<h1>'.'Ajout d\'une collection'.'</h1>'."\n";
622
    $form = new formFromTable($GLOBALS['_HERBIER_']['bdd'], 'HERBIERS_COLLECTION');
625
    $form = new formFromTable($GLOBALS['_HERBIER_']['bdd'], 'HERBIERS_COLLECTION');
623
    $form->style_general = 'insInputForm';
626
    $form->style_general = 'insInputForm';
624
    form_herb_2($form, $un_herbier);
627
    form_herb_2($form, $un_herbier);
625
    $retour .= $form->printForm(sprintf($un_herbier->url_action_org, NOUVEAU_HERB4, $un_herbier->organisation->getId()))."\n";//, null, 'liste'
628
    $retour .= $form->printForm(sprintf($un_herbier->url_action_org, NOUVEAU_HERB4, $un_herbier->organisation->getId()))."\n";//, null, 'liste'
626
    $form->finalise('form_2');
629
    $form->finalise('form_2');
627
    return $retour;
630
    return $retour;
628
}
631
}
629
 
632
 
630
function form_herb_2(&$form, &$un_herbier)
633
function form_herb_2(&$form, &$un_herbier)
631
{
634
{
632
    // Définition des styles
635
    // Définition des styles
633
    $form->style_general = 'hba_formulaire';
636
    $form->style_general = 'hba_formulaire';
634
    $form->style_label = 'hba_label';
637
    $form->style_label = 'hba_label';
635
    $form->style_button = 'hba_bouton';
638
    $form->style_button = 'hba_bouton';
636
    $form->style_commentaire = 'hba_commentaire';
639
    $form->style_commentaire = 'hba_commentaire';
637
    $form->style_radiocheckbox = 'hba_radio';
640
    $form->style_radiocheckbox = 'hba_radio';
638
    
641
    
639
    // Choix des champs
642
    // Choix des champs
640
    $form->addChamps('NOM_COLLECTION', 'Nom de la collection : ');
643
    $form->addChamps('NOM_COLLECTION', 'Nom de la collection : ');
641
    $form->addChamps('COLLECTION_CODE', 'Sigle d\'usage de la collection : ');
644
    $form->addChamps('COLLECTION_CODE', 'Sigle d\'usage de la collection : ');
642
    $form->addChamps('DESCRIPTION', 'Description générale : ');
645
    $form->addChamps('DESCRIPTION', 'Description générale : ');
643
    $form->radioFromTable('STATUT par HERBIERS_COLL_STATUT', 1, 'Statut de la collection : ');
646
    $form->radioFromTable('STATUT par HERBIERS_COLL_STATUT', 1, 'Statut de la collection : ');
644
    $form->addCommentaire('Les collecteurs doivent être séparés par un retour à la ligne (entrée)');
647
    $form->addCommentaire('Les collecteurs doivent être séparés par un retour à la ligne (entrée)');
645
    $form->addChamps('COLLECTEURS', 'Collecteurs : ');
648
    $form->addChamps('COLLECTEURS', 'Collecteurs : ');
646
    $form->addCommentaire('<b>Dates extrêmes de récolte des spécimens</b>');
649
    $form->addCommentaire('<b>Dates extrêmes de récolte des spécimens</b>');
647
    $form->addCommentaire('Les dates doivent être saisies selon le format jj-mm-année, par ex: 05-06-1956');
650
    $form->addCommentaire('Les dates doivent être saisies selon le format jj-mm-année, par ex: 05-06-1956');
648
    $form->addCommentaire('Laisser en blanc la date de fin si la collection est encore alimentée');
651
    $form->addCommentaire('Laisser en blanc la date de fin si la collection est encore alimentée');
649
    
652
    
650
    // Les dates de début et fin de récolte
653
    // Les dates de début et fin de récolte
651
    $form->addChamps('DATE_DEBUT', 'Date extrême de récolte des spécimens (début) : ', '', 'text', MEME_LIGNE);
654
    $form->addChamps('DATE_DEBUT', 'Date extrême de récolte des spécimens (début) : ', '', 'text', MEME_LIGNE);
652
    $form->addChamps('DATE_FIN', '(fin) : ');
655
    $form->addChamps('DATE_FIN', '(fin) : ');
653
    $form->radioFromTable('DATE_DEBUT_CARAC par HERBIERS_DATE_DEBUT_CARAC', '', 'Caractériser les dates : ', MEME_LIGNE);
656
    $form->radioFromTable('DATE_DEBUT_CARAC par HERBIERS_DATE_DEBUT_CARAC', '', 'Caractériser les dates : ', MEME_LIGNE);
654
    $form->radioFromTable('DATE_FIN_CARAC par HERBIERS_DATE_FIN_CARAC', '', 'Caractériser les dates : ');
657
    $form->radioFromTable('DATE_FIN_CARAC par HERBIERS_DATE_FIN_CARAC', '', 'Caractériser les dates : ');
655
    
658
    
656
    // L'url de la collection
659
    // L'url de la collection
657
    $form->addChamps('URL', 'URL vers le site de la collection (optionnel) : ');
660
    $form->addChamps('URL', 'URL vers le site de la collection (optionnel) : ');
658
    
661
    
659
    // Types, spécimens et dénombrement
662
    // Types, spécimens et dénombrement
660
    $radio = array('0', 'indéterminé', '1', 'non', '2', 'oui');
663
    $radio = array('0', 'indéterminé', '1', 'non', '2', 'oui');
661
    $form->radio('INCLUDED_TYPE', $radio, 'Y-a-t\'il des échantillons-types : ');
664
    $form->radio('INCLUDED_TYPE', $radio, 'Y-a-t\'il des échantillons-types : ');
662
    $form->addCommentaire('<b>Mode de conservation des spécimens :</b>');
665
    $form->addCommentaire('<b>Mode de conservation des spécimens :</b>');
663
    $form->checkboxFromTable('HERBIERS_COLLECTION par HERBIERS_ont_pres et HERBIERS_PRES', 'Cocher les cases : ', '','LIGNE', 'ID', 'ID_PRES', 'ID_PRES');
666
    $form->checkboxFromTable('HERBIERS_COLLECTION par HERBIERS_ont_pres et HERBIERS_PRES', 'Cocher les cases : ', '','LIGNE', 'ID', 'ID_PRES', 'ID_PRES');
664
    $form->addChamps('NUM_SPECIMENS', 'Nombre de spécimens : ');
667
    $form->addChamps('NUM_SPECIMENS', 'Nombre de spécimens : ');
665
    $form->radioFromTable('PREC_SPECIMENS par HERBIERS_DENOMBREMENT_CARAC_SP', '', 'Caractériser le dénombrement');
668
    $form->radioFromTable('PREC_SPECIMENS par HERBIERS_DENOMBREMENT_CARAC_SP', '', 'Caractériser le dénombrement');
666
    $form->addChamps('NUM_SPECIES', 'Nombre d\'espèces : ');
669
    $form->addChamps('NUM_SPECIES', 'Nombre d\'espèces : ');
667
    $form->radioFromTable('PREC_SPECIES par HERBIERS_DENOMBREMENT_CARAC_SC', '', 'Caractériser le dénombrement');
670
    $form->radioFromTable('PREC_SPECIES par HERBIERS_DENOMBREMENT_CARAC_SC', '', 'Caractériser le dénombrement');
668
    
671
    
669
    // État de la collection
672
    // État de la collection
670
    $form->addCommentaire('État de la collection : de 1 (= inconnu) à 4 (= excellent, parfait)');
673
    $form->addCommentaire('État de la collection : de 1 (= inconnu) à 4 (= excellent, parfait)');
671
    $form->radioEnum('ETAT_SPECIMENS', 'État des spécimens : ');
674
    $form->radioEnum('ETAT_SPECIMENS', 'État des spécimens : ');
672
    $form->radioEnum('ETAT_CLASSEMENT', 'État du classement : ');
675
    $form->radioEnum('ETAT_CLASSEMENT', 'État du classement : ');
673
    $form->radioEnum('ETAT_PRESENTATION', 'État de la présentation : ');
676
    $form->radioEnum('ETAT_PRESENTATION', 'État de la présentation : ');
674
    $form->addCommentaire('<br />');
677
    $form->addCommentaire('<br />');
675
    
678
    
676
    // Classement
679
    // Classement
677
    $form->addChamps('MODE_CLASSEMENT', 'Méthode de classement : ');
680
    $form->addChamps('MODE_CLASSEMENT', 'Méthode de classement : ');
678
    
681
    
679
    // Documentation
682
    // Documentation
680
    $form->addCommentaire(  '<h2>'.'Informations sur la documentation disponible :'.'</h2>'.
683
    $form->addCommentaire(  '<h2>'.'Informations sur la documentation disponible :'.'</h2>'.
681
                            '<ul>'."\n".
684
                            '<ul>'."\n".
682
                            '<li>'.'documents associés à la collection (publications directement liées comme Flores, '.
685
                            '<li>'.'documents associés à la collection (publications directement liées comme Flores, '.
683
                            'documents in&eacute;dits tels que dessins, aquarelles, carnets de notes de terrain...)'.'</li>'.
686
                            'documents in&eacute;dits tels que dessins, aquarelles, carnets de notes de terrain...)'.'</li>'.
684
                            '<li>'.'documents sur la collection ou les collecteurs (publications relatant '.
687
                            '<li>'.'documents sur la collection ou les collecteurs (publications relatant '.
685
                            'l\'acquisition, notices nécrologiques et/ou biographiques...)'.'</li>'.
688
                            'l\'acquisition, notices nécrologiques et/ou biographiques...)'.'</li>'.
686
                            '</ul>'."\n"
689
                            '</ul>'."\n"
687
                        );
690
                        );
688
    $form->addChamps('DOC_STATE', 'État de la documentation : ');
691
    $form->addChamps('DOC_STATE', 'État de la documentation : ');
689
    $form->addChamps('PERCENT_DATABASED', '% de la documentation en base de données : ');
692
    $form->addChamps('PERCENT_DATABASED', '% de la documentation en base de données : ');
690
    $form->addChamps('DATE_DERNIERE_MODIF', '', date('Y-m-j H:i:s', time()), $type = 'hidden');
693
	// Gestion des métadonnées
691
    $form->addChamps('CE_MODIFIER_PAR', '',  $un_herbier->utilisateur->getId(), $type = 'hidden');
694
	gererMetaForm(&$form, &$un_herbier); 
-
 
695
    
692
    
696
    
693
    if ($un_herbier->organisation->getId() != HBA_EXEMPLE_ID) {
697
    if ($un_herbier->organisation->getId() != HBA_EXEMPLE_ID) {
694
        $form->submit('Valider');
698
        $form->submit('Valider');
695
    }
699
    }
696
    $form->annuler('Annuler', sprintf($un_herbier->url_action_org, MOD_HERB, $un_herbier->organisation->getId()));
700
    $form->annuler('Annuler', sprintf($un_herbier->url_action_org, MOD_HERB, $un_herbier->organisation->getId()));
697
}
701
}
698
 
702
 
699
function nouveau_herb4(&$un_herbier)
703
function nouveau_herb4(&$un_herbier)
700
{
704
{
701
    $form = new formFromTable($GLOBALS['_HERBIER_']['bdd'], '');
705
    $form = new formFromTable($GLOBALS['_HERBIER_']['bdd'], '');
702
    $form = $form->acquerir('HERBIERS_COLLECTION');
706
    $form = $form->acquerir('HERBIERS_COLLECTION');
703
    $form->insertMySQL('PARENT_ID = '.$un_herbier->organisation->getId());
707
    $form->insertMySQL('PARENT_ID = '.$un_herbier->organisation->getId());
704
}
708
}
705
 
709
 
706
function mod_desc(&$un_herbier)
710
function mod_desc(&$un_herbier)
707
{
711
{
708
    // Intitialisation de variables
712
    // Intitialisation de variables
709
    $id_coll = $un_herbier->collection->getId();
713
    $id_coll = $un_herbier->collection->getId();
710
    $id_org = $un_herbier->organisation->getId();
714
    $id_org = $un_herbier->organisation->getId();
711
    
715
    
712
    // Création du formulaire de modification
716
    // Création du formulaire de modification
713
    $retour = '<h1>'.'Modification d\'une collection'.'</h1>'."\n";
717
    $retour = '<h1>'.'Modification d\'une collection'.'</h1>'."\n";
714
    $form = new formFromTable($GLOBALS['_HERBIER_']['bdd'], 'HERBIERS_COLLECTION', 'MOD', $id_coll, 'ID');
718
    $form = new formFromTable($GLOBALS['_HERBIER_']['bdd'], 'HERBIERS_COLLECTION', 'MOD', $id_coll, 'ID');
715
    form_herb_2($form, $un_herbier);
719
    form_herb_2($form, $un_herbier);
716
    $retour .= $form->printForm(sprintf($un_herbier->getUrlActionOrgColl(), MOD_DESC_V, $id_org, $id_coll));
720
    $retour .= $form->printForm(sprintf($un_herbier->getUrlActionOrgColl(), MOD_DESC_V, $id_org, $id_coll));
717
    $form->finalise('un_form');
721
    $form->finalise('un_form');
718
    
722
    
719
    return $retour;
723
    return $retour;
720
}
724
}
721
 
725
 
722
function mod_desc_v(&$un_herbier)
726
function mod_desc_v(&$un_herbier)
723
{
727
{
724
    // Intitialisation de variables
728
    // Intitialisation de variables
725
    $id_coll = $un_herbier->collection->getId();
729
    $id_coll = $un_herbier->collection->getId();
726
    
730
    
727
    // Insertion des infos après vérification
731
    // Insertion des infos après vérification
728
    $form = new formFromTable($GLOBALS['_HERBIER_']['bdd'], 'HERBIERS_COLLECTION');
732
    $form = new formFromTable($GLOBALS['_HERBIER_']['bdd'], 'HERBIERS_COLLECTION');
729
    $form = $form->acquerir('HERBIERS_COLLECTION');
733
    $form = $form->acquerir('HERBIERS_COLLECTION');
730
    $form->updateMySQL('ID', $id_coll);
734
    $form->updateMySQL('ID', $id_coll);
731
}
735
}
732
 
736
 
733
function suppr_coll(&$un_herbier, $id_coll_param = null)
737
function suppr_coll(&$un_herbier, $id_coll_param = null)
734
{
738
{
735
    // Initialisation de variables
739
    // Initialisation de variables
736
    // Si l'identifiant de la collection est passé comme argument de la fonction
740
    // Si l'identifiant de la collection est passé comme argument de la fonction
737
    if (!is_null($id_coll_param)) {
741
    if (!is_null($id_coll_param)) {
738
        $id_coll = $id_coll_param;
742
        $id_coll = $id_coll_param;
739
    } else {
743
    } else {
740
        $id_coll = $un_herbier->collection->getId();
744
        $id_coll = $un_herbier->collection->getId();
741
    }
745
    }
742
    
746
    
743
    $requete =  'DELETE FROM HERBIERS_COLLECTION '.
747
    $requete =  'DELETE FROM HERBIERS_COLLECTION '.
744
                'WHERE ID = '.$id_coll;
748
                'WHERE ID = '.$id_coll;
745
    mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
749
    mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
746
    $requete =  'SELECT ID_INDIC '.
750
    $requete =  'SELECT ID_INDIC '.
747
                'FROM HERBIERS_INDIC '.
751
                'FROM HERBIERS_INDIC '.
748
                'WHERE ID = '.$id_coll;
752
                'WHERE ID = '.$id_coll;
749
    $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
753
    $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
750
    while ($ligne = mysql_fetch_object($resultat)) {
754
    while ($ligne = mysql_fetch_object($resultat)) {
751
        suppr_note($un_herbier, $ligne->ID_INDIC);
755
        suppr_note($un_herbier, $ligne->ID_INDIC);
752
    }
756
    }
753
}
757
}
754
 
758
 
755
// +------------------------------------------------------------------------------------------------------+
759
// +------------------------------------------------------------------------------------------------------+
756
// GESTION des NOTES
760
// GESTION des NOTES
757
 
761
 
758
function liste_indic(&$un_herbier)
762
function liste_indic(&$un_herbier)
759
{
763
{
760
    // Initialisation des variables
764
    // Initialisation des variables
761
    $id_org = $un_herbier->organisation->getId();
765
    $id_org = $un_herbier->organisation->getId();
762
    $id_coll = $un_herbier->collection->getId();
766
    $id_coll = $un_herbier->collection->getId();
763
    
767
    
764
    $requete =  'SELECT ID_INDIC, TXT_INDIC '.
768
    $requete =  'SELECT ID_INDIC, TXT_INDIC '.
765
                'FROM HERBIERS_INDIC WHERE ID = '.$id_coll;
769
                'FROM HERBIERS_INDIC WHERE ID = '.$id_coll;
766
    $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
770
    $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
767
    
771
    
768
    $retour =   '<div class="hba_liste_note">'."\n".
772
    $retour =   '<div class="hba_liste_note">'."\n".
769
                '<table>'."\n";
773
                '<table>'."\n";
770
    $num_row = mysql_num_rows($resultat);
774
    $num_row = mysql_num_rows($resultat);
771
    $compteur = 0;
775
    $compteur = 0;
772
    while ($row = mysql_fetch_object($resultat)) {
776
    while ($row = mysql_fetch_object($resultat)) {
773
        $compteur++;
777
        $compteur++;
774
        $retour .= '<tr class="hb_arborescence"><td>';
778
        $retour .= '<tr class="hb_arborescence"><td>';
775
        if ($compteur == $num_row) {
779
        if ($compteur == $num_row) {
776
            $retour .= '<img src="'.HB_IMG_ARBO_FIN.'" alt="|_" />';
780
            $retour .= '<img src="'.HB_IMG_ARBO_FIN.'" alt="|_" />';
777
        } else {
781
        } else {
778
            $retour .= '<img src="'.HB_IMG_ARBO.'" alt="|-" />';
782
            $retour .= '<img src="'.HB_IMG_ARBO.'" alt="|-" />';
779
        }
783
        }
780
        $retour .= '</td><td>';
784
        $retour .= '</td><td>';
781
        if ($txt_court = raccourcirTexte($row->TXT_INDIC, HBA_LONGUEUR_NOTE_TXT)) {
785
        if ($txt_court = raccourcirTexte($row->TXT_INDIC, HBA_LONGUEUR_NOTE_TXT)) {
782
            $retour .= '<abbr title="'.$row->TXT_INDIC.'">'.$txt_court.'</abbr>';
786
            $retour .= '<abbr title="'.$row->TXT_INDIC.'">'.$txt_court.'</abbr>';
783
        } else {
787
        } else {
784
            $retour .= $row->TXT_INDIC;
788
            $retour .= $row->TXT_INDIC;
785
        }
789
        }
786
        $retour .= '</td>'."\n";
790
        $retour .= '</td>'."\n";
787
        $retour .= '<td><a href="'.
791
        $retour .= '<td><a href="'.
788
                    sprintf($un_herbier->getUrlActionOrgCollNote(), MOD_NOTE, $id_org, $id_coll, $row->ID_INDIC).
792
                    sprintf($un_herbier->getUrlActionOrgCollNote(), MOD_NOTE, $id_org, $id_coll, $row->ID_INDIC).
789
                    '">'.'modifier'.'</a></td>'."\n";
793
                    '">'.'modifier'.'</a></td>'."\n";
790
        if ($id_org != HBA_EXEMPLE_ID) {
794
        if ($id_org != HBA_EXEMPLE_ID) {
791
            $retour .=  '<td><a href="'.
795
            $retour .=  '<td><a href="'.
792
                        sprintf($un_herbier->getUrlActionOrgCollNote(), SUPPR_NOTE, $id_org, $id_coll, $row->ID_INDIC).'" '.
796
                        sprintf($un_herbier->getUrlActionOrgCollNote(), SUPPR_NOTE, $id_org, $id_coll, $row->ID_INDIC).'" '.
793
                        'onclick="javascript:return confirm(\''.'Êtes-vous sûr de vouloir supprimer cette note ?'.'\');"'.
797
                        'onclick="javascript:return confirm(\''.'Êtes-vous sûr de vouloir supprimer cette note ?'.'\');"'.
794
                        '>'.'supprimer'.'</a></td></tr>'."\n";
798
                        '>'.'supprimer'.'</a></td></tr>'."\n";
795
        }
799
        }
796
    }
800
    }
797
    $retour .= '</table>'."\n".'</div>'."\n";
801
    $retour .= '</table>'."\n".'</div>'."\n";
798
    return $retour;
802
    return $retour;
799
}
803
}
800
 
804
 
801
function nouv_indic(&$un_herbier)
805
function nouv_indic(&$un_herbier)
802
{
806
{
803
    // Initialisation des variables
807
    // Initialisation des variables
804
    $id_org = $un_herbier->organisation->getId();
808
    $id_org = $un_herbier->organisation->getId();
805
    $id_coll = $un_herbier->collection->getId();
809
    $id_coll = $un_herbier->collection->getId();
806
    
810
    
807
    $retour = '<h1>'.'Ajout d\'une note'.'</h1>'."\n";
811
    $retour = '<h1>'.'Ajout d\'une note'.'</h1>'."\n";
808
    $form = new formFromTable($GLOBALS['_HERBIER_']['bdd'], 'HERBIERS_INDIC');
812
    $form = new formFromTable($GLOBALS['_HERBIER_']['bdd'], 'HERBIERS_INDIC');
809
    form_indic($form, $un_herbier);
813
    form_indic($form, $un_herbier);
810
    $retour .= $form->printForm(sprintf($un_herbier->getUrlActionOrgColl(), NOUV_INDIC_V, $id_org, $id_coll));
814
    $retour .= $form->printForm(sprintf($un_herbier->getUrlActionOrgColl(), NOUV_INDIC_V, $id_org, $id_coll));
811
    $form->finalise('form_indic');
815
    $form->finalise('form_indic');
812
    return $retour;
816
    return $retour;
813
}
817
}
814
 
818
 
815
function form_indic(&$form, &$un_herbier)
819
function form_indic(&$form, &$un_herbier)
816
{
820
{
817
    // Initialisation des variables
821
    // Initialisation des variables
818
    $id_org = $un_herbier->organisation->getId();
822
    $id_org = $un_herbier->organisation->getId();
819
    $id_coll = $un_herbier->collection->getId();
823
    $id_coll = $un_herbier->collection->getId();
820
    
824
    
821
    // Définition des styles
825
    // Définition des styles
822
    $form->style_general = 'hba_formulaire';
826
    $form->style_general = 'hba_formulaire';
823
    $form->style_label = 'hba_label';
827
    $form->style_label = 'hba_label';
824
    $form->style_button = 'hba_bouton';
828
    $form->style_button = 'hba_bouton';
825
    $form->style_commentaire = 'hba_commentaire';
829
    $form->style_commentaire = 'hba_commentaire';
826
    $form->style_radiocheckbox = 'hba_radio';
830
    $form->style_radiocheckbox = 'hba_radio';
827
    
831
    
828
    $form->addChamps('TXT_INDIC', 'Texte de la note : ');
832
    $form->addChamps('TXT_INDIC', 'Texte de la note : ');
829
    $form->addChamps('REM_INDIC', 'Remarque : ');
833
    $form->addChamps('REM_INDIC', 'Remarque : ');
830
    $form->checkboxFromTable(   'HERBIERS_INDIC par HERBIERS_A_UN_TYPE et HERBIERS_TYPE', 
834
    $form->checkboxFromTable(   'HERBIERS_INDIC par HERBIERS_A_UN_TYPE et HERBIERS_TYPE', 
831
                                'Cocher les cases : ', '', 'LIGNE', 'ID_INDIC', 'ID_TYPE', 'ID_TYPE');
835
                                'Cocher les cases : ', '', 'LIGNE', 'ID_INDIC', 'ID_TYPE', 'ID_TYPE');
-
 
836
	
832
    $form->submit('Valider');
837
    $form->submit('Valider');
833
    $form->annuler('Annuler', sprintf($un_herbier->getUrlActionOrgColl(), HBA_ACTION_COLL_DEROULER, $id_org, $id_coll));
838
    $form->annuler('Annuler', sprintf($un_herbier->getUrlActionOrgColl(), HBA_ACTION_COLL_DEROULER, $id_org, $id_coll));
834
}
839
}
835
 
840
 
836
function nouv_indic_v(&$un_herbier)
841
function nouv_indic_v(&$un_herbier)
837
{
842
{
838
    // Initialisation des variables
843
    // Initialisation des variables
839
    $id_coll = $un_herbier->collection->getId();
844
    $id_coll = $un_herbier->collection->getId();
840
    $id_utilisateur = $un_herbier->utilisateur->getId();
845
    $id_utilisateur = $un_herbier->utilisateur->getId();
841
    
846
    
842
    $form = new formFromTable($GLOBALS['_HERBIER_']['bdd'], 'HERBIERS_INDIC');
847
    $form = new formFromTable($GLOBALS['_HERBIER_']['bdd'], 'HERBIERS_INDIC');
843
    $form = $form->acquerir('HERBIERS_INDIC');
848
    $form = $form->acquerir('HERBIERS_INDIC');
844
    $id_note = $form->insertMySQL('ID = '.$id_coll.', MAJ_INDIC = UNIX_TIMESTAMP()');
849
    $id_note = $form->insertMySQL('ID = '.$id_coll.', MAJ_INDIC = UNIX_TIMESTAMP()');
845
    
850
    
846
    // Insertion dans la table des historiques des indications
851
    // Insertion dans la table des historiques des indications
847
    $requete = 'INSERT INTO HERBIERS_INDIC_HISTORIQUE VALUES ("", '.$id_note.', UNIX_TIMESTAMP(), '.$id_utilisateur.' )';
852
    $requete = 'INSERT INTO HERBIERS_INDIC_HISTORIQUE VALUES ("", '.$id_note.', UNIX_TIMESTAMP(), '.$id_utilisateur.' )';
848
    mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
853
    mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
849
}
854
}
850
 
855
 
851
function mod_note(&$un_herbier)
856
function mod_note(&$un_herbier)
852
{
857
{
853
    // Initialisation des variables
858
    // Initialisation des variables
854
    $id_org = $un_herbier->organisation->getId();
859
    $id_org = $un_herbier->organisation->getId();
855
    $id_coll = $un_herbier->collection->getId();
860
    $id_coll = $un_herbier->collection->getId();
856
    $id_note = $un_herbier->note->getId();
861
    $id_note = $un_herbier->note->getId();
857
    
862
    
858
    $retour = '<h1>'.'Modification d\'une note'.'</h1>'."\n";
863
    $retour = '<h1>'.'Modification d\'une note'.'</h1>'."\n";
859
    $form = new formFromTable($GLOBALS['_HERBIER_']['bdd'], 'HERBIERS_INDIC', 'MOD', $id_note, 'ID_INDIC') ;
864
    $form = new formFromTable($GLOBALS['_HERBIER_']['bdd'], 'HERBIERS_INDIC', 'MOD', $id_note, 'ID_INDIC') ;
860
    form_indic($form, $un_herbier);
865
    form_indic($form, $un_herbier);
861
    $retour .= $form->printForm(sprintf($un_herbier->getUrlActionOrgCollNote(), MOD_NOTE_V, $id_org, $id_coll, $id_note));
866
    $retour .= $form->printForm(sprintf($un_herbier->getUrlActionOrgCollNote(), MOD_NOTE_V, $id_org, $id_coll, $id_note));
862
    $form->finalise('form_indic');
867
    $form->finalise('form_indic');
863
    return $retour;
868
    return $retour;
864
}
869
}
865
 
870
 
866
function mod_note_v(&$un_herbier)
871
function mod_note_v(&$un_herbier)
867
{
872
{
868
    // Initialisation des variables
873
    // Initialisation des variables
869
    $id_note = $un_herbier->note->getId();
874
    $id_note = $un_herbier->note->getId();
870
    $id_utilisateur = $un_herbier->utilisateur->getId();
875
    $id_utilisateur = $un_herbier->utilisateur->getId();
871
    
876
    
872
    $form = new formFromTable($GLOBALS['_HERBIER_']['bdd'], 'HERBIERS_INDIC');
877
    $form = new formFromTable($GLOBALS['_HERBIER_']['bdd'], 'HERBIERS_INDIC');
873
    $form = $form->acquerir('HERBIERS_INDIC');
878
    $form = $form->acquerir('HERBIERS_INDIC');
874
    $form->updateMySQL('ID_INDIC', $id_note, 'MAJ_INDIC = UNIX_TIMESTAMP()');
879
    $form->updateMySQL('ID_INDIC', $id_note, 'MAJ_INDIC = UNIX_TIMESTAMP()');
875
    // Insertion dans la table des historiques des indications
880
    // Insertion dans la table des historiques des indications
876
    $requete = 'INSERT INTO HERBIERS_INDIC_HISTORIQUE VALUES("", '.$id_note.', UNIX_TIMESTAMP(), '.$id_utilisateur.')';
881
    $requete = 'INSERT INTO HERBIERS_INDIC_HISTORIQUE VALUES("", '.$id_note.', UNIX_TIMESTAMP(), '.$id_utilisateur.')';
877
    mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
882
    mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
878
}
883
}
879
 
884
 
880
function suppr_note(&$un_herbier, $id_note_param = null)
885
function suppr_note(&$un_herbier, $id_note_param = null)
881
{
886
{
882
    // Initialisation de variables
887
    // Initialisation de variables
883
    // Si l'identifiant de la note est passé comme argument de la fonction
888
    // Si l'identifiant de la note est passé comme argument de la fonction
884
    if (!is_null($id_note_param)) {
889
    if (!is_null($id_note_param)) {
885
        $id_note = $id_note_param;
890
        $id_note = $id_note_param;
886
    } else {
891
    } else {
887
        $id_note = $un_herbier->note->getId();
892
        $id_note = $un_herbier->note->getId();
888
    }
893
    }
889
    
894
    
890
    $requete =  'DELETE FROM HERBIERS_INDIC '.
895
    $requete =  'DELETE FROM HERBIERS_INDIC '.
891
                'WHERE ID_INDIC = '.$id_note;
896
                'WHERE ID_INDIC = '.$id_note;
892
    mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
897
    mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
893
    
898
    
894
    $requete =  'DELETE FROM HERBIERS_A_UN_TYPE '.
899
    $requete =  'DELETE FROM HERBIERS_A_UN_TYPE '.
895
                'WHERE ID_INDIC = '.$id_note;
900
                'WHERE ID_INDIC = '.$id_note;
896
    mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
901
    mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
897
}
902
}
898
 
903
 
899
// +------------------------------------------------------------------------------------------------------+
904
// +------------------------------------------------------------------------------------------------------+
900
// GESTION des CORRESPONDANTS
905
// GESTION des CORRESPONDANTS
901
// renvoie le code html d'une liste de correspondant
906
// renvoie le code html d'une liste de correspondant
902
function liste_corr(&$un_herbier)
907
function liste_corr(&$un_herbier)
903
{
908
{
904
    // Initialisation de variables
909
    // Initialisation de variables
905
    $retour = '';
910
    $retour = '';
906
    $id_action = $un_herbier->getAction();
911
    $id_action = $un_herbier->getAction();
907
    
912
    
908
    $id_cor = null;
913
    $id_cor = null;
909
    if (is_object($un_herbier->getCorrespondant())) {
914
    if (is_object($un_herbier->getCorrespondant())) {
910
        $id_cor = $un_herbier->correspondant->getId();
915
        $id_cor = $un_herbier->correspondant->getId();
911
    }
916
    }
912
    
917
    
913
    $retour .= '<h1 class="hba_titre">'.'Liste des correspondants régionaux'.'</h1>'."\n";
918
    $retour .= '<h1 class="hba_titre">'.'Liste des correspondants régionaux'.'</h1>'."\n";
914
    
919
    
915
    $requete =  'SELECT '.HB_BDD_TAB_ANNUAIRE_CHP_ID.', '.HB_BDD_TAB_ANNUAIRE_CHP_NOM.', '.HB_BDD_TAB_ANNUAIRE_CHP_PRENOM.' '.
920
    $requete =  'SELECT '.HB_BDD_TAB_ANNUAIRE_CHP_ID.', '.HB_BDD_TAB_ANNUAIRE_CHP_NOM.', '.HB_BDD_TAB_ANNUAIRE_CHP_PRENOM.' '.
916
                'FROM '.HB_BDD_TAB_ANNUAIRE.', '.HB_BDD_NOM.'.EFLORE_DROIT_POSSEDER '.
921
                'FROM '.HB_BDD_TAB_ANNUAIRE.', '.HB_BDD_NOM.'.EFLORE_DROIT_POSSEDER '.
917
                'WHERE '.HB_BDD_TAB_ANNUAIRE_CHP_ID.' = EDP_ID_UTILISATEUR '.
922
                'WHERE '.HB_BDD_TAB_ANNUAIRE_CHP_ID.' = EDP_ID_UTILISATEUR '.
918
                'ORDER BY '.HB_BDD_TAB_ANNUAIRE_CHP_NOM.' ASC';
923
                'ORDER BY '.HB_BDD_TAB_ANNUAIRE_CHP_NOM.' ASC';
919
    $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
924
    $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
920
    if (mysql_num_rows($resultat) == 0) {
925
    if (mysql_num_rows($resultat) == 0) {
921
        $retour .= '<p class="hba_attention">'.'Aucun correspondant inscrit !'.'</p>'."\n";
926
        $retour .= '<p class="hba_attention">'.'Aucun correspondant inscrit !'.'</p>'."\n";
922
        return $retour;
927
        return $retour;
923
    }
928
    }
924
    
929
    
925
    $liste_inst = '';
930
    $liste_inst = '';
926
    $retour .=  '<div class="hba_liste_correspondant">'."\n".
931
    $retour .=  '<div class="hba_liste_correspondant">'."\n".
927
                '<table>'."\n".
932
                '<table>'."\n".
928
                '<thead><tr><th colspan="2">'.'Nom'.'</th><th>'.'Prénom'.'</th><th colspan="2">'.'Actions'.'</th></tr></thead>'."\n".
933
                '<thead><tr><th colspan="2">'.'Nom'.'</th><th>'.'Prénom'.'</th><th colspan="2">'.'Actions'.'</th></tr></thead>'."\n".
929
                '<tbody>'."\n";
934
                '<tbody>'."\n";
930
    while ($ligne = mysql_fetch_object($resultat)) {
935
    while ($ligne = mysql_fetch_object($resultat)) {
931
        // Recherche des institutions dont ils ont la responsabilité
936
        // Recherche des institutions dont ils ont la responsabilité
932
        $requete_inst = 'SELECT INSTITUTION_NAME '.
937
        $requete_inst = 'SELECT INSTITUTION_NAME '.
933
                        'FROM '.HB_BDD_NOM.'.HERBIERS_ORGANISATION, '.HB_BDD_NOM.'.HERBIERS_ADMINISTRER '.
938
                        'FROM '.HB_BDD_NOM.'.HERBIERS_ORGANISATION, '.HB_BDD_NOM.'.HERBIERS_ADMINISTRER '.
934
                        'WHERE HA_ID_ANNUAIRE = '.$ligne->U_ID.' '.
939
                        'WHERE HA_ID_ANNUAIRE = '.$ligne->U_ID.' '.
935
                        'AND HA_ID_ORG = ID_ORG '.
940
                        'AND HA_ID_ORG = ID_ORG '.
936
                        'ORDER BY INSTITUTION_NAME ASC';
941
                        'ORDER BY INSTITUTION_NAME ASC';
937
        $resultat_inst = mysql_query($requete_inst) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete_inst));
942
        $resultat_inst = mysql_query($requete_inst) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete_inst));
938
        
943
        
939
        $retour .=  '<tr class="'.color_alterne(&$flag).'"><td id="hba_correspondant_'.$ligne->U_ID.'" class="hb_plier_deplier">';
944
        $retour .=  '<tr class="'.color_alterne(&$flag).'"><td id="hba_correspondant_'.$ligne->U_ID.'" class="hb_plier_deplier">';
940
        if (mysql_num_rows($resultat_inst) > 0) {
945
        if (mysql_num_rows($resultat_inst) > 0) {
941
            $nbre_ligne = mysql_num_rows($resultat_inst);
946
            $nbre_ligne = mysql_num_rows($resultat_inst);
942
            $compteur = 0;
947
            $compteur = 0;
943
            $liste_inst = '<table>'."\n";
948
            $liste_inst = '<table>'."\n";
944
            while ($ligne_inst = mysql_fetch_object($resultat_inst)) {
949
            while ($ligne_inst = mysql_fetch_object($resultat_inst)) {
945
                $compteur++;
950
                $compteur++;
946
                $liste_inst .= '<tr class="hb_arborescence"><td>';
951
                $liste_inst .= '<tr class="hb_arborescence"><td>';
947
                if ($compteur == $nbre_ligne) {
952
                if ($compteur == $nbre_ligne) {
948
                    $liste_inst .= '<img src="'.HB_IMG_ARBO_FIN.'" alt="|_" />';
953
                    $liste_inst .= '<img src="'.HB_IMG_ARBO_FIN.'" alt="|_" />';
949
                } else {
954
                } else {
950
                    $liste_inst .= '<img src="'.HB_IMG_ARBO.'" alt="|-" />';
955
                    $liste_inst .= '<img src="'.HB_IMG_ARBO.'" alt="|-" />';
951
                }
956
                }
952
                $liste_inst .= '</td><td>'.$ligne_inst->INSTITUTION_NAME.'</td></tr>'."\n";
957
                $liste_inst .= '</td><td>'.$ligne_inst->INSTITUTION_NAME.'</td></tr>'."\n";
953
            }
958
            }
954
            $liste_inst .= '</table>'."\n";
959
            $liste_inst .= '</table>'."\n";
955
            $xhtml_fermer = '<a href="'.sprintf($un_herbier->getUrlActionCor(), HBA_ACTION_ANNULER, $ligne->U_ID, $ligne->U_ID).'">'."\n".
960
            $xhtml_fermer = '<a href="'.sprintf($un_herbier->getUrlActionCor(), HBA_ACTION_ANNULER, $ligne->U_ID, $ligne->U_ID).'">'."\n".
956
                            '<img class="'.HB_CLASS_IMG_FERMER.'" src="'.HB_IMG_FERMER.'" alt="fermer" />'."\n".
961
                            '<img class="'.HB_CLASS_IMG_FERMER.'" src="'.HB_IMG_FERMER.'" alt="fermer" />'."\n".
957
                            '</a>'."\n";
962
                            '</a>'."\n";
958
            $xhtml_ouvrir = '<a href="'.sprintf($un_herbier->getUrlActionCor(), HBA_ACTION_COR_DEROULER, $ligne->U_ID, $ligne->U_ID).'">'."\n".
963
            $xhtml_ouvrir = '<a href="'.sprintf($un_herbier->getUrlActionCor(), HBA_ACTION_COR_DEROULER, $ligne->U_ID, $ligne->U_ID).'">'."\n".
959
                            '<img class="'.HB_CLASS_IMG_ICONE.'" src="'.HB_IMG_OUVRIR.'" alt="dérouler" />'."\n".
964
                            '<img class="'.HB_CLASS_IMG_ICONE.'" src="'.HB_IMG_OUVRIR.'" alt="dérouler" />'."\n".
960
                            '</a>'."\n";
965
                            '</a>'."\n";
961
            if ($id_cor == $ligne->U_ID) {
966
            if ($id_cor == $ligne->U_ID) {
962
                switch ($id_action) {
967
                switch ($id_action) {
963
                    case HBA_ACTION_COR_DEROULER :
968
                    case HBA_ACTION_COR_DEROULER :
964
                        $retour .= $xhtml_fermer;
969
                        $retour .= $xhtml_fermer;
965
                    break;
970
                    break;
966
                    default :
971
                    default :
967
                        $retour .= $xhtml_ouvrir;
972
                        $retour .= $xhtml_ouvrir;
968
                }
973
                }
969
            } else {
974
            } else {
970
                $retour .= $xhtml_ouvrir;
975
                $retour .= $xhtml_ouvrir;
971
            }
976
            }
972
        } else {
977
        } else {
973
            $retour .= '&nbsp;';
978
            $retour .= '&nbsp;';
974
        }
979
        }
975
        $retour .= '</td>';
980
        $retour .= '</td>';
976
        $retour .= '<td>'.$ligne->U_NAME.'</td>';
981
        $retour .= '<td>'.$ligne->U_NAME.'</td>';
977
        $retour .= '<td>'.$ligne->U_SURNAME.'</td>';
982
        $retour .= '<td>'.$ligne->U_SURNAME.'</td>';
978
        $retour .=  '<td><a href="'.sprintf($un_herbier->getUrlActionCor(), SUPPR_CORR, $ligne->U_ID, $ligne->U_ID).'" '.
983
        $retour .=  '<td><a href="'.sprintf($un_herbier->getUrlActionCor(), SUPPR_CORR, $ligne->U_ID, $ligne->U_ID).'" '.
979
                    'onclick="javascript:return confirm(\''.'Êtes-vous sûr de vouloir supprimer ce correspondant ?'.'\');"'.
984
                    'onclick="javascript:return confirm(\''.'Êtes-vous sûr de vouloir supprimer ce correspondant ?'.'\');"'.
980
                    '>'.'supprimer'.'</a></td></tr>'."\n";
985
                    '>'.'supprimer'.'</a></td></tr>'."\n";
981
        
986
        
982
        switch ($id_action) {
987
        switch ($id_action) {
983
            case HBA_ACTION_COR_DEROULER :
988
            case HBA_ACTION_COR_DEROULER :
984
                if ($id_cor == $ligne->U_ID) {
989
                if ($id_cor == $ligne->U_ID) {
985
                    $retour .= '<tr class="hba_liste_organisation"><td colspan="4">'.$liste_inst.'</td></tr>'."\n";
990
                    $retour .= '<tr class="hba_liste_organisation"><td colspan="4">'.$liste_inst.'</td></tr>'."\n";
986
                }
991
                }
987
                break;
992
                break;
988
        }
993
        }
989
    }
994
    }
990
    $retour .= '</tbody>'."\n".'</table>'."\n".'</div>'."\n";
995
    $retour .= '</tbody>'."\n".'</table>'."\n".'</div>'."\n";
991
    return $retour;
996
    return $retour;
992
}
997
}
993
 
998
 
994
function nouveau_corr_v(&$un_herbier)
999
function nouveau_corr_v(&$un_herbier)
995
{
1000
{
996
    $id_cor = $un_herbier->correspondant->getId();
1001
    $id_cor = $un_herbier->correspondant->getId();
997
    
1002
    
998
    $requete =  'SELECT EDP_ID_DROIT '.
1003
    $requete =  'SELECT EDP_ID_DROIT '.
999
                'FROM EFLORE_DROIT_POSSEDER '.
1004
                'FROM EFLORE_DROIT_POSSEDER '.
1000
                'WHERE EDP_ID_UTILISATEUR = '.$id_cor.' '.
1005
                'WHERE EDP_ID_UTILISATEUR = '.$id_cor.' '.
1001
                'AND EDP_ID_PROJET = 1 '.
1006
                'AND EDP_ID_PROJET = 1 '.
1002
                'AND EDP_ID_DROIT < 3';
1007
                'AND EDP_ID_DROIT < 3';
1003
    $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
1008
    $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
1004
    if (mysql_num_rows($resultat) == 0) {
1009
    if (mysql_num_rows($resultat) == 0) {
1005
        $requete =  'INSERT INTO EFLORE_DROIT_POSSEDER '.
1010
        $requete =  'INSERT INTO EFLORE_DROIT_POSSEDER '.
1006
                    'SET EDP_ID_DROIT = 2, EDP_ID_PROJET = 1, EDP_ID_UTILISATEUR = '.$id_cor;
1011
                    'SET EDP_ID_DROIT = 2, EDP_ID_PROJET = 1, EDP_ID_UTILISATEUR = '.$id_cor;
1007
        mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
1012
        mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
1008
        $retour = '<p class="hba_information">'.'Le correspondant a été ajouté'.'</p>'."\n";
1013
        $retour = '<p class="hba_information">'.'Le correspondant a été ajouté'.'</p>'."\n";
1009
    } else {
1014
    } else {
1010
        $retour = '<p class="hba_attention">'.'L\'utilisateur est déjà inscrit comme correspondant régional'.'</p>'."\n";
1015
        $retour = '<p class="hba_attention">'.'L\'utilisateur est déjà inscrit comme correspondant régional'.'</p>'."\n";
1011
    }
1016
    }
1012
    return $retour;
1017
    return $retour;
1013
}
1018
}
1014
 
1019
 
1015
function suppr_corr(&$un_herbier)
1020
function suppr_corr(&$un_herbier)
1016
{
1021
{
1017
    // Initialisation des variables
1022
    // Initialisation des variables
1018
    $id_cor = $un_herbier->correspondant->getId();
1023
    $id_cor = $un_herbier->correspondant->getId();
1019
    
1024
    
1020
    $requete =  'SELECT EDP_ID_UTILISATEUR '.
1025
    $requete =  'SELECT EDP_ID_UTILISATEUR '.
1021
                'FROM EFLORE_DROIT_POSSEDER '.
1026
                'FROM EFLORE_DROIT_POSSEDER '.
1022
                'WHERE EDP_ID_PROJET = 1 '.
1027
                'WHERE EDP_ID_PROJET = 1 '.
1023
                'AND EDP_ID_UTILISATEUR = '.$id_cor;
1028
                'AND EDP_ID_UTILISATEUR = '.$id_cor;
1024
    $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
1029
    $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
1025
    if (mysql_num_rows($resultat) != 0) {
1030
    if (mysql_num_rows($resultat) != 0) {
1026
        $requete =  'DELETE FROM EFLORE_DROIT_POSSEDER '.
1031
        $requete =  'DELETE FROM EFLORE_DROIT_POSSEDER '.
1027
                    'WHERE EDP_ID_UTILISATEUR = '.$id_cor.' '.
1032
                    'WHERE EDP_ID_UTILISATEUR = '.$id_cor.' '.
1028
                    'AND EDP_ID_PROJET = 1';
1033
                    'AND EDP_ID_PROJET = 1';
1029
        mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
1034
        mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
1030
        $retour = '<p class="hba_information">'.'Le correspondant a été supprimé de la base'.'</p>'."\n";
1035
        $retour = '<p class="hba_information">'.'Le correspondant a été supprimé de la base'.'</p>'."\n";
1031
    } else {
1036
    } else {
1032
        $retour = '<p class="hba_attention">'.'L\'utilisateur n\'était pas un correspondant régional'.'</p>'."\n";
1037
        $retour = '<p class="hba_attention">'.'L\'utilisateur n\'était pas un correspondant régional'.'</p>'."\n";
1033
    }
1038
    }
1034
    return $retour;
1039
    return $retour;
1035
}
1040
}
1036
 
1041
 
1037
// +------------------------------------------------------------------------------------------------------+
1042
// +------------------------------------------------------------------------------------------------------+
1038
// GESTION des RÉDACTEURS
1043
// GESTION des RÉDACTEURS
1039
 
1044
 
1040
// renvoie le code html d'une liste de rédacteur
1045
// renvoie le code html d'une liste de rédacteur
1041
function liste_red(&$un_herbier)
1046
function liste_red(&$un_herbier)
1042
{
1047
{
1043
    $retour = '';
1048
    $retour = '';
1044
    $retour .= '<h1 class="hba_titre">'.'Liste de vos rédacteurs'.'</h1>'."\n";
1049
    $retour .= '<h1 class="hba_titre">'.'Liste de vos rédacteurs'.'</h1>'."\n";
1045
    
1050
    
1046
    $requete =  'SELECT '.HB_BDD_TAB_ANNUAIRE_CHP_ID.', '.HB_BDD_TAB_ANNUAIRE_CHP_NOM.', '.HB_BDD_TAB_ANNUAIRE_CHP_PRENOM.' '.
1051
    $requete =  'SELECT '.HB_BDD_TAB_ANNUAIRE_CHP_ID.', '.HB_BDD_TAB_ANNUAIRE_CHP_NOM.', '.HB_BDD_TAB_ANNUAIRE_CHP_PRENOM.' '.
1047
                'FROM '.HB_BDD_TAB_ANNUAIRE.', '.HB_BDD_NOM.'.HERBIERS_COORDONNE '.
1052
                'FROM '.HB_BDD_TAB_ANNUAIRE.', '.HB_BDD_NOM.'.HERBIERS_COORDONNE '.
1048
                'WHERE '.HB_BDD_TAB_ANNUAIRE_CHP_ID.' = HC_ID_REDACTEUR '.
1053
                'WHERE '.HB_BDD_TAB_ANNUAIRE_CHP_ID.' = HC_ID_REDACTEUR '.
1049
                'AND HC_ID_COORDINATEUR = '.$un_herbier->utilisateur->getId();
1054
                'AND HC_ID_COORDINATEUR = '.$un_herbier->utilisateur->getId();
1050
    $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
1055
    $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
1051
    if (mysql_num_rows($resultat) == 0) {
1056
    if (mysql_num_rows($resultat) == 0) {
1052
        $retour .= '<p class="hba_attention">'.'Aucun rédacteur inscrit !'.'</p>'."\n";
1057
        $retour .= '<p class="hba_attention">'.'Aucun rédacteur inscrit !'.'</p>'."\n";
1053
        return $retour;
1058
        return $retour;
1054
    }
1059
    }
1055
    $retour .=  '<div class="hba_liste_redacteur">'."\n".
1060
    $retour .=  '<div class="hba_liste_redacteur">'."\n".
1056
                '<table>';
1061
                '<table>';
1057
    while ($ligne = mysql_fetch_object($resultat)) {
1062
    while ($ligne = mysql_fetch_object($resultat)) {
1058
        $retour .=  '<tr class="'.color_alterne(&$flag).'"><td class="hb_plier_deplier">';
1063
        $retour .=  '<tr class="'.color_alterne(&$flag).'"><td class="hb_plier_deplier">';
1059
        /*
1064
        /*
1060
        if (mysql_num_rows($resultat_indic) > 0) {
1065
        if (mysql_num_rows($resultat_indic) > 0) {
1061
            $xhtml_fermer = '<a href="'.sprintf($un_herbier->getUrlActionOrgColl(), MOD_HERB, $id_org, $ligne->ID).'">'."\n".
1066
            $xhtml_fermer = '<a href="'.sprintf($un_herbier->getUrlActionOrgColl(), MOD_HERB, $id_org, $ligne->ID).'">'."\n".
1062
                            '<img class="'.HB_CLASS_IMG_FERMER.'" src="'.HB_IMG_FERMER.'" alt="fermer" />'."\n".
1067
                            '<img class="'.HB_CLASS_IMG_FERMER.'" src="'.HB_IMG_FERMER.'" alt="fermer" />'."\n".
1063
                            '</a>'."\n";
1068
                            '</a>'."\n";
1064
            $xhtml_ouvrir = '<a href="'.sprintf($un_herbier->getUrlActionOrgColl(), HBA_ACTION_RED_DEROULER, $id_org, $ligne->ID).'">'."\n".
1069
            $xhtml_ouvrir = '<a href="'.sprintf($un_herbier->getUrlActionOrgColl(), HBA_ACTION_RED_DEROULER, $id_org, $ligne->ID).'">'."\n".
1065
                            '<img class="'.HB_CLASS_IMG_ICONE.'" src="'.HB_IMG_OUVRIR.'" alt="dérouler" />'."\n".
1070
                            '<img class="'.HB_CLASS_IMG_ICONE.'" src="'.HB_IMG_OUVRIR.'" alt="dérouler" />'."\n".
1066
                            '</a>'."\n";
1071
                            '</a>'."\n";
1067
            if ($id_coll == $ligne->ID) {
1072
            if ($id_coll == $ligne->ID) {
1068
                switch ($id_action) {
1073
                switch ($id_action) {
1069
                    case HBA_ACTION_RED_DEROULER :
1074
                    case HBA_ACTION_RED_DEROULER :
1070
                        $retour .= $xhtml_fermer;
1075
                        $retour .= $xhtml_fermer;
1071
                    break;
1076
                    break;
1072
                    default :
1077
                    default :
1073
                        $retour .= $xhtml_ouvrir;
1078
                        $retour .= $xhtml_ouvrir;
1074
                }
1079
                }
1075
            } else {
1080
            } else {
1076
                $retour .= $xhtml_ouvrir;
1081
                $retour .= $xhtml_ouvrir;
1077
            }
1082
            }
1078
        }
1083
        }
1079
        */
1084
        */
1080
        $retour .=  '</td><td>'.$ligne->U_NAME.'</td>'.
1085
        $retour .=  '</td><td>'.$ligne->U_NAME.'</td>'.
1081
                    '<td>'.$ligne->U_SURNAME.'</td>'."\n".
1086
                    '<td>'.$ligne->U_SURNAME.'</td>'."\n".
1082
                    '<td><a href="'.sprintf($un_herbier->getUrlActionRed(), SUPPR_RED, $ligne->U_ID).'" '.
1087
                    '<td><a href="'.sprintf($un_herbier->getUrlActionRed(), SUPPR_RED, $ligne->U_ID).'" '.
1083
                    'onclick="javascript:return confirm(\''.'Êtes-vous sûr de vouloir supprimer ce rédacteur ?'.'\');">'.
1088
                    'onclick="javascript:return confirm(\''.'Êtes-vous sûr de vouloir supprimer ce rédacteur ?'.'\');">'.
1084
                    'supprimer'.
1089
                    'supprimer'.
1085
                    '</a></td>'.
1090
                    '</a></td>'.
1086
                    '</tr>'."\n";
1091
                    '</tr>'."\n";
1087
    }
1092
    }
1088
    $retour .= '</table>'."\n".'</div>'."\n";
1093
    $retour .= '</table>'."\n".'</div>'."\n";
1089
    
1094
    
1090
    return $retour;
1095
    return $retour;
1091
}
1096
}
1092
 
1097
 
1093
function nouveau_red_v(&$un_herbier)
1098
function nouveau_red_v(&$un_herbier)
1094
{
1099
{
1095
    $id_red = $un_herbier->redacteur->getId();
1100
    $id_red = $un_herbier->redacteur->getId();
1096
    $id_utilisateur = $un_herbier->utilisateur->getId();
1101
    $id_utilisateur = $un_herbier->utilisateur->getId();
1097
    
1102
    
1098
    $requete =  'SELECT HERBIERS_COORDONNE.HC_ID_REDACTEUR '.
1103
    $requete =  'SELECT HERBIERS_COORDONNE.HC_ID_REDACTEUR '.
1099
                'FROM HERBIERS_COORDONNE, EFLORE_DROIT_POSSEDER '.
1104
                'FROM HERBIERS_COORDONNE, EFLORE_DROIT_POSSEDER '.
1100
                'WHERE HC_ID_REDACTEUR = '.$id_red.' '.
1105
                'WHERE HC_ID_REDACTEUR = '.$id_red.' '.
1101
                'AND HC_ID_COORDINATEUR = EDP_ID_UTILISATEUR '.
1106
                'AND HC_ID_COORDINATEUR = EDP_ID_UTILISATEUR '.
1102
                'AND EFLORE_DROIT_POSSEDER.EDP_ID_UTILISATEUR = '.$id_utilisateur.' '.
1107
                'AND EFLORE_DROIT_POSSEDER.EDP_ID_UTILISATEUR = '.$id_utilisateur.' '.
1103
                'AND EFLORE_DROIT_POSSEDER.EDP_ID_DROIT < 3 '.
1108
                'AND EFLORE_DROIT_POSSEDER.EDP_ID_DROIT < 3 '.
1104
                'AND EFLORE_DROIT_POSSEDER.EDP_ID_PROJET = 1';
1109
                'AND EFLORE_DROIT_POSSEDER.EDP_ID_PROJET = 1';
1105
    $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
1110
    $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
1106
    if (mysql_num_rows($resultat) == 0) {
1111
    if (mysql_num_rows($resultat) == 0) {
1107
        $requete =  'INSERT INTO HERBIERS_COORDONNE '.
1112
        $requete =  'INSERT INTO HERBIERS_COORDONNE '.
1108
                    'SET HC_ID_REDACTEUR = '.$id_red.', HC_ID_COORDINATEUR = '.$id_utilisateur;
1113
                    'SET HC_ID_REDACTEUR = '.$id_red.', HC_ID_COORDINATEUR = '.$id_utilisateur;
1109
        mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
1114
        mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
1110
        
1115
        
1111
        // Insertion du rédacteur dans EFLORE_DROIT_POSSEDER, s'il n'y est pas déjà
1116
        // Insertion du rédacteur dans EFLORE_DROIT_POSSEDER, s'il n'y est pas déjà
1112
        $requete =  'SELECT * '.
1117
        $requete =  'SELECT * '.
1113
                    'FROM EFLORE_DROIT_POSSEDER '.
1118
                    'FROM EFLORE_DROIT_POSSEDER '.
1114
                    'WHERE EDP_ID_PROJET = 1 '.
1119
                    'WHERE EDP_ID_PROJET = 1 '.
1115
                    'AND EDP_ID_UTILISATEUR = '.$id_red;
1120
                    'AND EDP_ID_UTILISATEUR = '.$id_red;
1116
        $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
1121
        $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
1117
        
1122
        
1118
        // Si le rédacteur n'existe pas on l'insere avec le droit 3 (modération ou ici rédacteur)
1123
        // Si le rédacteur n'existe pas on l'insere avec le droit 3 (modération ou ici rédacteur)
1119
        if (mysql_num_rows($resultat) == 0) {
1124
        if (mysql_num_rows($resultat) == 0) {
1120
            $requete =  'INSERT INTO EFLORE_DROIT_POSSEDER '.
1125
            $requete =  'INSERT INTO EFLORE_DROIT_POSSEDER '.
1121
                        'SET EDP_ID_DROIT = 3, EDP_ID_PROJET = 1, EDP_ID_UTILISATEUR = '.$id_red;
1126
                        'SET EDP_ID_DROIT = 3, EDP_ID_PROJET = 1, EDP_ID_UTILISATEUR = '.$id_red;
1122
            mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
1127
            mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
1123
        }
1128
        }
1124
        $retour = '<p class="hba_information">'.'Le correspondant a été ajouté'.'</p>'."\n";
1129
        $retour = '<p class="hba_information">'.'Le correspondant a été ajouté'.'</p>'."\n";
1125
    } else {
1130
    } else {
1126
        $retour = '<p class="hba_attention">'.'L\'utilisateur est déjà inscrit comme rédacteur'.'</p>'."\n";
1131
        $retour = '<p class="hba_attention">'.'L\'utilisateur est déjà inscrit comme rédacteur'.'</p>'."\n";
1127
    }
1132
    }
1128
    return $retour;
1133
    return $retour;
1129
}
1134
}
1130
 
1135
 
1131
function suppr_red(&$un_herbier)
1136
function suppr_red(&$un_herbier)
1132
{
1137
{
1133
    // Initialisation des variables
1138
    // Initialisation des variables
1134
    $id_red = $un_herbier->redacteur->getId();
1139
    $id_red = $un_herbier->redacteur->getId();
1135
    $id_utilisateur = $un_herbier->utilisateur->getId();
1140
    $id_utilisateur = $un_herbier->utilisateur->getId();
1136
    
1141
    
1137
    $requete =  'SELECT EDP_ID_UTILISATEUR '.
1142
    $requete =  'SELECT EDP_ID_UTILISATEUR '.
1138
                'FROM EFLORE_DROIT_POSSEDER '.
1143
                'FROM EFLORE_DROIT_POSSEDER '.
1139
                'WHERE EDP_ID_PROJET = 1 '.
1144
                'WHERE EDP_ID_PROJET = 1 '.
1140
                'AND EDP_ID_UTILISATEUR = '.$id_red.' '.
1145
                'AND EDP_ID_UTILISATEUR = '.$id_red.' '.
1141
                'AND EDP_ID_DROIT = 3';
1146
                'AND EDP_ID_DROIT = 3';
1142
    $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
1147
    $resultat = mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
1143
    if (mysql_num_rows($resultat) != 0) {
1148
    if (mysql_num_rows($resultat) != 0) {
1144
        $requete =  'DELETE FROM EFLORE_DROIT_POSSEDER '.
1149
        $requete =  'DELETE FROM EFLORE_DROIT_POSSEDER '.
1145
                    'WHERE EDP_ID_UTILISATEUR = '.$id_red.' '.
1150
                    'WHERE EDP_ID_UTILISATEUR = '.$id_red.' '.
1146
                    'AND EDP_ID_PROJET = 1';
1151
                    'AND EDP_ID_PROJET = 1';
1147
        mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
1152
        mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
1148
        $requete =  'DELETE FROM HERBIERS_COORDONNE '.
1153
        $requete =  'DELETE FROM HERBIERS_COORDONNE '.
1149
                    'WHERE HC_ID_REDACTEUR = '.$id_red;
1154
                    'WHERE HC_ID_REDACTEUR = '.$id_red;
1150
        mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
1155
        mysql_query($requete) or die(BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $requete));
1151
        $retour = '<p class="hba_information">'.'Le rédacteur a été supprimé de la base'.'</p>'."\n";
1156
        $retour = '<p class="hba_information">'.'Le rédacteur a été supprimé de la base'.'</p>'."\n";
1152
    } else {
1157
    } else {
1153
        $retour = '<p class="hba_attention">'.'L\'utilisateur n\'était pas un rédacteur'.'</p>'."\n";
1158
        $retour = '<p class="hba_attention">'.'L\'utilisateur n\'était pas un rédacteur'.'</p>'."\n";
1154
    }
1159
    }
1155
    return $retour;
1160
    return $retour;
1156
}
1161
}
1157
 
1162
 
1158
// +------------------------------------------------------------------------------------------------------+
1163
// +------------------------------------------------------------------------------------------------------+
1159
// GESTION des AIDES
1164
// GESTION des AIDES
1160
 
1165
 
1161
function fournirAideInscription()
1166
function fournirAideInscription()
1162
{
1167
{
1163
    $retour =  '<h1>'.'Interface d\'administration de la base de données des herbiers de France'.'</h1>'."\n".
1168
    $retour =  '<h1>'.'Interface d\'administration de la base de données des herbiers de France'.'</h1>'."\n".
1164
                '<p class="hba_aide">'.
1169
                '<p class="hba_aide">'.
1165
                'Vous n\'êtes pas inscrit comme '.'<strong>'.'correspondant régional'.'</strong>'.' ou '.
1170
                'Vous n\'êtes pas inscrit comme '.'<strong>'.'correspondant régional'.'</strong>'.' ou '.
1166
                '<strong>'.'rédacteur'.'</strong>'.'. '.'<br />'.
1171
                '<strong>'.'rédacteur'.'</strong>'.'. '.'<br />'.
1167
                'Si vous souhaitez participer activement au projet d\'inventaire des herbiers de France, vous '.
1172
                'Si vous souhaitez participer activement au projet d\'inventaire des herbiers de France, vous '.
1168
                'pouvez envoyer un courriel à :'.
1173
                'pouvez envoyer un courriel à :'.
1169
                '</p>'."\n".
1174
                '</p>'."\n".
1170
                '<ul class="hba_aide">'."\n".
1175
                '<ul class="hba_aide">'."\n".
1171
                '<li><a href="mailto:mathezf@wanadoo.fr">'.'Joël MATHEZ'.'</a>'.' ou à '.
1176
                '<li><a href="mailto:mathezf@wanadoo.fr">'.'Joël MATHEZ'.'</a>'.' ou à '.
1172
                '<a href="mailto:pasch@isem.univ-montp2.fr">'.'P.A. Schäfer'.'</a>'.
1177
                '<a href="mailto:pasch@isem.univ-montp2.fr">'.'P.A. Schäfer'.'</a>'.
1173
                ' : pour des questions sur le contenu'.'</li>'."\n".
1178
                ' : pour des questions sur le contenu'.'</li>'."\n".
1174
                '<li><a href="mailto:jpm@tela-botanica.org">'.'Jean-Pascal MILCENT'.'</a>'.
1179
                '<li><a href="mailto:jpm@tela-botanica.org">'.'Jean-Pascal MILCENT'.'</a>'.
1175
                ' : pour obtenir un droit d\'accès'.'</li>'."\n".
1180
                ' : pour obtenir un droit d\'accès'.'</li>'."\n".
1176
                '</ul>'."\n";
1181
                '</ul>'."\n";
1177
    return $retour;
1182
    return $retour;
1178
}
1183
}
1179
 
1184
 
1180
function fournirAideAccueil()
1185
function fournirAideAccueil()
1181
{
1186
{
1182
    $retour =   '<p class="hba_aide">'.
1187
    $retour =   '<p class="hba_aide">'.
1183
                'Vous devriez voir, ci-contre, un "cartouche" contenant des '.'<emphasis>'.'informations'.'</emphasis>'.
1188
                'Vous devriez voir, ci-contre, un "cartouche" contenant des '.'<emphasis>'.'informations'.'</emphasis>'.
1184
                ' sur votre compte utilisateur (nom, droit d\'accès...)'.
1189
                ' sur votre compte utilisateur (nom, droit d\'accès...)'.
1185
                'ainsi qu\'un '.'<emphasis>'.'menu'.'</emphasis>'.' qui vous permet d\'accèder aux différents '.
1190
                'ainsi qu\'un '.'<emphasis>'.'menu'.'</emphasis>'.' qui vous permet d\'accèder aux différents '.
1186
                'formulaires de saisi composant l\'interface d\'admnistration des herbiers.'.
1191
                'formulaires de saisi composant l\'interface d\'admnistration des herbiers.'.
1187
                '</p>'."\n".
1192
                '</p>'."\n".
1188
                '<p class="hba_aide">'.
1193
                '<p class="hba_aide">'.
1189
                'La saisie d\'une nouvelle collection commence par la saisie d\'une structure accueillant '.
1194
                'La saisie d\'une nouvelle collection commence par la saisie d\'une structure accueillant '.
1190
                'la ou les collections.'.'<br />'.
1195
                'la ou les collections.'.'<br />'.
1191
                'Pour ce faire, il vous faut cliquez sur le lien "Ajouter une institution (herbier)" présent '.
1196
                'Pour ce faire, il vous faut cliquez sur le lien "Ajouter une institution (herbier)" présent '.
1192
                'dans le cartouche.'.
1197
                'dans le cartouche.'.
1193
                '</p>'."\n";
1198
                '</p>'."\n";
1194
    return $retour;
1199
    return $retour;
1195
}
1200
}
1196
 
1201
 
1197
function fournirAideAccueilOrganisation()
1202
function fournirAideAccueilOrganisation()
1198
{
1203
{
1199
    $retour =  '<p class="hba_aide">'.
1204
    $retour =  '<p class="hba_aide">'.
1200
                'Pour <b>créer</b> une institution, il vous faut cliquez sur le lien "Ajouter une institution (herbier)" présent '.
1205
                'Pour <b>créer</b> une institution, il vous faut cliquez sur le lien "Ajouter une institution (herbier)" présent '.
1201
                'dans le cartouche ci-contre.'.'<br />'.
1206
                'dans le cartouche ci-contre.'.'<br />'.
1202
                'Pour <b>éditer</b> une institution existante, son équipe et ses collections, cliquez sur le lien '.
1207
                'Pour <b>éditer</b> une institution existante, son équipe et ses collections, cliquez sur le lien '.
1203
                '<b>modifier</b> situé sur la même ligne que l\'institution que vous avez choisie.'.'<br />'.
1208
                '<b>modifier</b> situé sur la même ligne que l\'institution que vous avez choisie.'.'<br />'.
1204
                'Vous pouvez également la supprimer en cliquant sur le lien <b>supprimer</b>.'.
1209
                'Vous pouvez également la supprimer en cliquant sur le lien <b>supprimer</b>.'.
1205
                '</p>'."\n";
1210
                '</p>'."\n";
1206
    return $retour;
1211
    return $retour;
1207
}
1212
}
1208
 
1213
 
1209
function fournirAideOrganisation()
1214
function fournirAideOrganisation()
1210
{
1215
{
1211
    $retour =  '<p class="hba_aide">'.
1216
    $retour =  '<p class="hba_aide">'.
1212
                'Le "cartouche" contenant le menu vous propose maintenant de :'.
1217
                'Le "cartouche" contenant le menu vous propose maintenant de :'.
1213
                '</p>'."\n".
1218
                '</p>'."\n".
1214
                '<ul class="hba_aide">'."\n".
1219
                '<ul class="hba_aide">'."\n".
1215
                '<li><strong>'.'Modifier'.'</strong>'.' les renseignements concernant l\'institution '.'<strong>'.
1220
                '<li><strong>'.'Modifier'.'</strong>'.' les renseignements concernant l\'institution '.'<strong>'.
1216
                '->'.'Modifier l\'institution'.'</strong></li>'."\n".
1221
                '->'.'Modifier l\'institution'.'</strong></li>'."\n".
1217
                '<li><strong>'.'Ajouter'.'</strong>'.' des informations sur les membres travaillant dans l\'institution '.
1222
                '<li><strong>'.'Ajouter'.'</strong>'.' des informations sur les membres travaillant dans l\'institution '.
1218
                'ou dans le cas de petites structures pour indiquer qui est le contact.'.'<strong>'.
1223
                'ou dans le cas de petites structures pour indiquer qui est le contact.'.'<strong>'.
1219
                '->'.'Ajouter un membre à l\'équipe</strong></li>'."\n".
1224
                '->'.'Ajouter un membre à l\'équipe</strong></li>'."\n".
1220
                '<li><strong>'.'Ajouter'.'</strong>'.' des informations sur les collections possédées par l\'institution'.'<strong>'.
1225
                '<li><strong>'.'Ajouter'.'</strong>'.' des informations sur les collections possédées par l\'institution'.'<strong>'.
1221
                '->'.'Ajouter une collection'.'</strong></li>'."\n".
1226
                '->'.'Ajouter une collection'.'</strong></li>'."\n".
1222
                '</ul>'."\n";
1227
                '</ul>'."\n";
1223
    return $retour;
1228
    return $retour;
1224
}
1229
}
1225
 
1230
 
1226
function fournirAideEquipe()
1231
function fournirAideEquipe()
1227
{
1232
{
1228
    $retour =   '<p class="hba_aide">'.
1233
    $retour =   '<p class="hba_aide">'.
1229
                'Pour une institution donnée, on peut ajouter autant de <b>membres d\'équipe (et/ou contacts)</b> '.
1234
                'Pour une institution donnée, on peut ajouter autant de <b>membres d\'équipe (et/ou contacts)</b> '.
1230
                'que nécessaire.'.'<br />'.
1235
                'que nécessaire.'.'<br />'.
1231
                'Cliquez sur le lien <b>modifier</b> situé sur la même ligne que le membre de l\'équipe que vous avez '.
1236
                'Cliquez sur le lien <b>modifier</b> situé sur la même ligne que le membre de l\'équipe que vous avez '.
1232
                'choisie, pour mettre à jour ses informations.'.'<br />'.
1237
                'choisie, pour mettre à jour ses informations.'.'<br />'.
1233
                'Vous pouvez également le supprimer en cliquant sur le lien <b>supprimer</b>.'.
1238
                'Vous pouvez également le supprimer en cliquant sur le lien <b>supprimer</b>.'.
1234
                '</p>'."\n";
1239
                '</p>'."\n";
1235
    return $retour;
1240
    return $retour;
1236
}
1241
}
1237
 
1242
 
1238
 
1243
 
1239
function fournirAideCollection()
1244
function fournirAideCollection()
1240
{
1245
{
1241
    $retour =   '<p class="hba_aide">'.
1246
    $retour =   '<p class="hba_aide">'.
1242
                'Pour une collection donnée, on peut ajouter autant de <b>notes (compléments '.
1247
                'Pour une collection donnée, on peut ajouter autant de <b>notes (compléments '.
1243
                'd\'information)</b> que nécessaire. Lorsqu\'une collection contient des compléments '.
1248
                'd\'information)</b> que nécessaire. Lorsqu\'une collection contient des compléments '.
1244
                'd\'information, un <b>+</b> apparait à gauche de son nom, on peut les éditer en '.
1249
                'd\'information, un <b>+</b> apparait à gauche de son nom, on peut les éditer en '.
1245
                'cliquant dessus.'.
1250
                'cliquant dessus.'.
1246
                '</p>'."\n";
1251
                '</p>'."\n";
1247
    return $retour;
1252
    return $retour;
1248
}
1253
}
1249
 
1254
 
1250
function fournirAideParcourirAnnuaire()
1255
function fournirAideParcourirAnnuaire()
1251
{
1256
{
1252
    $retour =   '<p class="hba_aide">'.
1257
    $retour =   '<p class="hba_aide">'.
1253
                'Cliquez sur une lettre pour afficher la liste des inscrits au site Tela Botanica dont le nom '.
1258
                'Cliquez sur une lettre pour afficher la liste des inscrits au site Tela Botanica dont le nom '.
1254
                'débute par cette lettre.'.
1259
                'débute par cette lettre.'.
1255
                '</p>'."\n";
1260
                '</p>'."\n";
1256
    return $retour;
1261
    return $retour;
1257
}
1262
}
1258
 
1263
 
1259
// +------------------------------------------------------------------------------------------------------+
1264
// +------------------------------------------------------------------------------------------------------+
1260
// FONCTIONS COMMUNES
1265
// FONCTIONS COMMUNES
1261
 
1266
 
1262
// verifie une valeur et affiche du texte en cons&eacute;quence
1267
// verifie une valeur et affiche du texte en cons&eacute;quence
1263
function checkvalue($prose, $value = '')
1268
function checkvalue($prose, $value = '')
1264
{
1269
{
1265
    if ($value == '') {
1270
    if ($value == '') {
1266
        $retour = '<h1>'.$prose.'</h1>'."\n";
1271
        $retour = '<h1>'.$prose.'</h1>'."\n";
1267
        $retour .= '<input type="submit" value="'.'Recommencer'.'" onclick="javascript:history.go(-1);" />'."\n";
1272
        $retour .= '<input type="submit" value="'.'Recommencer'.'" onclick="javascript:history.go(-1);" />'."\n";
1268
        return $retour;
1273
        return $retour;
1269
        }
1274
        }
1270
    return false ;
1275
    return false ;
1271
}
1276
}
1272
 
1277
 
1273
function color_alterne(&$flag)
1278
function color_alterne(&$flag)
1274
{
1279
{
1275
    if ($flag) {
1280
    if ($flag) {
1276
        $flag = FALSE;
1281
        $flag = FALSE;
1277
        return 'pair';
1282
        return 'pair';
1278
    } else {
1283
    } else {
1279
        $flag = TRUE;
1284
        $flag = TRUE;
1280
        return 'impair';
1285
        return 'impair';
1281
    }
1286
    }
1282
}
1287
}
1283
 
1288
 
1284
/** Fonction checkZip() - Teste un code postal français.
1289
/** Fonction checkZip() - Teste un code postal français.
1285
*
1290
*
1286
* L'expression régulière ^[0-9]{5}$ est utilisée pour vérifier
1291
* L'expression régulière ^[0-9]{5}$ est utilisée pour vérifier
1287
* que nous avons à faire à un code postal français.
1292
* que nous avons à faire à un code postal français.
1288
*
1293
*
1289
* @param  string  Le code postal à tester.
1294
* @param  string  Le code postal à tester.
1290
* @return boolean retourne vrai si code postal est valide.
1295
* @return boolean retourne vrai si code postal est valide.
1291
*/
1296
*/
1292
function checkZip($code)
1297
function checkZip($code)
1293
{
1298
{
1294
    if (ereg('^[0-9]{5}$', $code, $match)){
1299
    if (ereg('^[0-9]{5}$', $code, $match)){
1295
        return TRUE;
1300
        return TRUE;
1296
    } else {
1301
    } else {
1297
        return FALSE;
1302
        return FALSE;
1298
    }
1303
    }
1299
}
1304
}
1300
 
1305
 
1301
/** Fonction raccourcirTexte() - Raccourci un texte.
1306
/** Fonction raccourcirTexte() - Raccourci un texte.
1302
*
1307
*
1303
* Renvoie le $texte coupe a la $taille indique avec 3 point de suspension.
1308
* Renvoie le $texte coupe a la $taille indique avec 3 point de suspension.
1304
* Si le texte est plus court que $taille, il n'est pas modifie
1309
* Si le texte est plus court que $taille, il n'est pas modifie
1305
*
1310
*
1306
* @param  string le texte à raccourcir.
1311
* @param  string le texte à raccourcir.
1307
* @param  integer le nombre de caractère maximum du texte raccourci.
1312
* @param  integer le nombre de caractère maximum du texte raccourci.
1308
* @param  boolean mettre FALSE pour ne pas afficher de points de suspenssion.
1313
* @param  boolean mettre FALSE pour ne pas afficher de points de suspenssion.
1309
* @return mixed retourne le texte abrégé ou FALSE.
1314
* @return mixed retourne le texte abrégé ou FALSE.
1310
*/
1315
*/
1311
function raccourcirTexte($texte, $taille = null, $bool_suspenssion = TRUE) {
1316
function raccourcirTexte($texte, $taille = null, $bool_suspenssion = TRUE) {
1312
    if (!is_null($taille) && strlen($texte) > $taille) {
1317
    if (!is_null($taille) && strlen($texte) > $taille) {
1313
        if ($bool_suspenssion) {
1318
        if ($bool_suspenssion) {
1314
            return substr($texte, 0, $taille - 3).'...';
1319
            return substr($texte, 0, $taille - 3).'...';
1315
        } else {
1320
        } else {
1316
            return substr($texte, 0, $taille);
1321
            return substr($texte, 0, $taille);
1317
        }
1322
        }
1318
    }
1323
    }
1319
    return FALSE;
1324
    return FALSE;
1320
}
1325
}
1321
 
1326
 
1322
function parcourrirAnnu(&$un_herbier, $id_action)
1327
function parcourrirAnnu(&$un_herbier, $id_action)
1323
{
1328
{
1324
    // Initialisation de variables
1329
    // Initialisation de variables
1325
    $db =& $GLOBALS['_HERBIER_']['bdd'];
1330
    $db =& $GLOBALS['_HERBIER_']['bdd'];
1326
    $retour = '';
1331
    $retour = '';
1327
    
1332
    
1328
    if (NOUVEAU_CORR) {
1333
    if (NOUVEAU_CORR) {
1329
        $retour .= '<h1>'.'Inscription d\'un correspondant'.'</h1>'."\n";
1334
        $retour .= '<h1>'.'Inscription d\'un correspondant'.'</h1>'."\n";
1330
    } elseif (NOUVEAU_RED) {
1335
    } elseif (NOUVEAU_RED) {
1331
        $retour .= '<h1>'.'Inscription d\'un rédacteur'.'</h1>'."\n";
1336
        $retour .= '<h1>'.'Inscription d\'un rédacteur'.'</h1>'."\n";
1332
    }
1337
    }
1333
    $retour .= fournirAideParcourirAnnuaire();
1338
    $retour .= fournirAideParcourirAnnuaire();
1334
    $retour .= '<p class="hba_alphabet">';
1339
    $retour .= '<p class="hba_alphabet">';
1335
    // Ecrire toutes les lettres avec un lien
1340
    // Ecrire toutes les lettres avec un lien
1336
    for ($i = 65 ; $i < 91 ; $i++) {
1341
    for ($i = 65 ; $i < 91 ; $i++) {
1337
        $retour .= '<a href="'.sprintf(HB_URL_COURANTE_ADMIN_ACTION_LETTRE, $un_herbier->getAction(), chr($i));
1342
        $retour .= '<a href="'.sprintf(HB_URL_COURANTE_ADMIN_ACTION_LETTRE, $un_herbier->getAction(), chr($i));
1338
        $retour .= '">'.chr($i).'</a>'."\n";
1343
        $retour .= '">'.chr($i).'</a>'."\n";
1339
    }
1344
    }
1340
    $retour .= '</p>';
1345
    $retour .= '</p>';
1341
    
1346
    
1342
    // si une lettre est selectionne
1347
    // si une lettre est selectionne
1343
    if (!empty($_REQUEST['lettre'])) {
1348
    if (!empty($_REQUEST['lettre'])) {
1344
        $requete =  'SELECT '.HB_BDD_TAB_ANNUAIRE_CHP_NOM.', '.HB_BDD_TAB_ANNUAIRE_CHP_PRENOM.', '.
1349
        $requete =  'SELECT '.HB_BDD_TAB_ANNUAIRE_CHP_NOM.', '.HB_BDD_TAB_ANNUAIRE_CHP_PRENOM.', '.
1345
                    HB_BDD_TAB_ANNUAIRE_CHP_ID.', '.HB_BDD_TAB_ANNUAIRE_CHP_MAIL.' '.
1350
                    HB_BDD_TAB_ANNUAIRE_CHP_ID.', '.HB_BDD_TAB_ANNUAIRE_CHP_MAIL.' '.
1346
                    'FROM '.HB_BDD_TAB_ANNUAIRE.' '.
1351
                    'FROM '.HB_BDD_TAB_ANNUAIRE.' '.
1347
                    'WHERE ';
1352
                    'WHERE ';
1348
        if ($_REQUEST['lettre'] != 'tous') {
1353
        if ($_REQUEST['lettre'] != 'tous') {
1349
            $requete .= HB_BDD_TAB_ANNUAIRE_CHP_NOM.' LIKE "'.$_REQUEST['lettre'].'%" ';
1354
            $requete .= HB_BDD_TAB_ANNUAIRE_CHP_NOM.' LIKE "'.$_REQUEST['lettre'].'%" ';
1350
        }
1355
        }
1351
        $requete .= 'ORDER BY '.HB_BDD_TAB_ANNUAIRE_CHP_NOM;
1356
        $requete .= 'ORDER BY '.HB_BDD_TAB_ANNUAIRE_CHP_NOM;
1352
        $resultat = $db->query($requete);
1357
        $resultat = $db->query($requete);
1353
        if (DB::isError($resultat)) {
1358
        if (DB::isError($resultat)) {
1354
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete, $resultat->getDebugInfo()));
1359
            die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete, $resultat->getDebugInfo()));
1355
        }
1360
        }
1356
        if ($resultat->numRows() != 0) {
1361
        if ($resultat->numRows() != 0) {
1357
            // Pour chaque nom, inscription des infos
1362
            // Pour chaque nom, inscription des infos
1358
            $retour .= '<h1>'.' Inscrits dont le nom débute par : '.$_REQUEST['lettre'].'</h1>'."\n";
1363
            $retour .= '<h1>'.' Inscrits dont le nom débute par : '.$_REQUEST['lettre'].'</h1>'."\n";
1359
            $retour .= '<div class="hba_liste_inscrit">'."\n";
1364
            $retour .= '<div class="hba_liste_inscrit">'."\n";
1360
            $retour .= '<table id="hba_table_annuaire">'."\n";
1365
            $retour .= '<table id="hba_table_annuaire">'."\n";
1361
            $retour .= '<colgroup><col width="30%" /><col width="30%" /><col width="30%" /><col width="10%" /></colgroup>'."\n";
1366
            $retour .= '<colgroup><col width="30%" /><col width="30%" /><col width="30%" /><col width="10%" /></colgroup>'."\n";
1362
            $retour .= '<thead><tr><th>'.'Nom'.'</th><th>'.'Prénom'.'</th><th>'.'Courriel'.'</th><th>'.'Action'.'</th></tr></thead>'."\n";
1367
            $retour .= '<thead><tr><th>'.'Nom'.'</th><th>'.'Prénom'.'</th><th>'.'Courriel'.'</th><th>'.'Action'.'</th></tr></thead>'."\n";
1363
            $retour .= '<tbody>'."\n";
1368
            $retour .= '<tbody>'."\n";
1364
            $pair = true;
1369
            $pair = true;
1365
            while ($row = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
1370
            while ($row = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
1366
                $retour .= '<tr ';
1371
                $retour .= '<tr ';
1367
                if ($pair) {
1372
                if ($pair) {
1368
                    $retour .= 'class="impair"';
1373
                    $retour .= 'class="impair"';
1369
                    $pair = false ;
1374
                    $pair = false ;
1370
                } else {
1375
                } else {
1371
                    $retour .= 'class="pair"';
1376
                    $retour .= 'class="pair"';
1372
                    $pair = true;
1377
                    $pair = true;
1373
                }
1378
                }
1374
                $retour .= '>';
1379
                $retour .= '>';
1375
                $retour .=  '<td>'.$row[HB_BDD_TAB_ANNUAIRE_CHP_NOM].'</td>'.
1380
                $retour .=  '<td>'.$row[HB_BDD_TAB_ANNUAIRE_CHP_NOM].'</td>'.
1376
                            '<td>'.$row[HB_BDD_TAB_ANNUAIRE_CHP_PRENOM].'</td>'.
1381
                            '<td>'.$row[HB_BDD_TAB_ANNUAIRE_CHP_PRENOM].'</td>'.
1377
                            '<td>'.$row[HB_BDD_TAB_ANNUAIRE_CHP_MAIL].'</td>'."\n";
1382
                            '<td>'.$row[HB_BDD_TAB_ANNUAIRE_CHP_MAIL].'</td>'."\n";
1378
                if ($un_herbier->getAction() == NOUVEAU_CORR) {
1383
                if ($un_herbier->getAction() == NOUVEAU_CORR) {
1379
                    $retour .= '<td><a href="'.
1384
                    $retour .= '<td><a href="'.
1380
                                sprintf($un_herbier->getUrlActionCor(), $id_action, $row[HB_BDD_TAB_ANNUAIRE_CHP_ID], $row[HB_BDD_TAB_ANNUAIRE_CHP_ID]).
1385
                                sprintf($un_herbier->getUrlActionCor(), $id_action, $row[HB_BDD_TAB_ANNUAIRE_CHP_ID], $row[HB_BDD_TAB_ANNUAIRE_CHP_ID]).
1381
                                '">'.'inscrire'.'</a></td>'."\n";
1386
                                '">'.'inscrire'.'</a></td>'."\n";
1382
                } elseif ($un_herbier->getAction() == NOUV_RED) {
1387
                } elseif ($un_herbier->getAction() == NOUV_RED) {
1383
                    $retour .=  '<td><a href="'.
1388
                    $retour .=  '<td><a href="'.
1384
                                sprintf($un_herbier->getUrlActionRed(), $id_action, $row[HB_BDD_TAB_ANNUAIRE_CHP_ID]).
1389
                                sprintf($un_herbier->getUrlActionRed(), $id_action, $row[HB_BDD_TAB_ANNUAIRE_CHP_ID]).
1385
                                '">'.'inscrire'.'</a></td>'."\n";
1390
                                '">'.'inscrire'.'</a></td>'."\n";
1386
                }
1391
                }
1387
                $retour .= '</tr>'."\n";
1392
                $retour .= '</tr>'."\n";
1388
            }
1393
            }
1389
            $retour .= '</tbody>'."\n".'</table>'."\n".'</div>'."\n";
1394
            $retour .= '</tbody>'."\n".'</table>'."\n".'</div>'."\n";
1390
        } else {
1395
        } else {
1391
            $retour .= '<p class="hba_attention">'.'Aucun inscrit!'.'</p>'."\n";
1396
            $retour .= '<p class="hba_attention">'.'Aucun inscrit!'.'</p>'."\n";
1392
        }
1397
        }
1393
    }
1398
    }
1394
    return $retour;
1399
    return $retour;
1395
}
1400
}
-
 
1401
 
-
 
1402
function gererMetaForm(&$form, &$herbier)
-
 
1403
{
-
 
1404
	// Pour écraser ces valeurs même en modification nous métons temporairement le mode à vide. 
-
 
1405
    $mode = '';
-
 
1406
    if ($form->mode == 'MOD') {
-
 
1407
    	$form->mode = '';
-
 
1408
    	$mode = 'MOD';
-
 
1409
    }
-
 
1410
    $form->addChamps('DATE_DERNIERE_MODIF', '', date('Y-m-j H:i:s', time()), $type = 'hidden');
-
 
1411
    $form->addChamps('CE_MODIFIER_PAR', '',  $herbier->utilisateur->getId(), $type = 'hidden');
-
 
1412
    $form->mode = $mode;
-
 
1413
}
1396
// +------------------------------------------------------------------------------------------------------+
1414
// +------------------------------------------------------------------------------------------------------+
1397
 
1415
 
1398
/* +--Fin du code ----------------------------------------------------------------------------------------+
1416
/* +--Fin du code ----------------------------------------------------------------------------------------+
1399
*
1417
*
1400
* $Log: not supported by cvs2svn $
1418
* $Log: not supported by cvs2svn $
-
 
1419
* Revision 1.2  2006/10/30 18:57:46  jp_milcent
-
 
1420
* Ajout de champs pour les flux rss.
-
 
1421
*
1401
* Revision 1.1  2005/11/23 10:32:32  jp_milcent
1422
* Revision 1.1  2005/11/23 10:32:32  jp_milcent
1402
* Ajout au dépot de l'application Herbiers.
1423
* Ajout au dépot de l'application Herbiers.
1403
* Elle doit à terme migrer dans eFlore.
1424
* Elle doit à terme migrer dans eFlore.
1404
*
1425
*
1405
* Revision 1.5  2005/06/09 17:31:42  jpm
1426
* Revision 1.5  2005/06/09 17:31:42  jpm
1406
* Affichage en permanence dans le menu du lien vers l'accueil.
1427
* Affichage en permanence dans le menu du lien vers l'accueil.
1407
*
1428
*
1408
* Revision 1.4  2005/06/07 15:30:44  jpm
1429
* Revision 1.4  2005/06/07 15:30:44  jpm
1409
* Modid esthetique.
1430
* Modid esthetique.
1410
*
1431
*
1411
* Revision 1.3  2005/06/02 17:53:37  jpm
1432
* Revision 1.3  2005/06/02 17:53:37  jpm
1412
* Modification de l'affichage du menu.
1433
* Modification de l'affichage du menu.
1413
*
1434
*
1414
* Revision 1.2  2005/05/18 07:30:13  jpm
1435
* Revision 1.2  2005/05/18 07:30:13  jpm
1415
* Correction des bogues et derniers réglages avant mise en ligne du site v4.
1436
* Correction des bogues et derniers réglages avant mise en ligne du site v4.
1416
*
1437
*
1417
* Revision 1.1  2005/04/06 13:33:40  jpm
1438
* Revision 1.1  2005/04/06 13:33:40  jpm
1418
* Ajout du fichier contenant les fonctions réalisant la mise en page et la gestion des données.
1439
* Ajout du fichier contenant les fonctions réalisant la mise en page et la gestion des données.
1419
* Cela devrait normalement être divisé en un modèle et une vue...
1440
* Cela devrait normalement être divisé en un modèle et une vue...
1420
*
1441
*
1421
*
1442
*
1422
* +-- Fin du code ----------------------------------------------------------------------------------------+
1443
* +-- Fin du code ----------------------------------------------------------------------------------------+
1423
*/
1444
*/
1424
?>
1445
?>