webmaster@70
|
1 <?php |
webmaster@70
|
2 require_once "classes.php"; |
webmaster@70
|
3 $req = new Requete(); |
webmaster@70
|
4 $pB = $req->Get('postBack', 'POST', false); |
webmaster@70
|
5 $canWrite = is_writable('includes'); |
webmaster@70
|
6 if(file_exists('includes/config.php')) |
webmaster@70
|
7 { |
webmaster@70
|
8 $tpl = '<p>Un fichier de configuration a déja été crée. Par mesure |
webmaster@70
|
9 de sécurité, il est necessaire de supprimer manuellement ce fichier |
webmaster@70
|
10 avant de pouvoir tenter une nouvelle installation</p>'; |
webmaster@70
|
11 } |
webmaster@70
|
12 else if($pB) |
webmaster@70
|
13 { |
webmaster@70
|
14 // 1. Vérification des identifiants MySQL, création des tables |
webmaster@70
|
15 $db_host = $req->Get('db_host'); |
webmaster@70
|
16 $db_user = $req->Get('db_user'); |
webmaster@70
|
17 $db_pass = $req->Get('db_pass'); |
webmaster@70
|
18 $db_db = $req->Get('db_db'); |
webmaster@70
|
19 $myDB = new DataAccess($db_host, $db_user, $db_pass, $db_db); |
webmaster@70
|
20 if($myDB->isInError()) |
webmaster@70
|
21 { |
webmaster@70
|
22 if($myDB->link === false) |
webmaster@70
|
23 $erreur = "Le triplet (hôte, identifiant, mot de passe) est erroné)"; |
webmaster@70
|
24 else |
webmaster@70
|
25 $erreur = "La base de données mentionné n'existe pas"; |
webmaster@70
|
26 |
webmaster@70
|
27 $tpl = $erreur; |
webmaster@70
|
28 } |
webmaster@70
|
29 else |
webmaster@70
|
30 { |
webmaster@70
|
31 // Requete de créations des 5 tables. |
webmaster@70
|
32 $myDB->Query("CREATE TABLE Brouillons( |
webmaster@70
|
33 id_brouillon INTEGER NOT NULL auto_increment, |
webmaster@70
|
34 Titre VARCHAR(70), |
webmaster@70
|
35 Contenu TEXT, |
webmaster@70
|
36 PRIMARY KEY (id_brouillon) |
webmaster@70
|
37 )"); |
webmaster@70
|
38 $myDB->Query("CREATE TABLE `Commentaires` ( |
webmaster@70
|
39 `num_comm` int(11) NOT NULL auto_increment, |
webmaster@70
|
40 `MessId` int(11) NOT NULL default '0', |
webmaster@70
|
41 `Auteur` varchar(60) NOT NULL default '', |
webmaster@70
|
42 `Adresse` varchar(150) NOT NULL default '', |
webmaster@70
|
43 `AdresseMail` varchar(60) default NULL, |
webmaster@70
|
44 `Comment` mediumtext NOT NULL, |
webmaster@70
|
45 `DateComment` datetime default '0000-00-00 00:00:00', |
webmaster@70
|
46 `isTrackback` tinyint(4) NOT NULL default '0', |
webmaster@70
|
47 `ip` varchar(25) NOT NULL default '', |
webmaster@70
|
48 `Visible` tinyint(4) NOT NULL default '1', |
webmaster@70
|
49 PRIMARY KEY (`num_comm`), |
webmaster@70
|
50 KEY `Visible` (`Visible`), |
webmaster@70
|
51 KEY `Parent` (`MessId`) |
webmaster@70
|
52 )"); |
webmaster@70
|
53 $myDB->Query("CREATE TABLE `Mess` ( |
webmaster@70
|
54 `num_mess` int(11) NOT NULL auto_increment, |
webmaster@70
|
55 `Titre` varchar(70) NOT NULL default '', |
webmaster@70
|
56 `DatePost` datetime NOT NULL default '0000-00-00 00:00:00', |
webmaster@70
|
57 `num_version` varchar(30) NOT NULL default '0', |
webmaster@70
|
58 `NbCommentaires` smallint(6) NOT NULL default '0', |
webmaster@70
|
59 `Message` longtext NOT NULL, |
webmaster@70
|
60 `CommentOpen` tinyint(1) NOT NULL default '0', |
webmaster@70
|
61 `Emot` varchar(20) default NULL, |
webmaster@70
|
62 PRIMARY KEY (`num_mess`) |
webmaster@70
|
63 )"); |
webmaster@70
|
64 $myDB->Query("CREATE TABLE `Tags` ( |
webmaster@70
|
65 `idTag` int(11) NOT NULL auto_increment, |
webmaster@70
|
66 `Tag` varchar(25) NOT NULL default '', |
webmaster@70
|
67 PRIMARY KEY (`idTag`), |
webmaster@70
|
68 KEY `Tag` (`Tag`) |
webmaster@70
|
69 )"); |
webmaster@70
|
70 $myDB->Query("CREATE TABLE `Lien_Tags_Posts` ( |
webmaster@70
|
71 `idLien` int(11) NOT NULL auto_increment, |
webmaster@70
|
72 `idTag` int(11) NOT NULL default '0', |
webmaster@70
|
73 `idMess` int(11) NOT NULL default '0', |
webmaster@70
|
74 PRIMARY KEY (`idLien`), |
webmaster@70
|
75 KEY `idTag` (`idTag`), |
webmaster@70
|
76 KEY `idMess` (`idMess`) |
webmaster@70
|
77 )"); |
webmaster@70
|
78 $tpl = "Yoopii tout bon au niveau de la base de données :-)"; |
webmaster@70
|
79 |
webmaster@70
|
80 // On va maintenant obtenir quelques renseignements supplémentaires |
webmaster@70
|
81 // pour finaliser le fichier de configuration |
webmaster@70
|
82 $akismet = $req->Get('akismet'); |
webmaster@70
|
83 $mail = $req->Get('mail'); |
webmaster@70
|
84 $dg = $req->Get('default_gravatar'); |
webmaster@70
|
85 $blog_url = $req->Get('blog_url'); |
webmaster@70
|
86 $conf = |
webmaster@70
|
87 "<?php |
webmaster@70
|
88 // Connexion à la base de données |
webmaster@70
|
89 define('DB_HOST', '$db_host'); |
webmaster@70
|
90 define('DB_USER', '$db_user'); |
webmaster@70
|
91 define('DB_PASSWORD', '$db_pass'); |
webmaster@70
|
92 define('DB_NAME', '$db_db'); |
webmaster@70
|
93 |
webmaster@70
|
94 // Informations de contact |
webmaster@70
|
95 define('BLOG_URL', '$blog_url'); |
webmaster@70
|
96 define('ADMIN_MAIL', '$mail'); |
webmaster@70
|
97 |
webmaster@70
|
98 // Image par défaut des auteurs des commentaires |
webmaster@70
|
99 define('BLOG_DEFAULT_GRAVATAR', '$dg'); |
webmaster@70
|
100 |
webmaster@70
|
101 // Clé d'authentification pour l'utilisation du service Akismet |
webmaster@70
|
102 define('AKISMET_API_KEY', '$akismet'); |
webmaster@70
|
103 ?> |
webmaster@70
|
104 "; |
webmaster@70
|
105 } |
webmaster@70
|
106 |
webmaster@70
|
107 if(!isset($erreur)) |
webmaster@70
|
108 { |
webmaster@70
|
109 if($canWrite) |
webmaster@70
|
110 { |
webmaster@70
|
111 file_put_contents('includes/config.php', $conf); |
webmaster@70
|
112 } |
webmaster@70
|
113 else |
webmaster@70
|
114 { |
webmaster@70
|
115 $tpl = " |
webmaster@70
|
116 <p>Ce script ne peut pas écrire dans votre dossier includes/. |
webmaster@70
|
117 Par conséquent, il vous faudra de vous même y créer un fichier |
webmaster@70
|
118 nommé <strong>config.php</strong> et y copier les lignes |
webmaster@70
|
119 suivantes:</p> |
webmaster@70
|
120 <pre>" . $conf . "</pre>"; |
webmaster@70
|
121 } |
webmaster@70
|
122 } |
webmaster@70
|
123 |
webmaster@70
|
124 //3. Génération du fichier .htpass |
webmaster@70
|
125 $login = $req->Get('login'); |
webmaster@70
|
126 $password = $req->Get('password'); |
webmaster@70
|
127 system("htpasswd -cbm .htpass '$login' '$password'"); |
webmaster@70
|
128 } |
webmaster@70
|
129 else |
webmaster@70
|
130 { |
webmaster@70
|
131 $url = "http://" . $_SERVER['SERVER_NAME'] . dirname($_SERVER['REQUEST_URI']); |
webmaster@70
|
132 $tpl = new Template('install_form.xml'); |
webmaster@70
|
133 $tpl->setParams(array('#url@value' => $url)); |
webmaster@70
|
134 } |
webmaster@70
|
135 header('Content-Type: text/html; charset=utf-8'); |
webmaster@70
|
136 ?> |
webmaster@70
|
137 <!DOCTYPE html> |
webmaster@70
|
138 <html> |
webmaster@70
|
139 <head> |
webmaster@70
|
140 <title>Installation</title> |
webmaster@70
|
141 <link rel='stylesheet' type='text/css' href='css/install.css' /> |
webmaster@70
|
142 </head> |
webmaster@70
|
143 <body id='Main'> |
webmaster@70
|
144 <h1>Installation de votre weblog</h1> |
webmaster@70
|
145 <?php |
webmaster@70
|
146 echo $tpl; |
webmaster@70
|
147 ?> |
webmaster@70
|
148 </body> |
webmaster@70
|
149 </html> |