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