From 7fd77270960c4623fc44c70562dfedfc4b8f9982 Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Sun, 18 Aug 2013 01:22:26 +0200 Subject: Amélioration de l'installateur + préfixe BDD MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix issue #96 : on peut désormais choisir un préfixe aux tables de la BDD lors de l'installation Fix issue #115 : échappement des guillemets pendant la phase d'installation Fix issue #116 : le thème de l'installateur est désormais accessible FIx issue #117 : rajout du test de la présence DOMDocument lors de l'installation. Si non présent, on peut pas accéder aux flux RSS. Normalement fourni sur un système RedHat-like par le paquet php-xml --- public/install.php | 66 +++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 45 insertions(+), 21 deletions(-) (limited to 'public') diff --git a/public/install.php b/public/install.php index 930241496..97bed4eac 100644 --- a/public/install.php +++ b/public/install.php @@ -8,14 +8,14 @@ if (isset ($_GET['step'])) { define ('STEP', 1); } -define ('SQL_REQ', 'CREATE TABLE IF NOT EXISTS `category` ( +define ('SQL_REQ', 'CREATE TABLE IF NOT EXISTS `%scategory` ( `id` varchar(6) NOT NULL, `name` varchar(255) NOT NULL, `color` varchar(7) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -CREATE TABLE IF NOT EXISTS `entry` ( +CREATE TABLE IF NOT EXISTS `%sentry` ( `id` varchar(6) NOT NULL, `guid` text NOT NULL, `title` varchar(255) NOT NULL, @@ -34,7 +34,7 @@ CREATE TABLE IF NOT EXISTS `entry` ( KEY `id_feed` (`id_feed`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -CREATE TABLE IF NOT EXISTS `feed` ( +CREATE TABLE IF NOT EXISTS `%sfeed` ( `id` varchar(6) NOT NULL, `url` text NOT NULL, `category` varchar(6) DEFAULT \'000000\', @@ -50,10 +50,10 @@ CREATE TABLE IF NOT EXISTS `feed` ( KEY `category` (`category`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -ALTER TABLE `entry` - ADD CONSTRAINT `entry_ibfk_1` FOREIGN KEY (`id_feed`) REFERENCES `feed` (`id`) ON DELETE CASCADE ON UPDATE CASCADE; -ALTER TABLE `feed` - ADD CONSTRAINT `feed_ibfk_4` FOREIGN KEY (`category`) REFERENCES `category` (`id`) ON DELETE SET NULL ON UPDATE CASCADE;'); +ALTER TABLE `%sentry` + ADD CONSTRAINT `entry_ibfk_1` FOREIGN KEY (`id_feed`) REFERENCES `%sfeed` (`id`) ON DELETE CASCADE ON UPDATE CASCADE; +ALTER TABLE `%sfeed` + ADD CONSTRAINT `feed_ibfk_4` FOREIGN KEY (`category`) REFERENCES `%scategory` (`id`) ON DELETE SET NULL ON UPDATE CASCADE;'); function writeLine ($f, $line) { fwrite ($f, $line . "\n"); @@ -138,15 +138,15 @@ function saveStep2 () { return false; } - $_SESSION['sel'] = $_POST['sel']; - $_SESSION['base_url'] = $_POST['base_url']; - $_SESSION['title'] = $_POST['title']; + $_SESSION['sel'] = addslashes ($_POST['sel']); + $_SESSION['base_url'] = addslashes ($_POST['base_url']); + $_SESSION['title'] = addslashes ($_POST['title']); $_SESSION['old_entries'] = $_POST['old_entries']; if (!is_int (intval ($_SESSION['old_entries'])) || $_SESSION['old_entries'] < 1) { $_SESSION['old_entries'] = 3; } - $_SESSION['mail_login'] = $_POST['mail_login']; + $_SESSION['mail_login'] = addslashes ($_POST['mail_login']); $file_data = PUBLIC_PATH . '/data/Configuration.array.php'; @@ -172,10 +172,11 @@ function saveStep3 () { $_SESSION['bd_error'] = true; } - $_SESSION['bd_host'] = $_POST['host']; - $_SESSION['bd_user'] = $_POST['user']; - $_SESSION['bd_pass'] = $_POST['pass']; - $_SESSION['bd_name'] = $_POST['base']; + $_SESSION['bd_host'] = addslashes ($_POST['host']); + $_SESSION['bd_user'] = addslashes ($_POST['user']); + $_SESSION['bd_pass'] = addslashes ($_POST['pass']); + $_SESSION['bd_name'] = addslashes ($_POST['base']); + $_SESSION['bd_prefix'] = addslashes ($_POST['prefix']); $file_conf = APP_PATH . '/configuration/application.ini'; $f = fopen ($file_conf, 'w'); @@ -190,6 +191,7 @@ function saveStep3 () { writeLine ($f, 'user = "' . $_SESSION['bd_user'] . '"'); writeLine ($f, 'password = "' . $_SESSION['bd_pass'] . '"'); writeLine ($f, 'base = "' . $_SESSION['bd_name'] . '"'); + writeLine ($f, 'prefix = "' . $_SESSION['bd_prefix'] . '"'); fclose ($f); $res = checkBD (); @@ -240,6 +242,7 @@ function checkStep1 () { $minz = file_exists (LIB_PATH . '/minz'); $curl = extension_loaded ('curl'); $pdo = extension_loaded ('pdo_mysql'); + $dom = class_exists('DOMDocument'); $cache = CACHE_PATH && is_writable (CACHE_PATH); $log = LOG_PATH && is_writable (LOG_PATH); $conf = APP_PATH && is_writable (APP_PATH . '/configuration'); @@ -250,11 +253,12 @@ function checkStep1 () { 'minz' => $minz ? 'ok' : 'ko', 'curl' => $curl ? 'ok' : 'ko', 'pdo-mysql' => $pdo ? 'ok' : 'ko', + 'dom' => $dom ? 'ok' : 'ko', 'cache' => $cache ? 'ok' : 'ko', 'log' => $log ? 'ok' : 'ko', 'configuration' => $conf ? 'ok' : 'ko', 'data' => $data ? 'ok' : 'ko', - 'all' => $php && $minz && $curl && $pdo && $cache && $log && $conf && $data ? 'ok' : 'ko' + 'all' => $php && $minz && $curl && $pdo && $dom && $cache && $log && $conf && $data ? 'ok' : 'ko' ); } function checkStep2 () { @@ -293,8 +297,17 @@ function checkBD () { $c = new PDO ('mysql:host=' . $_SESSION['bd_host'] . ';dbname=' . $_SESSION['bd_name'], $_SESSION['bd_user'], $_SESSION['bd_pass']); - - $res = $c->query (SQL_REQ); + $sql = sprintf ( + SQL_REQ, + $_SESSION['bd_prefix'], + $_SESSION['bd_prefix'], + $_SESSION['bd_prefix'], + $_SESSION['bd_prefix'], + $_SESSION['bd_prefix'], + $_SESSION['bd_prefix'], + $_SESSION['bd_prefix'] + ); + $res = $c->query ($sql); if (!$res) { $error = true; @@ -375,6 +388,12 @@ function printStep1 () {

+ +

+ +

+ +

@@ -505,6 +524,13 @@ function printStep3 () { +
+ +
+ +
+
+
@@ -561,9 +587,7 @@ case 5: <?php echo _t ('freshrss_installation'); ?> - - - + -- cgit v1.2.3