Subversion Repositories Applications.papyrus

Rev

Rev 87 | Rev 100 | 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
// +------------------------------------------------------------------------------------------------------+
91 jpm 34
// CVS : $Id: instal_preference.inc.php,v 1.6 2004-10-22 17:23:04 jpm 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
91 jpm 48
*@version       $Revision: 1.6 $ $Date: 2004-10-22 17:23:04 $
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
59
$tableau = array('ADMIN_PRENOM' => '', 'ADMIN_NOM' => '', 'ADMIN_LOGIN' => '', 'ADMIN_MAIL' => '', 'ADMIN_MDP_01' => '',
60
                'ADMIN_MDP_02' => '', 'ADMIN_I18N' => '', 'PAP_URL' => '', 'PAP_CHEMIN_RACINE' => '', 'PAP_URL_REECRITURE' => '');
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...
84
$sortie .= '<p><strong>Etape n°'.$num_etape.' sur '.INSTAL_NBRE_ETAPE.'.</strong></p>'."\n";
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 '.
89
                'devrez modifier ce fichier manuellement (ce programme d\'installation vous dira comment).</p>'."\n";
90
 
91
// Nous vérifions si nous sommes en phase de test du formulaire de config des préférences
92
if ($_GET['installation'] == 'verif_pref') {
93
    $sortie_verif = '';
94
    $sortie_verif .= testerPresenceExtension();
95
    // Nous vérifions que l'utilisateur à bien saisie les infos dans les champs du formulaire
96
    if(empty($_POST['pref']['ADMIN_PRENOM'])) {
97
        $sortie_verif .= '<p class="erreur">Le champ "Prénom" ne doit pas être vide!</p>'."\n";
76 jpm 98
    }
91 jpm 99
    if(empty($_POST['pref']['ADMIN_NOM'])) {
100
        $sortie_verif .= '<p class="erreur">Le champ "Nom" ne doit pas être vide!</p>'."\n";
101
    }
102
    if(empty($_POST['pref']['ADMIN_LOGIN'])) {
103
        $sortie_verif .= '<p class="erreur">Le champ "Login" ne doit pas être vide!</p>'."\n";
104
    }
105
    if(empty($_POST['pref']['ADMIN_MAIL'])) {
106
        $sortie_verif .= '<p class="erreur">Le champ "Courriel" ne doit pas être vide!</p>'."\n";
107
    }
108
    if(empty($_POST['pref']['ADMIN_MDP_01'])) {
109
        $sortie_verif .= '<p class="erreur">Le champ "Mot de passe" ne doit pas être vide!</p>'."\n";
110
    }
111
    if($_POST['pref']['ADMIN_MDP_01'] != $_POST['pref']['ADMIN_MDP_02']) {
112
        $sortie_verif .= '<p class="erreur">Le deux mots de passes saisis pour le compte administrateur sont différents!</p>'."\n";
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 .= '<li><input type="submit" value="Tester" /></li>'."\n";
121
    $sortie .= '      </ul>'."\n";
122
    $sortie .= '    </form>';
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 .= '<li><input type="submit" value="Tester à nouveau" /></li>'."\n";
128
    $sortie .= '      </ul>'."\n";
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>';
135
    $sortie .= '    <p>A l\'&eacute;tape suivante, le programme d\'installation va essayer de configurer '.
136
                    'et créer la base de données.</p>'."\n";
137
    $sortie .= '    <form action="'.donnerUrlCourante().'?installation=form_bdd" method="POST" />'."\n";
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 = '';
153
    $sortie_form .= '    <form action="'.donnerUrlCourante().'?installation=verif_pref" method="post">';
154
    $sortie_form .= '      <ul>'."\n";
155
    $sortie_form .=  '<li><h2>Configuration d\'un administrateur de Papyrus</h2></li>'."\n";
156
    $sortie_form .=  '<li>Tous les champs ci-dessous sont obligatoires.</li>'."\n";
157
    $sortie_form .=  '<li>'."\n".
158
                '<label for="admin_prenom">Prénom :</label>'.
159
                '<input id="admin_prenom"'.$disabled.'type="text" size="30" name="pref[ADMIN_PRENOM]" value="'.$pref['ADMIN_PRENOM'].'" />'.
160
                '</li>'."\n";
161
    $sortie_form .=  '<li>'."\n".
162
                '<label for="admin_nom">Nom :</label>'.
163
                '<input id="admin_nom"'.$disabled.'type="text" size="30" name="pref[ADMIN_NOM]" value="'.$pref['ADMIN_NOM'].'" />'.
164
                '</li>'."\n";
165
    $sortie_form .=  '<li>'."\n".
166
                '<label for="admin_login">Login :</label>'.
167
                '<input id="admin_login"'.$disabled.'type="text" size="30" name="pref[ADMIN_LOGIN]" value="'.$pref['ADMIN_LOGIN'].'" />'.
168
                '</li>'."\n";
169
    $sortie_form .=  '<li>'."\n".
170
                '<label for="admin_mail">Courriel :</label>'.
171
                '<input id="admin_mail"'.$disabled.'type="text" size="30" name="pref[ADMIN_MAIL]" value="'.$pref['ADMIN_MAIL'].'" />'.
172
                '</li>'."\n";
173
    $sortie_form .=  '<li>'."\n".
174
                '<label for="admin_mdp_01">Mot de passe :</label>'.
175
                '<input id="admin_mdp_01"'.$disabled.'type="password" size="10" name="pref[ADMIN_MDP_01]" value="'.$pref['ADMIN_MDP_01'].'" />'.
176
                '</li>'."\n";
177
    $sortie_form .=  '<li>'."\n".
178
                '<label for="admin_mdp_02">Taper à nouveau votre mot de passe :</label>'.
179
                '<input id="admin_mdp_02"'.$disabled.'type="password" size="10" name="pref[ADMIN_MDP_02]" value="'.$pref['ADMIN_MDP_02'].'" />'.
180
                '</li>'."\n";
181
    $sortie_form .=  '<li>'."\n".
182
                '<label for="admin_i18n">Langue :</label>'.
183
                '<select id="admin_i18n"'.$disabled.'name="pref[ADMIN_I18N]">'.
184
                    '<option value="fr-FR" selected="selected">français</option>'.
185
                '</select>'.
186
                '</li>'."\n";
187
    $sortie_form .=  '<li><h2>Configuration de l\'URL</h2></li>'."\n";
188
    $sortie_form .=  '<li>L\'URL courante dans la barre d\'adresse de votre navigateur devrait correspondre à la valeur '.
189
                'présente dans le champ ci-dessous. Si ce n\'est pas le cas, veuillez corriger la valeur ci-dessous.'."\n";
190
    $sortie_form .=  '<li>'."\n".
191
                '<label for="url_courante">URL courante :</label>'.
192
                '<input id="url_courante"'.$disabled.'type="text" size="60" name="pref[PAP_URL]" value="'.$pref['PAP_URL'].'" />'.
193
                '</li>'."\n";
194
    $sortie_form .= '<li>Le mode "redirection automatique" doit &ecirc;tre s&eacute;lectionn&eacute; uniquement si '.
195
                    'vous utilisez WikiNi avec la redirection d\'URL (si vous ne savez pas ce qu\'est la redirection d\'URL '.
196
                    'n\'activez pas cette option).</li>'."\n";
197
    $sortie_form .=  '<li>'."\n".
198
                '<label for="rewrite_mode">Mode "redirection" :</label>'.
199
                '<input id="rewrite_mode"'.$disabled.'type="checkbox" name="pref[PAP_URL_REECRITURE]" value="'.$pref['PAP_URL_REECRITURE'].'" />'.
200
                'Activation'.
201
                '<input type="hidden" name="pref[PAP_URL_REECRITURE]" value="0" />'.
202
                '</li>'."\n";
203
    $sortie_form .= '<li>Le champ suivant devrait contenir le chemin d\'accès absolu vers le fichier <tt>papyrus.php</tt>'.
204
                    'sur le serveur où sont déposés les fichiers de Papyrus.</li>'."\n";
205
    $sortie_form .=  '<li>'."\n".
206
                '<label for="web_racine">Dossier de <tt>papyrus.php</tt> :</label>'.
207
                '<input id="web_racine"'.$disabled.'type="text" size="60" name="pref[PAP_CHEMIN_RACINE]" value="'.$pref['PAP_CHEMIN_RACINE'].'" />'.
208
                '</li>'."\n";
209
 
210
    return $sortie_form;
66 jpm 211
}
212
 
91 jpm 213
// Vérification des variables d'environnement de PHP.
214
function testerPresenceExtension() {
215
    $message = '';
216
    $phrase_deb = '<p class="erreur">Pour fonctionner Papyrus à besoin que l\'extension PHP : ';
217
    $phrase_fin = 'soit installée sur le serveur.<br /> Sans cette extension vous ne pourrez pas installer Papyrus !</p>';
218
    // Nous avons besoin de quelques extensions
219
    if (! extension_loaded('mysql')) {
220
        $message .= $phrase_deb.'MYSQL'.$phrase_fin;
221
    }
222
    if (! extension_loaded('ftp')) {
223
        $message .= $phrase_deb.'FTP'.$phrase_fin;
224
    }
225
    if (! extension_loaded('gd')) {
226
        $message .= $phrase_deb.'GD'.$phrase_fin;
227
    }
228
    return $message;
229
}
66 jpm 230
// +------------------------------------------------------------------------------------------------------+
231
// |                                            PIED du PROGRAMME                                         |
232
// +------------------------------------------------------------------------------------------------------+
233
 
234
 
235
/* +--Fin du code ----------------------------------------------------------------------------------------+
236
*
237
* $Log: not supported by cvs2svn $
91 jpm 238
* Revision 1.5  2004/10/22 09:07:18  jpm
239
* Début simplification installateur.
240
*
87 jpm 241
* Revision 1.4  2004/10/19 17:01:12  jpm
242
* Correction bogues.
243
*
80 jpm 244
* Revision 1.3  2004/10/19 16:47:28  jpm
245
* Transformation en fonction de l'appel de l'application.
246
*
79 jpm 247
* Revision 1.2  2004/10/19 15:59:18  jpm
248
* Ajout de la gestion des valeurs propre à Papyrus à insérer dans la base de données.
249
* Ajout des constantes FTP.
250
*
76 jpm 251
* Revision 1.1  2004/10/15 18:28:59  jpm
252
* Début appli installateur de Papyrus.
66 jpm 253
*
76 jpm 254
*
66 jpm 255
* +-- Fin du code ----------------------------------------------------------------------------------------+
256
*/
257
?>