Subversion Repositories Applications.papyrus

Rev

Rev 205 | Rev 281 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
6 jpm 1
<?php
2
/*vim: set expandtab tabstop=4 shiftwidth=4: */
3
// +------------------------------------------------------------------------------------------------------+
4
// | PHP version 4.1                                                                                      |
5
// +------------------------------------------------------------------------------------------------------+
6
// | Copyright (C) 2001 Laurent COUDOUNEAU (lc@gsite.org)                                                 |
7
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org)                                         |
8
// +------------------------------------------------------------------------------------------------------+
9
// | This library is free software; you can redistribute it and/or                                        |
10
// | modify it under the terms of the GNU Lesser General Public                                           |
11
// | License as published by the Free Software Foundation; either                                         |
12
// | version 2.1 of the License, or (at your option) any later version.                                   |
13
// |                                                                                                      |
14
// | This library is distributed in the hope that it will be useful,                                      |
15
// | but WITHOUT ANY WARRANTY; without even the implied warranty of                                       |
16
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU                                    |
17
// | Lesser General Public License for more details.                                                      |
18
// |                                                                                                      |
19
// | You should have received a copy of the GNU Lesser General Public                                     |
20
// | License along with this library; if not, write to the Free Software                                  |
21
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
22
// +------------------------------------------------------------------------------------------------------+
23
/**
24
* Application Administrateur de Papyrus.
25
*
26
* Application permettant de gérer actulement les projets et la mise en cache des pages.
27
* Dans l'avenir la gestion via l'interface d'administration des fichiers CSS et
28
* des Squelettes pourrait être envisagée.
29
* Cette application peut prendre 1 des 3 arguments ci-dessous lors de son appel par un menu de Papyrus :
30
* - site : pour indiquer que l'on veut gérer les sites
31
* - cache : pour indiquer que l'on veut gérer le cache
32
* Liste des paquetages Pear nécessaire à cette application :
33
* - DB
34
* - Auth
35
* - Net_URL
36
*
25 jpm 37
*@package Admin_site
6 jpm 38
//Auteur original :
39
*@author        Laurent COUDOUNEAU <lc@gsite.org>
40
//Autres auteurs :
41
*@author        Alexandre GRANIER <alexandre@tela-botanica.org>
42
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
43
*@copyright     Tela-Botanica 2000-2004
276 jpm 44
*@version       $Revision: 1.5 $ $Date: 2005-02-28 10:32:06 $
6 jpm 45
// +------------------------------------------------------------------------------------------------------+
46
//
276 jpm 47
// $Id: admin_site.php,v 1.5 2005-02-28 10:32:06 jpm Exp $
6 jpm 48
// FICHIER : $RCSfile: admin_site.php,v $
49
// AUTEUR  : $Author: jpm $
276 jpm 50
// VERSION : $Revision: 1.5 $
51
// DATE    : $Date: 2005-02-28 10:32:06 $
6 jpm 52
// +------------------------------------------------------------------------------------------------------+
53
**/
54
 
55
// +------------------------------------------------------------------------------------------------------+
56
// |                                            ENTÊTE du PROGRAMME                                       |
57
// +------------------------------------------------------------------------------------------------------+
58
 
59
// Note : cette application fait appel à des fonctions présentent dans la bibliotheque de Papyrus.
60
 
61
/** Inclusion du fichier de configuration de cette application.*/
62
require_once GEN_CHEMIN_APPLICATION.'admin_site/configuration/adsi_configuration.inc.php';
63
 
64
/** Inclusion de la bibliothèque PEAR de conception de formulaire.*/
65
require_once ADSI_CHEMIN_BIBLIOTHEQUE_PEAR.'HTML/QuickForm.php';
66
 
67
/** Inclusion de l'API de fonctions gérant les erreurs sql.*/
276 jpm 68
require_once ADSI_CHEMIN_BIBLIOTHEQUE_API.'debogage/BOG_sql.fonct.php';
6 jpm 69
 
70
/** Inclusion des fonctions de manipulation du sql.
71
* Permet la récupération d'un nouvel identifiant d'une table.*/
276 jpm 72
require_once ADSI_CHEMIN_BIBLIOTHEQUE_API.'sql/SQL_manipulation.fonct.php';
6 jpm 73
 
72 jpm 74
/** Inclusion des fonctions de manipulation de fichiers et dossiers.
75
* Permet la suppression d'un dossier et de son contenu.*/
276 jpm 76
require_once ADSI_CHEMIN_BIBLIOTHEQUE_API.'fichier/FIC_manipulation.fonct.php';
72 jpm 77
 
6 jpm 78
/** <BR> Inclusion de la bibliothèque de fonctions concernant les tables "gen_menu..." de Papyrus.
79
* Permet d'inclure la fonction d'affichage du "Vous êtes ici".*/
80
require_once ADSI_CHEMIN_BIBLIOTHEQUE_GEN.'pap_menu.fonct.php';
81
 
205 jpm 82
/** <BR> Inclusion de la bibliothèque de fonctions concernant les tables "gen_site..." de Papyrus.*/
83
require_once ADSI_CHEMIN_BIBLIOTHEQUE_GEN.'pap_site.fonct.php';
84
 
6 jpm 85
/** Inclusion de la bibliotheque de fonctions gérant les administrateur de Papyrus.*/
86
require_once ADSI_CHEMIN_BIBLIOTHEQUE_ADSI.'adsi_admin.fonct.php';
87
 
88
/** Inclusion de la bibliotheque de fonction gérant l'affichage de l'application Administrateur.*/
89
require_once ADSI_CHEMIN_BIBLIOTHEQUE_ADSI.'adsi_affichage.fonct.php';
90
 
91
/** Inclusion de la bibliotheque de fonction gérant l'administration des sites de Papyrus.*/
92
require_once ADSI_CHEMIN_BIBLIOTHEQUE_ADSI.'adsi_site.fonct.php';
93
 
25 jpm 94
///** Inclusion de la bibliotheque de fonction gérant l'administration du cache de Papyrus.*/
95
//require_once ADSI_CHEMIN_BIBLIOTHEQUE_ADSI.'adsi_cache.fonct.php';
6 jpm 96
 
25 jpm 97
///** Inclusion de la bibliotheque de fonction gérant l'administration des squelettes des sites de Papyrus.*/
98
//require_once ADSI_CHEMIN_BIBLIOTHEQUE_ADSI.'adsi_squelette.fonct.php';
6 jpm 99
 
25 jpm 100
///** Inclusion de la bibliotheque de fonction gérant l'administration des feuilles de styles des sites de Papyrus.*/
101
//require_once ADSI_CHEMIN_BIBLIOTHEQUE_ADSI.'adsi_style.fonct.php';
102
 
6 jpm 103
// +------------------------------------------------------------------------------------------------------+
104
// |                                            CORPS du PROGRAMME                                        |
105
// +------------------------------------------------------------------------------------------------------+
106
/** Fonction afficherContenuTete() - Fonction appelé par le gestionnaire Papyrus.
107
*
108
* Elle retourne l'entête de l'application..
109
*
110
* @return  string  du code XHTML correspondant à la zone d'entête de l'application.
111
*/
112
function afficherContenuTete()
113
{
114
    return '';
115
}
116
 
117
/** Fonction afficherContenuCorps() - Retourne le contenu XHTML à afficherdans la zone contenu corps.
118
*
119
* Cette fonction retourne le contenu final d'un appel à l'application Administrateur.
120
* Cette fonction peut être appelé par Papyrus où depuis n'importe quel autre interface.
121
*
122
* @return  string  le contenu xhtml généré par l'application Administrateur et devant être affiché.
123
*/
124
function afficherContenuCorps()
125
{
126
    // Initialisation des variables. A faire migrer dans le fichier de configuration!!!
127
    // Globals variables from auth.php:
128
    //
129
    //  $project        : current project
130
    //  $locale         : current locale
131
    //  $db             : database name
132
    //  $link           : link to database
133
    //  $DOCrow         : current document
134
    //  $CURRENTPAGErow : current page
135
    //  $annuName       : name of the current annu
136
    //  $userid         : id of the current user
137
 
138
    // +----------------------------------------------------------------------------------------------+
139
    // Initialisation variables globales de Papyrus
140
    global $db, $_GEN_commun;
141
    // +----------------------------------------------------------------------------------------------+
142
    // Objet Pear Auth
143
    $objet_pear_auth = $_GEN_commun['pear_auth'];
144
    // +----------------------------------------------------------------------------------------------+
145
    // Gestion de l'URL pour revenir sur le menu courant.
146
    $url = $_GEN_commun['url']->getUrl();
147
    // +----------------------------------------------------------------------------------------------+
148
    // Gestion de la langue de l'interface.
149
    $id_langue = $_GEN_commun['url_i18n'];
150
    // +----------------------------------------------------------------------------------------------+
151
    // Arguments d'appel de cette application par un menu de Papyrus
152
    $application_arguments = $_GEN_commun['info_menu']->gm_application_arguments;
153
 
154
    if ($objet_pear_auth->getAuth()) {
155
        // +----------------------------------------------------------------------------------------------+
156
        // Initialisation des variables.
157
        $sortie_xhtml = '';// Le XHTML à renvoyer.// Ancien nom : $outputText
158
        $msg = '';
159
 
160
        // +----------------------------------------------------------------------------------------------+
161
        // Arguments passé par le menu de Génésia à l'application l'Administrateur???
162
 
163
        // Récupération des arguments
164
        $tab_arguments = explode(' ', $application_arguments);
165
 
166
        // Initialisation des variables qui contiendront les arguments
167
        $id_site_a_administrer  = '';
168
        $bool_site              = false;
169
        $bool_auth              = false;
170
        $bool_cache             = false;
171
        $bool_squelette         = false;
172
        $bool_style             = false;
173
 
174
        // Instantciation des variables arguments
175
        for ($i = 0; $i < count($tab_arguments); $i++) {
176
            $argument = explode('=', $tab_arguments[$i]);
177
 
178
            if ($argument[0] == 'id_site') {
179
                $id_site_a_administrer = $argument[1];
180
            }
181
 
182
            if ($argument[0] == 'bool_site') {
183
                // Interface d'administration des sites
184
                $bool_site = ($argument[1] == 'true');
185
            }
186
 
187
            if ($argument[0] == 'bool_auth') {
188
                // Interface d'administration du cache d'un site
189
                $bool_cache = ($argument[1] == 'true');
190
            }
191
 
192
            if ($argument[0] == 'bool_cache') {
193
                // Interface d'administration du cache d'un site
194
                $bool_cache = ($argument[1] == 'true');
195
            }
196
 
197
            if ($argument[0] == 'bool_squelette') {
198
                // Interface d'administration du fichier squelette d'un site
199
                $bool_squelette = ($argument[1] == 'true');
200
            }
201
 
202
            if ($argument[0] == 'bool_style') {
203
                // Interface d'administration du fichier de styles d'un site
204
                $bool_style = ($argument[1] == 'true');
205
            }
206
        }
207
 
208
        // Si aucun argument transmis on affiche l'interface de gestion des sites
209
        if ( !($bool_site && $bool_cache && $bool_squelette && $bool_style) ) {
210
            $bool_site = true;
211
        }
212
 
213
        // +----------------------------------------------------------------------------------------------+
214
        // Gestion des sites...
215
        if ($bool_site) {
216
            if (isset($_POST['form_sites_ajouter'])) {
217
                // Nous voulons le formulaire d'ajout d'un site
218
                $sortie_xhtml .= ADMIN_afficherFormSite($db, $url);
219
                return $sortie_xhtml;
220
            } else if (isset($_POST['site_enregistrer'])) {
221
                // Nous cherchons à enregistrer un site
222
                $message = ADMIN_validerFormSite($db, $_POST);
223
                if (!empty($message)) {
224
                    // Les données ne sont pas valide. Nous retournons le formulaires avec les messages d'erreurs.
225
                    $sortie_xhtml .= ADMIN_afficherFormSite($db, $url, $_POST, $message);
226
                } else {
227
                    // Les données sont valide. Nous les enregistrons et retournons au formulaire de départ.
228
                    $message = ADMIN_enregistrerSite($db, $_POST, $objet_pear_auth->getAuthData('ga_id_administrateur'));
229
                    $sortie_xhtml .= ADMIN_afficherFormListeSites($db, $url, $message);
230
                }
231
                return $sortie_xhtml;
232
            } else if (isset($_POST['form_sites_modifier'])) {
233
                // Nous cherchons à modifier un site
234
                $message = ADMIN_validerFormListesSites($db, $_POST);
235
                if (!empty($message)) {
236
                    // Les données ne sont pas valide. Nous retournons le formulaires avec les messages d'erreurs.
237
                    $sortie_xhtml .= ADMIN_afficherFormListeSites($db, $url, $message);
238
                } else {
239
                    // Les données sont valide. Nous affichons le formulaire de modification.
240
                    $sortie_xhtml .= ADMIN_afficherFormSite($db, $url, $_POST, $message);
241
                }
242
                return $sortie_xhtml;
243
            } else if (isset($_POST['site_modifier'])) {
244
                // Nous cherchons à enregistrer les modification d'un site
245
                $message = ADMIN_validerFormSite($db, $_POST);
246
                if (!empty($message)) {
247
                    // Les données ne sont pas valide. Nous retournons le formulaires avec les messages d'erreurs.
248
                    $sortie_xhtml .= ADMIN_afficherFormSite($db, $url, $_POST, $message);
249
                } else {
250
                    // Les données sont valide. Nous les enregistrons et retournons au formulaire de départ.
251
                    $message = ADMIN_modifierSite($db, $_POST, $objet_pear_auth->getAuthData('ga_id_administrateur'));
252
                    $sortie_xhtml .= ADMIN_afficherFormListeSites($db, $url, $message);
253
                }
254
                return $sortie_xhtml;
255
            } else if (isset($_POST['form_sites_supprimer'])) {
256
                // Nous cherchons à supprimer un site
257
                $message = ADMIN_validerFormListesSites($db, $_POST);
258
                if (!empty($message)) {
259
                    // Les données ne sont pas valide. Nous retournons le formulaires avec les messages d'erreurs.
260
                    $sortie_xhtml .= ADMIN_afficherFormListeSites($db, $url, $message);
261
                } else {
262
                    // Les données sont valide. Nous supprimons et retournons au formulaire de départ.
263
                    $message = ADMIN_supprimerSite($db, $_POST);
264
                    $sortie_xhtml .= ADMIN_afficherFormListeSites($db, $url, $message);
265
                }
266
                return $sortie_xhtml;
267
            } else if (isset($_POST['form_sites_traduire'])) {
268
                // Nous cherchons à modifier un site
269
                $message = ADMIN_validerFormListesSites($db, $_POST);
270
                if (!empty($message)) {
271
                    // Les données ne sont pas valide. Nous retournons le formulaires avec les messages d'erreurs.
272
                    $sortie_xhtml .= ADMIN_afficherFormListeSites($db, $url, $message);
273
                } else {
274
                    // Les données sont valide. Nous supprimons et retournons au formulaire de départ.
275
                    $sortie_xhtml .= ADMIN_afficherFormTraduireSite($db, $url, $_POST, $message);
276
                }
277
                return $sortie_xhtml;
278
            } else if (isset($_POST['form_trad_site_enregistrer'])) {
279
                // Nous cherchons à enregistrer la traduction d'un site
280
                $message = ADMIN_validerFormTraduireSite($db, $_POST);
281
                if (!empty($message)) {
282
                    // Les données ne sont pas valide. Nous retournons le formulaires avec les messages d'erreurs.
283
                    $sortie_xhtml .= ADMIN_afficherFormModifierSite($db, $url, $message);
284
                } else {
285
                    // Les données sont valide. Nous les enregistrons et retournons au formulaire de départ.
286
                    $message = ADMIN_enregistrerFormModifierSite($db, $_POST);
287
                    $sortie_xhtml .= ADMIN_afficherFormListeSites($db, $url, $message);
288
                }
289
                return $sortie_xhtml;
290
            } else if (isset($_POST['form_annuler'])) {
291
                // Retour à la liste des sites
292
                $sortie_xhtml .= ADMIN_afficherFormListeSites($db, $url);
293
                return $sortie_xhtml;
294
            } else {
295
                // Liste des sites
296
                $sortie_xhtml .= ADMIN_afficherFormListeSites($db, $url);
297
            }
298
        }
299
        // +----------------------------------------------------------------------------------------------+
300
        // Gestion du cache... A FAIRE
301
        if ($bool_cache) {
302
 
303
            $msg = '';
304
 
305
            if ($guscmd == 'delcache') {
306
                delCache($db, $gusprjid);
307
            }
308
 
309
            // Defaut : nous listons tous les caches
310
            $sortie_xhtml .= listCaches($db, $id_site, $id_langue, $url, $msg);
311
 
312
            return $sortie_xhtml;
313
        }
314
        // +----------------------------------------------------------------------------------------------+
315
        // Gestion des squelettes... A FAIRE
316
        if ($bool_squelette) {
317
            switch ($guscmd) {
318
                case 'updpres':
319
                    $sortie_xhtml .= updatePresentation($db, $id_site, $id_langue, $url, $baseHidden, $gusprjid);
320
                    return $sortie_xhtml;
321
                    break;
322
                case 'commitupdpres' :
323
                    $sortie_xhtml .= commitUpdatePresentation($db, $id_site, $id_langue, $id_site_a_administrer, $url);
324
                    return $sortie_xhtml;
325
                    break;
326
            }
327
        }
328
        // +----------------------------------------------------------------------------------------------+
329
        // Gestion des styles... A FAIRE
330
        if ($bool_style) {
331
 
332
        }
333
 
334
        return $sortie_xhtml ;
335
    } else {
336
        // L'utilisateur n'est pas identifier, nous lui demandons de le faire.
337
        return GEN_afficherInfoIdentification();
338
    }
339
}//Fin de la fonction afficherContenuCorps().
340
 
341
/* +--Fin du code ---------------------------------------------------------------------------------------+
342
* $Log: not supported by cvs2svn $
276 jpm 343
* Revision 1.4  2004/12/03 19:22:57  jpm
344
* Gestion des types de sites externes gérés par Papyrus.
345
*
205 jpm 346
* Revision 1.3  2004/10/18 18:27:37  jpm
347
* Correction problèmes FTP et manipulation de fichiers.
348
*
72 jpm 349
* Revision 1.2  2004/07/06 17:08:14  jpm
350
* Modification de la documentation pour une mailleur analyse par PhpDocumentor.
351
*
25 jpm 352
* Revision 1.1  2004/06/16 14:20:39  jpm
353
* Changement de nom de Génésia en Papyrus.
354
* Changement de l'arborescence.
355
*
6 jpm 356
* Revision 1.23  2004/05/10 12:23:26  jpm
357
* Correction mineure.
358
*
359
* Revision 1.22  2004/05/07 16:33:18  jpm
360
* Intégration de constantes.
361
*
362
* Revision 1.21  2004/05/07 07:23:03  jpm
363
* Ajout de la gestion des modification et suppression de site. Amélioration de la création des sites.
364
*
365
* Revision 1.20  2004/05/05 06:45:36  jpm
366
* Suppression de l'appel de la fonction générant le "vous êtes ici" dans la fonction affichant l'entête de l'application.
367
*
368
* Revision 1.19  2004/05/04 16:28:30  jpm
369
* Réduction de code pour la fonction afficherContenuTete().
370
*
371
* Revision 1.18  2004/04/30 16:22:59  jpm
372
* Poursuite de l'administration des sites.
373
*
374
* Revision 1.17  2004/04/22 08:33:11  jpm
375
* Transformation de $GS_GLOBAL en $_GEN_commun.
376
*
377
* Revision 1.16  2004/04/09 16:24:08  jpm
378
* Prise en compte des tables i18n.
379
*
380
* Revision 1.15  2004/04/02 16:37:09  jpm
381
* Modification de la gestion des actions d'administration.
382
* Ajout de commentaires.
383
*
384
* Revision 1.14  2004/03/31 16:58:15  jpm
385
* Changement des chemins d'accès aux fichiers à inclure.
386
*
387
* Revision 1.13  2004/03/24 10:07:04  jpm
388
* Ajout des commentaires d'entête.
389
* Début mise en conformité avec la convention de codage.
390
* Déplacement de la fonction d'affichage du xhtml dans la bibliothèque de fonctions.
391
*
392
* +--Fin du code ----------------------------------------------------------------------------------------+
393
*/
394
?>