Subversion Repositories eFlore/Archives.herbiers

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 jp_milcent 1
<?php
2
/*vim: set expandtab tabstop=4 shiftwidth=4: */
3
// +------------------------------------------------------------------------------------------------------+
4
// | PHP version 4.1                                                                                      |
5
// +------------------------------------------------------------------------------------------------------+
6
// | Copyright (C) 2005 Tela Botanica (accueil@tela-botanica.org)                                         |
7
// +------------------------------------------------------------------------------------------------------+
8
// | This file is part of Herbier - Consultation.                                                         |
9
// |                                                                                                      |
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                                 |
12
// | the Free Software Foundation; either version 2 of the License, or                                    |
13
// | (at your option) any later version.                                                                  |
14
// |                                                                                                      |
15
// | Foobar is distributed in the hope that it will be useful,                                            |
16
// | but WITHOUT ANY WARRANTY; without even the implied warranty of                                       |
17
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                                        |
18
// | GNU General Public License for more details.                                                         |
19
// |                                                                                                      |
20
// | You should have received a copy of the GNU General Public License                                    |
21
// | along with Foobar; if not, write to the Free Software                                                |
22
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
23
// +------------------------------------------------------------------------------------------------------+
24
// CVS : $Id: hbc_info_collection.inc.php,v 1.1 2005-11-23 10:32:32 jp_milcent Exp $
25
/**
26
* Application fournissant des informations sur les collections
27
*
28
* Fournit des informations sur une collection enregistrée dans la base de données.
29
*
30
*@package Herbier-Consultation
31
//Auteur original :
32
*@author        Alexandre GRANIER <alexandre@tela-botanica.org>
33
//Autres auteurs :
34
*@author        Jean-Pascal MILCENT <jpm@clapas.org>
35
*@copyright     Tela-Botanica 2000-2005
36
*@version       $Revision: 1.1 $ $Date: 2005-11-23 10:32:32 $
37
// +------------------------------------------------------------------------------------------------------+
38
*/
39
 
40
// +------------------------------------------------------------------------------------------------------+
41
// |                                            ENTETE du PROGRAMME                                       |
42
// +------------------------------------------------------------------------------------------------------+
43
// Stockage du fichier javascript nécessaire pour ouvri-fermer les infos.
44
GEN_stockerFichierScript('herbiers', HB_CHEMIN_SCRIPTS.'hb_ouvrir_fermer.js');
45
 
46
// Initialisation des variables:
47
global $id_org;
48
 
49
// +------------------------------------------------------------------------------------------------------+
50
// |                                            CORPS du PROGRAMME                                        |
51
// +------------------------------------------------------------------------------------------------------+
52
// Si le visiteur est connecté et qu'il a des droits sur l'édition d'un herbier, on met $estEditeur à true
53
if ($GLOBALS['_GEN_commun']['pear_auth']->getAuth()) {
54
    // Si le visiteur est connecté, on regarde si l'herbier visité lui appartient
55
    // auquel on ajoutera des menus d'éditions rapide
56
    $query_auth =   'SELECT EDP_ID_DROIT '.
57
                    'FROM EFLORE_DROIT_POSSEDER '.
58
                    'WHERE ( EDP_ID_PROJET = 1 '.
59
                    'AND EDP_ID_UTILISATEUR = '.$GLOBALS['_HERBIER_']['auth']->getAuthData(HB_BDD_TAB_ANNUAIRE_CHP_ID).' '.
60
                    'AND EDP_ID_DROIT = 1)';
61
 
62
    $result_auth = mysql_query($query_auth) or die (BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $query_auth));
63
    if (mysql_num_rows($result_auth) != 0) {
64
        $estEditeur = true;
65
    } else {
66
        $req_administrer =  'SELECT HA_ID_ANNUAIRE '.
67
                            'FROM HERBIERS_ADMINISTRER '.
68
                            'WHERE HA_ID_ANNUAIRE = '.$GLOBALS['_HERBIER_']['auth']->getAuthData(HB_BDD_TAB_ANNUAIRE_CHP_ID);
69
        $res_administrer = mysql_query($req_administrer) or die (BOG_afficherErreurSql(__FILE__, __LINE__, mysql_error(), $req_administrer));
70
        if (mysql_num_rows($res_administrer) != 0) {
71
            $estEditeur = true;
72
        } else {
73
            $estEditeur = false;
74
        }
75
    }
76
    mysql_free_result($result_auth);
77
} else {
78
    $estEditeur = false;
79
}
80
 
81
// Création d'un objet H_organisation et récupération des informations afférentes
82
$herb = new H_organisation();
83
$herb->getFromSQL($id_org);
84
 
85
// Entête
86
$sortie .= '<h1>'.$herb->INSTITUTION_NAME.'</h1>'."\n";
87
// On affiche la source des données cad soit IH soit le nom de la personne qui a saisi.
88
$sortie .= '<p class="hb_source_donnee">'.'Source des données : ';
89
if ($herb->SOURCE_DES_DONNEES != '') {
90
    $sortie .= $herb->SOURCE_DES_DONNEES;
91
} else {
92
    $sortie .= $herb->U_NAME.' '.$herb->U_SURNAME;
93
}
94
$sortie .= '</p>'."\n";
95
 
96
// 1. les renseignements administratifs
97
$sortie .= '<p class="hb_menu">'.'</p>'."\n";//lien_retour('herbiers')
98
 
99
// 2. les collections
100
if (is_array($herb->collections) && count($herb->collections) != 0) {
101
    $sortie .= '<h2>'.'Les collections'.'</h2>'."\n";
102
 
103
    // Une boucle sur l'ensemble des collections
104
    for ($i = 0; $i < count($herb->collections); $i++) {
105
        $sortie .= '<div id="el'.$i.'Parent" class="parent">'."\n".
106
                '<a href="#" onclick="expandBase(\'el'.$i.'\', true); return false;">'."\n".
107
                '<img name="imEx" id="el'.$i.'Img" class="'.HB_CLASS_IMG_ICONE.'" src="'.HB_IMG_OUVRIR.'" alt="+" />'."\n".
108
                '</a>'."\n".
109
                '<h3 class="hb_titre_en_ligne">'.$herb->collections[$i]->NOM_COLLECTION;
110
        if ($estEditeur) {
111
            $sortie .=  ' <a class="hb_edition_rapide" href="'.
112
                        sprintf(HB_URL_COURANTE_ADMIN_ACTION_ORG_COLL, MOD_DESC, $id_org, $herb->collections[$i]->ID).
113
                        '">'.
114
                        '(Édition rapide)'.
115
                        '</a></h3>'."\n";
116
        } else {
117
            $sortie .=  '</h3>'."\n";
118
        }
119
        $sortie .=  '</div>'."\n";
120
        $sortie .= '<div id="el'.$i.'Child" class="child">'."\n";
121
        $sortie .= '<dl class="hb_affichage_tabulaire">'."\n";
122
        if ($herb->collections[$i]->COLLECTION_CODE) {
123
            $sortie .=  '<dt>'.'Code de la collection : '.'</dt>'.
124
                        '<dd>'.$herb->collections[$i]->COLLECTION_CODE.'</dd>'."\n";
125
        }
126
        if ($herb->collections[$i]->DESCRIPTION) {
127
            $sortie .=  '<dt>'.'Description : '.'</dt>'.
128
                        '<dd>'.preg_replace("/\n/", '<br />', $herb->collections[$i]->DESCRIPTION).'</dd>'."\n";
129
        }
130
        if ($herb->collections[$i]->LABEL) {
131
            $sortie .=  '<dt>'.'Statut de la collection : '.'</dt>'.
132
                        '<dd>'.$herb->collections[$i]->LABEL.'</dd>'."\n";
133
        }
134
        if ($herb->collections[$i]->DATE_DEBUT&& $herb->collections[$i]->DATE_DEBUT != '0000-00-00') {
135
            $sortie .=  '<dt>'.'Début de récolte : '.'</dt>'.
136
                        '<dd>'.$herb->collections[$i]->LABEL_DATE_DEBUT_CARAC.' '.
137
                        $herb->collections[$i]->DATE_DEBUT.'</dd>'."\n";
138
        }
139
        if ($herb->collections[$i]->DATE_FIN && $herb->collections[$i]->DATE_FIN != "0000-00-00") {
140
            $sortie .=  '<dt>'.'Fin de récolte : '.'</dt>'.
141
                        '<dd>'.$herb->collections[$i]->LABEL_DATE_FIN_CARAC.' '.
142
                        $herb->collections[$i]->DATE_FIN.'</dd>'."\n";
143
        }
144
        if ($herb->collections[$i]->included_type) {
145
            $sortie .=  '<dt>'.'Échantillons-types : '.'</dt>'.
146
                        '<dd>'.$herb->collections[$i]->included_type.'</dd>'."\n";
147
        }
148
        if (count($herb->collections[$i]->preservation_method) != 0) {
149
            $sortie .= '<dt>'.'Méthode de préservation : '.'</dt>'."\n";
150
            $sortie .= '<dd><ul>';
151
            for ($j = 0; $j < count($herb->collections[$i]->preservation_method); $j++) {
152
                $sortie .= '<li>'.$herb->collections[$i]->preservation_method[$j].'</li>'."\n";
153
            }
154
            $sortie .= '</ul></dd>'."\n";
155
        }
156
        if ($herb->collections[$i]->NUM_SPECIMENS) {
157
            $sortie .=  '<dt>'.'Nombre de spécimens : '.'</dt>'.
158
                        '<dd>'.$herb->collections[$i]->NUM_SPECIMENS ;
159
            if ($herb->collections[$i]->PREC_SPECIMENS == 'ESTI') {
160
                $sortie .= ' <span class="hb_estimation">'.'(estimation)'.'</span>';
161
            }
162
            $sortie .= '</dd>'."\n";
163
        }
164
        if ($herb->collections[$i]->NUM_SPECIES) {
165
            $sortie .=  '<dt>'.'Nombre d\'espèces : '.'</dt>'.
166
                        '<dd>'.$herb->collections[$i]->NUM_SPECIES;
167
            if ($herb->collections[$i]->PREC_SPECIES == 'ESTI') {
168
                $sortie .= ' <span class="hb_estimation">'.'(estimation)'.'</span>';
169
            }
170
            $sortie .= '</dd>'."\n";
171
        }
172
        if ($herb->collections[$i]->URL != '') {
173
            $sortie .=  '<dt>'.'Site : '.'</dt>'.
174
                        '<dd><a href="'.$herb->collections[$i]->URL.'">'.$herb->collections[$i]->URL.'</a></dd>'."\n";
175
        }
176
 
177
        // Les différents états de la collection
178
        if ($herb->collections[$i]->ETAT_SPECIMENS) {
179
            $sortie .=  '<dt>'.'État des spécimens : '.'</dt>'.
180
                        '<dd>'.$herb->collections[$i]->ETAT_SPECIMENS.'</dd>'."\n";
181
        }
182
        if ($herb->collections[$i]->ETAT_CLASSEMENT) {
183
            $sortie .=  '<dt>'.'État du classement : '.'</dt>'.
184
                        '<dd>'.$herb->collections[$i]->ETAT_CLASSEMENT.'</dd>'."\n";
185
        }
186
        if ($herb->collections[$i]->ETAT_PRESENTATION) {
187
            $sortie .=  '<dt>'.'État de la présentation : '.'</dt>'.
188
                        '<dd>'.$herb->collections[$i]->ETAT_PRESENTATION.'</dd>'."\n";
189
        }
190
        if ($herb->collections[$i]->MODE_CLASSEMENT != '') {
191
            $sortie .=  '<dt>'.'Méthode de classement : '.'</dt>'.
192
                        '<dd>'.preg_replace("/\n/", '<br />', $herb->collections[$i]->MODE_CLASSEMENT).'</dd>'."\n";
193
        }
194
        if ($herb->collections[$i]->DOC_STATE != '') {
195
            $sortie .=  '<dt>'.'État de la documentation : '.'</dt>'.
196
                        '<dd>'.preg_replace("/\n/", '<br />', $herb->collections[$i]->DOC_STATE).'</dd>'."\n";
197
        }
198
        $sortie .= '</dl>'."\n";
199
 
200
        // Les collecteurs
201
        if (isset($herb->collections[$i]->COLLECTEURS) && $herb->collections[$i]->COLLECTEURS != '') {
202
            $tableau_collecteur = preg_split("/\r\n/", $herb->collections[$i]->COLLECTEURS, -1, PREG_SPLIT_NO_EMPTY);
203
            $sortie .=  '<div id="elcollecteur'.$i.'Parent" class="parent">'."\n".
204
                        '<a href="#" onclick="expandBase(\'elcollecteur'.$i.'\', true); return false;">'."\n".
205
                        '<img name="imEx" id="elcollecteur'.$i.'Img" class="'.HB_CLASS_IMG_ICONE.'" src="'.HB_IMG_OUVRIR.'" alt="+" />'."\n".
206
                        '</a>'."\n".
207
                        '<h3 class="hb_titre_en_ligne">'.'Les collecteurs - '.count($tableau_collecteur).'</h3>'."\n".
208
                        '</div>'."\n";
209
            $sortie .= '<div id="elcollecteur'.$i.'Child" class="child">'."\n";
210
            $sortie .= '<table border="1" cellspacing="0" width="100%">'."\n";
211
            $compteur_auteur = 0;
212
            for ($ligne = 1; $ligne <= ceil(count($tableau_collecteur) / 3); $ligne++) {
213
                $sortie .= '<tr>';
214
                for ($col = 1 ; $col < 4 ; $col++) {
215
                    if (isset($tableau_collecteur[$compteur_auteur]) && $tableau_collecteur[$compteur_auteur] != '') {
216
                        $sortie .= '<td>'.$tableau_collecteur[$compteur_auteur].'</td>';
217
                        $compteur_auteur++;
218
                    }
219
                }
220
                $sortie .= '</tr>'."\n";
221
            }
222
            $sortie .= '</table>'."\n";
223
            $sortie .= '</div>'."\n";
224
        }
225
 
226
        // Les indications supplémentaires
227
        if (is_array($herb->collections[$i]->indic) && count($herb->collections[$i]->indic) != 0) {
228
            $sortie .=  '<div id="elindic'.$i.'Parent" class="parent">'.
229
                        '<a href="#" onclick="expandBase(\'elindic'.$i.'\', true); return false;">'.
230
                        '<img name="imEx" id="elindic'.$i.'Img" class="'.HB_CLASS_IMG_ICONE.'" src="'.HB_IMG_OUVRIR.'" alt="+" />'.
231
                        '</a>'.
232
                        '<h3 class="hb_titre_en_ligne">'.'Compléments d\'information'.'</h3>'.
233
                        '</div>'."\n";
234
            $sortie .= '<div id="elindic'.$i.'Child" class="child">'."\n";
235
            $sortie .= '<dl>'."\n";
236
            //$sortie .= '<dt>Débogage</dt><dd><pre>'.print_r($herb->collections[$i], true).'</pre></dd>'."\n";
237
            for ($k = 0; $k < count($herb->collections[$i]->indic); $k++) {
238
                if (isset($herb->collections[$i]->indic[$k]->type_indic) && count($herb->collections[$i]->indic[$k]->type_indic) != 0) {
239
                    $sortie .= '<dt>';
240
                    for ($l = 0; $l < count($herb->collections[$i]->indic[$k]->type_indic); $l++) {
241
                        $sortie .= $herb->collections[$i]->indic[$k]->type_indic[$l]->LABEL_TYPE;
242
                        if ($l < count($herb->collections[$i]->indic[$k]->type_indic) - 1) {
243
                            $sortie .= ' - ';
244
                        }
245
                    }
246
                    if ($estEditeur) {
247
                        $sortie .=  ' <a class="hb_edition_rapide" href="'.
248
                                    sprintf(HB_URL_COURANTE_ADMIN_ACTION_ORG_NOTE, MOD_NOTE, $id_org, $herb->collections[$i]->indic[$k]->ID_INDIC).
249
                                    '">'.
250
                                    '(Édition rapide)'.
251
                                    '</a>'."\n";
252
                    }
253
                    $sortie .= '</dt>'."\n";
254
                }
255
                if ($herb->collections[$i]->indic[$k]->TXT_INDIC) {
256
                    $sortie .= '<dd>'.preg_replace("/\n/", '<br />', $herb->collections[$i]->indic[$k]->TXT_INDIC).'</dd>'."\n";
257
                }
258
                if ($herb->collections[$i]->indic[$k]->REM_INDIC) {
259
                    $sortie .= '<dd><i>'.preg_replace("/\n/", '<br />', $herb->collections[$i]->indic[$k]->REM_INDIC).'</i></dd>'."\n";
260
                }
261
 
262
                // Affichage de l'historique des modifications des notes
263
                if (isset($herb->collections[$i]->indic[$k]->indic_hist) && (count($herb->collections[$i]->indic[$k]->indic_hist) != 0)) {
264
                    for ($l = 0; $l < count($herb->collections[$i]->indic[$k]->indic_hist); $l++) {
265
                        if ($herb->collections[$i]->indic[$k]->indic_hist[$l]->DATE_INDIC != '') {
266
                            $sortie .= '<dd>';
267
                            if ($l) {
268
                                $sortie .= 'Modifié le '.'<i>';
269
                            } else {
270
                                $sortie .= 'Dernière modification le '.'<i>';
271
                            }
272
                            $sortie .=  $herb->collections[$i]->indic[$k]->indic_hist[$l]->DATE_INDIC.', par '
273
                                        .$herb->collections[$i]->indic[$k]->indic_hist[$l]->ID_INDICATEUR.'</i></dd>'."\n";
274
                        }
275
                    }
276
                }
277
            }
278
            $sortie .= '</dl>'."\n";
279
            $sortie .= '</div>'."\n";
280
        }
281
        // une ligne vide entre chaque collection
282
        $sortie .= '<hr class="hb_ligne" />'."\n";
283
        $sortie .= '</div>'."\n";
284
    }
285
}
286
// +------------------------------------------------------------------------------------------------------+
287
// |                                            PIED du PROGRAMME                                         |
288
// +------------------------------------------------------------------------------------------------------+
289
 
290
 
291
/* +--Fin du code ----------------------------------------------------------------------------------------+
292
*
293
* $Log: not supported by cvs2svn $
294
* Revision 1.3  2005/03/30 09:48:58  jpm
295
* Début gestion des raccourcis vers l'administration.
296
*
297
* Revision 1.2  2005/03/09 15:55:02  jpm
298
* Correction bogue d'affichage quand donnée vide.
299
*
300
* Revision 1.1  2005/03/08 13:49:17  jpm
301
* Ajout de l'application de consultation sous forme de moteur de recherche.
302
*
303
*
304
* +-- Fin du code ----------------------------------------------------------------------------------------+
305
*/
306
?>