| 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> |