Subversion Repositories Applications.papyrus

Rev

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

Rev Author Line No. Line
66 jpm 1
<?php
2
/*vim: set expandtab tabstop=4 shiftwidth=4: */
3
// +------------------------------------------------------------------------------------------------------+
4
// | PHP version 4.1                                                                                      |
5
// +------------------------------------------------------------------------------------------------------+
6
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org)                                         |
7
// +------------------------------------------------------------------------------------------------------+
8
// | Copyright (c) 2002, Hendrik Mans <hendrik@mans.de>                                                   |
9
// | Copyright 2002, 2003 David DELON                                                                     |
10
// | Copyright 2002 Patrick PAUL                                                                          |
11
// | All rights reserved.                                                                                 |
12
// | Redistribution and use in source and binary forms, with or without                                   |
13
// | modification, are permitted provided that the following conditions                                   |
14
// | are met:                                                                                             |
15
// | 1. Redistributions of source code must retain the above copyright                                    |
16
// | notice, this list of conditions and the following disclaimer.                                        |
17
// | 2. Redistributions in binary form must reproduce the above copyright                                 |
18
// | notice, this list of conditions and the following disclaimer in the                                  |
19
// | documentation and/or other materials provided with the distribution.                                 |
20
// | 3. The name of the author may not be used to endorse or promote products                             |
21
// | derived from this software without specific prior written permission.                                |
22
// |                                                                                                      |
23
// | THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR                                 |
24
// | IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES                            |
25
// | OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.                              |
26
// | IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,                                     |
27
// | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT                             |
28
// | NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,                            |
29
// | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY                                |
30
// | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT                                  |
31
// | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF                             |
32
// | THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.                                    |
33
// +------------------------------------------------------------------------------------------------------+
458 florian 34
// CVS : $Id: instal_preference.inc.php,v 1.10 2005-09-23 14:20:23 florian Exp $
66 jpm 35
/**
36
* Page d'initialisation de l'installation de Papyrus.
37
*
38
* Contenu de la page par défaut de l'installation de Papyrus.
39
*
40
*@package Installateur
41
//Auteur original :
42
*@author        Hendrik MANS <hendrik@mans.de>
43
//Autres auteurs :
44
*@author        David DELON
45
*@author        Patrick PAUL
46
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
47
*@copyright     Tela-Botanica 2000-2004
458 florian 48
*@version       $Revision: 1.10 $ $Date: 2005-09-23 14:20:23 $
66 jpm 49
// +------------------------------------------------------------------------------------------------------+
50
**/
51
 
52
// +------------------------------------------------------------------------------------------------------+
53
// |                                            ENTÊTE du PROGRAMME                                       |
54
// +------------------------------------------------------------------------------------------------------+
91 jpm 55
// Numéro de l'étape d'installation :
56
$num_etape = 1;
57
 
58
// Initialisation du tableau contenant les valeurs de configuration de la base de données
458 florian 59
$tableau = array('ADMIN_PRENOM' => '', 'ADMIN_NOM' => '', 'ADMIN_MAIL' => '', 'ADMIN_MDP_01' => '',
328 jpm 60
                'ADMIN_MDP_02' => '', 'ADMIN_I18N' => '', 'PAP_URL' => '', 'PAP_CHEMIN_RACINE' => '', 'PAP_URL_REECRITURE' => '0');
91 jpm 61
foreach ($tableau as $cle => $val) {
62
    if (!empty($_POST['pref'][$cle])) {
63
        $pref[$cle] = $_POST['pref'][$cle];
64
    } else if (defined($cle)) {
65
        $pref[$cle] = constant($cle);
76 jpm 66
    } else {
91 jpm 67
        if ($cle == 'PAP_URL') {
68
            $pref[$cle] =   'http://'.$_SERVER['SERVER_NAME'].
69
                            ($_SERVER['SERVER_PORT'] != 80 ? ':'.$_SERVER['SERVER_PORT'] : '').
70
                            $_SERVER['REQUEST_URI'];
71
        } else if ($cle == 'PAP_CHEMIN_RACINE') {
72
            $pref[$cle] = INSTAL_CHEMIN_ABSOLU;
73
        } else {
74
            $pref[$cle] = '';
75
        }
76 jpm 76
    }
66 jpm 77
}
91 jpm 78
 
79
// +------------------------------------------------------------------------------------------------------+
80
// |                                          CORPS du PROGRAMME                                          |
81
// +------------------------------------------------------------------------------------------------------+
82
 
83
// Affichage d'informations...
458 florian 84
$sortie .= '<br /><h1>Etape n°'.$num_etape.' sur '.INSTAL_NBRE_ETAPE.'.</h1>'."\n";
91 jpm 85
$sortie .= '<p>NOTE: Ce programme d\'installation va essayer de modifier les options de configurations dans le '.
86
                'fichier <tt>pap_config.inc.php</tt>, situ&eacute; dans le r&eacute;pertoire <tt>configuration</tt> du réportoire '.
87
                '<tt>papyrus</tt>. Pour que cela fonctionne, veuillez vous assurez que votre serveur a les droits d\'acc&egrave;s '.
88
                'en &eacute;criture pour ce fichier. Si pour une raison quelconque vous ne pouvez pas faire &ccedil;a vous '.
458 florian 89
                'devrez modifier ce fichier manuellement (ce programme d\'installation vous dira comment).</p><br />'."\n";
91 jpm 90
 
91
// Nous vérifions si nous sommes en phase de test du formulaire de config des préférences
119 jpm 92
if ($_GET['installation'] == 'verif_pref' ) {
91 jpm 93
    $sortie_verif = '';
94
    $sortie_verif .= testerPresenceExtension();
119 jpm 95
    // En mise à jour, nous n'affichons pas les champs pour saisir un administrateur
96
    if (!defined(INSTAL_VERSION_NOUVELLE_NOM)) {
97
        // Nous vérifions que l'utilisateur à bien saisie les infos dans les champs du formulaire
98
        if(empty($_POST['pref']['ADMIN_PRENOM'])) {
99
            $sortie_verif .= '<p class="erreur">Le champ "Prénom" ne doit pas être vide!</p>'."\n";
100
        }
101
        if(empty($_POST['pref']['ADMIN_NOM'])) {
102
            $sortie_verif .= '<p class="erreur">Le champ "Nom" ne doit pas être vide!</p>'."\n";
103
        }
104
        if(empty($_POST['pref']['ADMIN_MAIL'])) {
105
            $sortie_verif .= '<p class="erreur">Le champ "Courriel" ne doit pas être vide!</p>'."\n";
106
        }
107
        if(empty($_POST['pref']['ADMIN_MDP_01'])) {
108
            $sortie_verif .= '<p class="erreur">Le champ "Mot de passe" ne doit pas être vide!</p>'."\n";
109
        }
110
        if($_POST['pref']['ADMIN_MDP_01'] != $_POST['pref']['ADMIN_MDP_02']) {
111
            $sortie_verif .= '<p class="erreur">Le deux mots de passes saisis pour le compte administrateur sont différents!</p>'."\n";
112
        }
76 jpm 113
    }
66 jpm 114
}
91 jpm 115
 
116
// Gestion de l'affichage de sortie
117
if (!isset($sortie_verif) && empty($sortie_verif)) {
118
    // Premier appel du fichier...
119
    $sortie .= creerFormulaire($pref);
120
    $sortie .= '      </ul>'."\n";
458 florian 121
    $sortie .= '<input type="submit" value="Passer à l\'étape suivante" />'."\n";
122
    $sortie .= '</form>';
91 jpm 123
} else if (isset($sortie_verif) && !empty($sortie_verif)) {
124
    // Vérification du fichier avec interuption...
125
    $sortie .= $sortie_verif;
126
    $sortie .= creerFormulaire($pref);
127
    $sortie .= '      </ul>'."\n";
458 florian 128
    $sortie .= '<input type="submit" value="Tester à nouveau" />'."\n";
91 jpm 129
    $sortie .= '    </form>';
130
} else if (isset($sortie_verif) && empty($sortie_verif)) {
131
    // Vérification du fichier sans interuption... passage à l'étape suivante
132
    $sortie .= creerFormulaire($pref, true);
133
    $sortie .= '      </ul>'."\n";
134
    $sortie .= '    </form>';
458 florian 135
    $sortie .= '    <p class="etape_info">La configuration est OK. A l\'&eacute;tape suivante, le programme d\'installation va essayer de configurer '.
91 jpm 136
                    'et créer la base de données.</p>'."\n";
458 florian 137
    $sortie .= '    <form action="'.donnerUrlCourante().'?installation=form_bdd" method="post">'."\n";
91 jpm 138
    $sortie .= '      <input type="hidden" name="pref_serial" value="'.htmlentities(serialize($pref)).'" />'."\n";
139
    $sortie .= '      <input type="submit" value="Continuer" />'."\n";
140
    $sortie .= '    </form>'."\n";
141
}
66 jpm 142
// +------------------------------------------------------------------------------------------------------+
91 jpm 143
// |                                            LISTE DES FONCTIONS                                       |
66 jpm 144
// +------------------------------------------------------------------------------------------------------+
145
 
91 jpm 146
// Création du formulaire de configuration de la base de donneés
147
function creerFormulaire($pref, $bln_lecture = false) {
148
    $disabled = '';
149
    if ($bln_lecture) {
150
        $disabled = ' disabled="disabled" ';
151
    }
152
    $sortie_form = '';
458 florian 153
    $sortie_form .= '    <form action="'.donnerUrlCourante().'?installation=verif_pref" method="post">'."\n";
154
    $sortie_form .= '<ul>'."\n";
119 jpm 155
    // En mise à jour, nous n'affichons pas les champs pour saisir un administrateur
156
    if (!defined(INSTAL_VERSION_NOUVELLE_NOM)) {
458 florian 157
        $sortie_form .= '<li><h2>Configuration d\'un administrateur de Papyrus</h2></li>'."\n";
158
	$sortie_form .=  '<li>Tous les champs ci-dessous sont obligatoires.</li>'."\n";
119 jpm 159
        $sortie_form .=  '<li>'."\n".
160
                    '<label for="admin_prenom">Prénom :</label>'.
161
                    '<input id="admin_prenom"'.$disabled.'type="text" size="30" name="pref[ADMIN_PRENOM]" value="'.$pref['ADMIN_PRENOM'].'" />'.
162
                    '</li>'."\n";
163
        $sortie_form .=  '<li>'."\n".
164
                    '<label for="admin_nom">Nom :</label>'.
165
                    '<input id="admin_nom"'.$disabled.'type="text" size="30" name="pref[ADMIN_NOM]" value="'.$pref['ADMIN_NOM'].'" />'.
166
                    '</li>'."\n";
167
        $sortie_form .=  '<li>'."\n".
168
                    '<label for="admin_mail">Courriel :</label>'.
169
                    '<input id="admin_mail"'.$disabled.'type="text" size="30" name="pref[ADMIN_MAIL]" value="'.$pref['ADMIN_MAIL'].'" />'.
170
                    '</li>'."\n";
171
        $sortie_form .=  '<li>'."\n".
172
                    '<label for="admin_mdp_01">Mot de passe :</label>'.
173
                    '<input id="admin_mdp_01"'.$disabled.'type="password" size="10" name="pref[ADMIN_MDP_01]" value="'.$pref['ADMIN_MDP_01'].'" />'.
174
                    '</li>'."\n";
175
        $sortie_form .=  '<li>'."\n".
176
                    '<label for="admin_mdp_02">Taper à nouveau votre mot de passe :</label>'.
177
                    '<input id="admin_mdp_02"'.$disabled.'type="password" size="10" name="pref[ADMIN_MDP_02]" value="'.$pref['ADMIN_MDP_02'].'" />'.
178
                    '</li>'."\n";
179
        $sortie_form .=  '<li>'."\n".
180
                    '<label for="admin_i18n">Langue :</label>'.
181
                    '<select id="admin_i18n"'.$disabled.'name="pref[ADMIN_I18N]">'.
182
                        '<option value="fr-FR" selected="selected">français</option>'.
183
                    '</select>'.
184
                    '</li>'."\n";
185
    }
458 florian 186
    $sortie_form .=  '<li>&nbsp;</li>'."\n".'<li><h2>Configuration de l\'URL</h2></li>'."\n";
91 jpm 187
    $sortie_form .=  '<li>L\'URL courante dans la barre d\'adresse de votre navigateur devrait correspondre à la valeur '.
188
                'présente dans le champ ci-dessous. Si ce n\'est pas le cas, veuillez corriger la valeur ci-dessous.'."\n";
189
    $sortie_form .=  '<li>'."\n".
190
                '<label for="url_courante">URL courante :</label>'.
191
                '<input id="url_courante"'.$disabled.'type="text" size="60" name="pref[PAP_URL]" value="'.$pref['PAP_URL'].'" />'.
192
                '</li>'."\n";
193
    $sortie_form .= '<li>Le mode "redirection automatique" doit &ecirc;tre s&eacute;lectionn&eacute; uniquement si '.
100 jpm 194
                    'vous utilisez Papyrus avec la redirection d\'URL (si vous ne savez pas ce qu\'est la redirection d\'URL '.
91 jpm 195
                    'n\'activez pas cette option).</li>'."\n";
196
    $sortie_form .=  '<li>'."\n".
197
                '<label for="rewrite_mode">Mode "redirection" :</label>'.
328 jpm 198
                '<input id="rewrite_mode"'.$disabled.'type="checkbox" name="pref[PAP_URL_REECRITURE]" value="1" />'.
199
                'Activation'.'</li>'."\n";
100 jpm 200
    $sortie_form .= '<li>Le champ suivant devrait contenir le chemin d\'accès absolu vers le fichier <tt>papyrus.php</tt> '.
91 jpm 201
                    'sur le serveur où sont déposés les fichiers de Papyrus.</li>'."\n";
202
    $sortie_form .=  '<li>'."\n".
203
                '<label for="web_racine">Dossier de <tt>papyrus.php</tt> :</label>'.
204
                '<input id="web_racine"'.$disabled.'type="text" size="60" name="pref[PAP_CHEMIN_RACINE]" value="'.$pref['PAP_CHEMIN_RACINE'].'" />'.
205
                '</li>'."\n";
206
 
207
    return $sortie_form;
66 jpm 208
}
209
 
91 jpm 210
// Vérification des variables d'environnement de PHP.
211
function testerPresenceExtension() {
212
    $message = '';
213
    $phrase_deb = '<p class="erreur">Pour fonctionner Papyrus à besoin que l\'extension PHP : ';
214
    $phrase_fin = 'soit installée sur le serveur.<br /> Sans cette extension vous ne pourrez pas installer Papyrus !</p>';
215
    // Nous avons besoin de quelques extensions
216
    if (! extension_loaded('mysql')) {
217
        $message .= $phrase_deb.'MYSQL'.$phrase_fin;
218
    }
219
    if (! extension_loaded('ftp')) {
220
        $message .= $phrase_deb.'FTP'.$phrase_fin;
221
    }
222
    if (! extension_loaded('gd')) {
223
        $message .= $phrase_deb.'GD'.$phrase_fin;
224
    }
225
    return $message;
226
}
66 jpm 227
// +------------------------------------------------------------------------------------------------------+
228
// |                                            PIED du PROGRAMME                                         |
229
// +------------------------------------------------------------------------------------------------------+
230
 
231
 
232
/* +--Fin du code ----------------------------------------------------------------------------------------+
233
*
234
* $Log: not supported by cvs2svn $
458 florian 235
* Revision 1.9  2005/04/12 16:09:45  jpm
236
* Amélioration de la gestion de la constante de redirection des urls et de la gestion des constantes de type entier et booléen.
237
*
328 jpm 238
* Revision 1.8  2004/10/27 11:43:32  jpm
239
* Correction bogues diff mise à jour / installation.
240
*
119 jpm 241
* Revision 1.7  2004/10/25 10:22:48  jpm
242
* Correction de quelques bogues, ajouts d'explications pour l'utilisateur et modification des styles CSS.
243
*
100 jpm 244
* Revision 1.6  2004/10/22 17:23:04  jpm
245
* Simplification del'installation de Papyrus.
246
*
91 jpm 247
* Revision 1.5  2004/10/22 09:07:18  jpm
248
* Début simplification installateur.
249
*
87 jpm 250
* Revision 1.4  2004/10/19 17:01:12  jpm
251
* Correction bogues.
252
*
80 jpm 253
* Revision 1.3  2004/10/19 16:47:28  jpm
254
* Transformation en fonction de l'appel de l'application.
255
*
79 jpm 256
* Revision 1.2  2004/10/19 15:59:18  jpm
257
* Ajout de la gestion des valeurs propre à Papyrus à insérer dans la base de données.
258
* Ajout des constantes FTP.
259
*
76 jpm 260
* Revision 1.1  2004/10/15 18:28:59  jpm
261
* Début appli installateur de Papyrus.
66 jpm 262
*
76 jpm 263
*
66 jpm 264
* +-- Fin du code ----------------------------------------------------------------------------------------+
265
*/
266
?>