diff options
| author | 2013-08-18 01:22:26 +0200 | |
|---|---|---|
| committer | 2013-08-18 01:22:26 +0200 | |
| commit | 7fd77270960c4623fc44c70562dfedfc4b8f9982 (patch) | |
| tree | b32acecbdf1decc3fc8e95bfd18bd1aa908fb1aa | |
| parent | abb25a58dc8668c6716c419c99b215536861057a (diff) | |
Amélioration de l'installateur + préfixe BDD
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
| -rw-r--r-- | app/i18n/en.php | 3 | ||||
| -rw-r--r-- | app/i18n/fr.php | 3 | ||||
| -rwxr-xr-x | app/models/Category.php | 20 | ||||
| -rwxr-xr-x | app/models/Entry.php | 36 | ||||
| -rw-r--r-- | app/models/Feed.php | 30 | ||||
| -rw-r--r-- | lib/lib_phpQuery.php | 2 | ||||
| -rwxr-xr-x | lib/minz/Configuration.php | 1 | ||||
| -rwxr-xr-x | lib/minz/dao/Model_pdo.php | 4 | ||||
| -rw-r--r-- | public/install.php | 66 |
9 files changed, 100 insertions, 65 deletions
diff --git a/app/i18n/en.php b/app/i18n/en.php index 9afc0182c..8c87062f4 100644 --- a/app/i18n/en.php +++ b/app/i18n/en.php @@ -266,6 +266,8 @@ return array ( 'curl_is_nok' => 'You haven\'t cURL', 'pdomysql_is_ok' => 'You have PDO and its driver for MySQL', 'pdomysql_is_nok' => 'You haven\'t PDO or its driver for MySQL', + 'dom_is_ok' => 'You have the necessary to browse the DOM', + 'dom_is_nok' => 'You haven\'t the necessary to browse the DOM (php-xml package can be useful)', 'cache_is_ok' => 'Permissions on cache directory are good', 'log_is_ok' => 'Permissions on logs directory are good', 'conf_is_ok' => 'Permissions on configuration directory are good', @@ -285,6 +287,7 @@ return array ( 'username' => 'Username', 'password' => 'Password', 'bdd' => 'Database', + 'prefix' => 'Table prefix', 'installation_is_ok' => 'Installation process is finished. You must delete <em>install.php</em> file to access FreshRSS... or simply click on following button :)', 'finish_installation' => 'Finish installation', diff --git a/app/i18n/fr.php b/app/i18n/fr.php index 57e288166..73da583ed 100644 --- a/app/i18n/fr.php +++ b/app/i18n/fr.php @@ -266,6 +266,8 @@ return array ( 'curl_is_nok' => 'Vous ne disposez pas de cURL', 'pdomysql_is_ok' => 'Vous disposez de PDO et de son driver pour MySQL', 'pdomysql_is_nok' => 'Vous ne disposez pas de PDO ou de son driver pour MySQL', + 'dom_is_ok' => 'Vous disposez du nécessaire pour parcourir le DOM', + 'dom_is_nok' => 'Vous ne disposez pas du nécessaire pour parcourir le DOM (voir du côté du paquet php-xml ?)', 'cache_is_ok' => 'Les droits sur le répertoire de cache sont bons', 'log_is_ok' => 'Les droits sur le répertoire des logs sont bons', 'conf_is_ok' => 'Les droits sur le répertoire de configuration sont bons', @@ -285,6 +287,7 @@ return array ( 'username' => 'Nom utilisateur', 'password' => 'Mot de passe', 'bdd' => 'Base de données', + 'prefix' => 'Préfixe des tables', 'installation_is_ok' => 'L\'installation s\'est bien passée. Il faut maintenant supprimer le fichier <em>install.php</em> pour pouvoir accéder à FreshRSS... ou simplement cliquer sur le bouton ci-dessous :)', 'finish_installation' => 'Terminer l\'installation', diff --git a/app/models/Category.php b/app/models/Category.php index 197c4df26..e733b15ba 100755 --- a/app/models/Category.php +++ b/app/models/Category.php @@ -65,7 +65,7 @@ class Category extends Model { class CategoryDAO extends Model_pdo { public function addCategory ($valuesTmp) { - $sql = 'INSERT INTO category (id, name, color) VALUES(?, ?, ?)'; + $sql = 'INSERT INTO ' . $this->prefix . 'category (id, name, color) VALUES(?, ?, ?)'; $stm = $this->bd->prepare ($sql); $values = array ( @@ -84,7 +84,7 @@ class CategoryDAO extends Model_pdo { } public function updateCategory ($id, $valuesTmp) { - $sql = 'UPDATE category SET name=?, color=? WHERE id=?'; + $sql = 'UPDATE ' . $this->prefix . 'category SET name=?, color=? WHERE id=?'; $stm = $this->bd->prepare ($sql); $values = array ( @@ -103,7 +103,7 @@ class CategoryDAO extends Model_pdo { } public function deleteCategory ($id) { - $sql = 'DELETE FROM category WHERE id=?'; + $sql = 'DELETE FROM ' . $this->prefix . 'category WHERE id=?'; $stm = $this->bd->prepare ($sql); $values = array ($id); @@ -118,7 +118,7 @@ class CategoryDAO extends Model_pdo { } public function searchById ($id) { - $sql = 'SELECT * FROM category WHERE id=?'; + $sql = 'SELECT * FROM ' . $this->prefix . 'category WHERE id=?'; $stm = $this->bd->prepare ($sql); $values = array ($id); @@ -134,7 +134,7 @@ class CategoryDAO extends Model_pdo { } } public function searchByName ($name) { - $sql = 'SELECT * FROM category WHERE name=?'; + $sql = 'SELECT * FROM ' . $this->prefix . 'category WHERE name=?'; $stm = $this->bd->prepare ($sql); $values = array ($name); @@ -151,7 +151,7 @@ class CategoryDAO extends Model_pdo { } public function listCategories () { - $sql = 'SELECT * FROM category ORDER BY name'; + $sql = 'SELECT * FROM ' . $this->prefix . 'category ORDER BY name'; $stm = $this->bd->prepare ($sql); $stm->execute (); @@ -159,7 +159,7 @@ class CategoryDAO extends Model_pdo { } public function getDefault () { - $sql = 'SELECT * FROM category WHERE id="000000"'; + $sql = 'SELECT * FROM ' . $this->prefix . 'category WHERE id="000000"'; $stm = $this->bd->prepare ($sql); $stm->execute (); @@ -190,7 +190,7 @@ class CategoryDAO extends Model_pdo { } public function count () { - $sql = 'SELECT COUNT(*) AS count FROM category'; + $sql = 'SELECT COUNT(*) AS count FROM ' . $this->prefix . 'category'; $stm = $this->bd->prepare ($sql); $stm->execute (); $res = $stm->fetchAll (PDO::FETCH_ASSOC); @@ -199,7 +199,7 @@ class CategoryDAO extends Model_pdo { } public function countFeed ($id) { - $sql = 'SELECT COUNT(*) AS count FROM feed WHERE category=?'; + $sql = 'SELECT COUNT(*) AS count FROM ' . $this->prefix . 'feed WHERE category=?'; $stm = $this->bd->prepare ($sql); $values = array ($id); $stm->execute ($values); @@ -209,7 +209,7 @@ class CategoryDAO extends Model_pdo { } public function countNotRead ($id) { - $sql = 'SELECT COUNT(*) AS count FROM entry e INNER JOIN feed f ON e.id_feed = f.id WHERE category=? AND e.is_read=0'; + $sql = 'SELECT COUNT(*) AS count FROM ' . $this->prefix . 'entry e INNER JOIN ' . $this->prefix . 'feed f ON e.id_feed = f.id WHERE category=? AND e.is_read=0'; $stm = $this->bd->prepare ($sql); $values = array ($id); $stm->execute ($values); diff --git a/app/models/Entry.php b/app/models/Entry.php index 1382a0d16..ae70bb58e 100755 --- a/app/models/Entry.php +++ b/app/models/Entry.php @@ -222,7 +222,7 @@ class Entry extends Model { class EntryDAO extends Model_pdo { public function addEntry ($valuesTmp) { - $sql = 'INSERT INTO entry(id, guid, title, author, content, link, date, is_read, is_favorite, is_public, id_feed, lastUpdate, tags) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'; + $sql = 'INSERT INTO ' . $this->prefix . 'entry(id, guid, title, author, content, link, date, is_read, is_favorite, is_public, id_feed, lastUpdate, tags) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'; $stm = $this->bd->prepare ($sql); $values = array ( @@ -261,7 +261,7 @@ class EntryDAO extends Model_pdo { } $set = substr ($set, 0, -2); - $sql = 'UPDATE entry SET ' . $set . ' WHERE id=?'; + $sql = 'UPDATE ' . $this->prefix . 'entry SET ' . $set . ' WHERE id=?'; $stm = $this->bd->prepare ($sql); foreach ($valuesTmp as $v) { @@ -279,7 +279,7 @@ class EntryDAO extends Model_pdo { } public function markReadEntries ($read, $dateMax) { - $sql = 'UPDATE entry e INNER JOIN feed f ON e.id_feed = f.id SET is_read = ? WHERE date < ? AND priority > 0'; + $sql = 'UPDATE ' . $this->prefix . 'entry e INNER JOIN ' . $this->prefix . 'feed f ON e.id_feed = f.id SET is_read = ? WHERE date < ? AND priority > 0'; $stm = $this->bd->prepare ($sql); $values = array ($read, $dateMax); @@ -293,7 +293,7 @@ class EntryDAO extends Model_pdo { } } public function markReadCat ($id, $read, $dateMax) { - $sql = 'UPDATE entry e INNER JOIN feed f ON e.id_feed = f.id SET is_read = ? WHERE category = ? AND date < ?'; + $sql = 'UPDATE ' . $this->prefix . 'entry e INNER JOIN ' . $this->prefix . 'feed f ON e.id_feed = f.id SET is_read = ? WHERE category = ? AND date < ?'; $stm = $this->bd->prepare ($sql); $values = array ($read, $id, $dateMax); @@ -307,7 +307,7 @@ class EntryDAO extends Model_pdo { } } public function markReadFeed ($id, $read, $dateMax) { - $sql = 'UPDATE entry SET is_read = ? WHERE id_feed = ? AND date < ?'; + $sql = 'UPDATE ' . $this->prefix . 'entry SET is_read = ? WHERE id_feed = ? AND date < ?'; $stm = $this->bd->prepare ($sql); $values = array ($read, $id, $dateMax); @@ -332,7 +332,7 @@ class EntryDAO extends Model_pdo { } $set = substr ($set, 0, -2); - $sql = 'UPDATE entry SET ' . $set; + $sql = 'UPDATE ' . $this->prefix . 'entry SET ' . $set; $stm = $this->bd->prepare ($sql); foreach ($valuesTmp as $v) { @@ -350,7 +350,7 @@ class EntryDAO extends Model_pdo { public function cleanOldEntries ($nb_month) { $date = 60 * 60 * 24 * 30 * $nb_month; - $sql = 'DELETE FROM entry WHERE date <= ? AND is_favorite = 0 AND annotation = ""'; + $sql = 'DELETE FROM ' . $this->prefix . 'entry WHERE date <= ? AND is_favorite = 0 AND annotation = ""'; $stm = $this->bd->prepare ($sql); $values = array ( @@ -368,7 +368,7 @@ class EntryDAO extends Model_pdo { public function searchByGuid ($feed_id, $id) { // un guid est unique pour un flux donné - $sql = 'SELECT * FROM entry WHERE id_feed=? AND guid=?'; + $sql = 'SELECT * FROM ' . $this->prefix . 'entry WHERE id_feed=? AND guid=?'; $stm = $this->bd->prepare ($sql); $values = array ( @@ -388,7 +388,7 @@ class EntryDAO extends Model_pdo { } public function searchById ($id) { - $sql = 'SELECT * FROM entry WHERE id=?'; + $sql = 'SELECT * FROM ' . $this->prefix . 'entry WHERE id=?'; $stm = $this->bd->prepare ($sql); $values = array ($id); @@ -417,8 +417,8 @@ class EntryDAO extends Model_pdo { $order = ''; } - $sql = 'SELECT e.* FROM entry e' - . ' INNER JOIN feed f ON e.id_feed = f.id' . $where + $sql = 'SELECT e.* FROM ' . $this->prefix . 'entry e' + . ' INNER JOIN ' . $this->prefix . 'feed f ON e.id_feed = f.id' . $where . ' ORDER BY date' . $order; $stm = $this->bd->prepare ($sql); $stm->execute ($values); @@ -442,7 +442,7 @@ class EntryDAO extends Model_pdo { } public function count () { - $sql = 'SELECT COUNT(*) AS count FROM entry e INNER JOIN feed f ON e.id_feed = f.id WHERE priority > 0'; + $sql = 'SELECT COUNT(*) AS count FROM ' . $this->prefix . 'entry e INNER JOIN ' . $this->prefix . 'feed f ON e.id_feed = f.id WHERE priority > 0'; $stm = $this->bd->prepare ($sql); $stm->execute (); $res = $stm->fetchAll (PDO::FETCH_ASSOC); @@ -450,7 +450,7 @@ class EntryDAO extends Model_pdo { return $res[0]['count']; } public function countNotRead () { - $sql = 'SELECT COUNT(*) AS count FROM entry e INNER JOIN feed f ON e.id_feed = f.id WHERE is_read=0 AND priority > 0'; + $sql = 'SELECT COUNT(*) AS count FROM ' . $this->prefix . 'entry e INNER JOIN ' . $this->prefix . 'feed f ON e.id_feed = f.id WHERE is_read=0 AND priority > 0'; $stm = $this->bd->prepare ($sql); $stm->execute (); $res = $stm->fetchAll (PDO::FETCH_ASSOC); @@ -459,7 +459,7 @@ class EntryDAO extends Model_pdo { } public function countNotReadByFeed ($id) { - $sql = 'SELECT COUNT(*) AS count FROM entry WHERE is_read = 0 AND id_feed = ?'; + $sql = 'SELECT COUNT(*) AS count FROM ' . $this->prefix . 'entry WHERE is_read = 0 AND id_feed = ?'; $stm = $this->bd->prepare ($sql); $stm->execute (array ($id)); $res = $stm->fetchAll (PDO::FETCH_ASSOC); @@ -468,7 +468,7 @@ class EntryDAO extends Model_pdo { } public function countNotReadByCat ($id) { - $sql = 'SELECT COUNT(*) AS count FROM entry e INNER JOIN feed f ON e.id_feed = f.id WHERE is_read=0 AND category = ?'; + $sql = 'SELECT COUNT(*) AS count FROM ' . $this->prefix . 'entry e INNER JOIN ' . $this->prefix . 'feed f ON e.id_feed = f.id WHERE is_read=0 AND category = ?'; $stm = $this->bd->prepare ($sql); $stm->execute (array ($id)); $res = $stm->fetchAll (PDO::FETCH_ASSOC); @@ -477,7 +477,7 @@ class EntryDAO extends Model_pdo { } public function countNotReadFavorites () { - $sql = 'SELECT COUNT(*) AS count FROM entry WHERE is_read=0 AND is_favorite=1'; + $sql = 'SELECT COUNT(*) AS count FROM ' . $this->prefix . 'entry WHERE is_read=0 AND is_favorite=1'; $stm = $this->bd->prepare ($sql); $stm->execute (); $res = $stm->fetchAll (PDO::FETCH_ASSOC); @@ -485,7 +485,7 @@ class EntryDAO extends Model_pdo { return $res[0]['count']; } public function countFavorites () { - $sql = 'SELECT COUNT(*) AS count FROM entry WHERE is_favorite=1'; + $sql = 'SELECT COUNT(*) AS count FROM ' . $this->prefix . 'entry WHERE is_favorite=1'; $stm = $this->bd->prepare ($sql); $stm->execute (); $res = $stm->fetchAll (PDO::FETCH_ASSOC); @@ -494,7 +494,7 @@ class EntryDAO extends Model_pdo { } public function optimizeTable() { - $sql = 'OPTIMIZE TABLE entry'; + $sql = 'OPTIMIZE TABLE ' . $this->prefix . 'entry'; $stm = $this->bd->prepare ($sql); $stm->execute (); } diff --git a/app/models/Feed.php b/app/models/Feed.php index 9d1047bd4..a7788df17 100644 --- a/app/models/Feed.php +++ b/app/models/Feed.php @@ -240,7 +240,7 @@ class Feed extends Model { class FeedDAO extends Model_pdo { public function addFeed ($valuesTmp) { - $sql = 'INSERT INTO feed (id, url, category, name, website, description, lastUpdate, priority, httpAuth, error) VALUES(?, ?, ?, ?, ?, ?, ?, 10, ?, 0)'; + $sql = 'INSERT INTO ' . $this->prefix . 'feed (id, url, category, name, website, description, lastUpdate, priority, httpAuth, error) VALUES(?, ?, ?, ?, ?, ?, ?, 10, ?, 0)'; $stm = $this->bd->prepare ($sql); $values = array ( @@ -274,7 +274,7 @@ class FeedDAO extends Model_pdo { } $set = substr ($set, 0, -2); - $sql = 'UPDATE feed SET ' . $set . ' WHERE id=?'; + $sql = 'UPDATE ' . $this->prefix . 'feed SET ' . $set . ' WHERE id=?'; $stm = $this->bd->prepare ($sql); foreach ($valuesTmp as $v) { @@ -292,7 +292,7 @@ class FeedDAO extends Model_pdo { } public function updateLastUpdate ($id) { - $sql = 'UPDATE feed SET lastUpdate=?, error=0 WHERE id=?'; + $sql = 'UPDATE ' . $this->prefix . 'feed SET lastUpdate=?, error=0 WHERE id=?'; $stm = $this->bd->prepare ($sql); $values = array ( @@ -310,7 +310,7 @@ class FeedDAO extends Model_pdo { } public function isInError ($id) { - $sql = 'UPDATE feed SET error=1 WHERE id=?'; + $sql = 'UPDATE ' . $this->prefix . 'feed SET error=1 WHERE id=?'; $stm = $this->bd->prepare ($sql); $values = array ( @@ -333,7 +333,7 @@ class FeedDAO extends Model_pdo { $newCat = $catDAO->getDefault (); } - $sql = 'UPDATE feed SET category=? WHERE category=?'; + $sql = 'UPDATE ' . $this->prefix . 'feed SET category=? WHERE category=?'; $stm = $this->bd->prepare ($sql); $values = array ( @@ -351,7 +351,7 @@ class FeedDAO extends Model_pdo { } public function deleteFeed ($id) { - $sql = 'DELETE FROM feed WHERE id=?'; + $sql = 'DELETE FROM ' . $this->prefix . 'feed WHERE id=?'; $stm = $this->bd->prepare ($sql); $values = array ($id); @@ -365,7 +365,7 @@ class FeedDAO extends Model_pdo { } } public function deleteFeedByCategory ($id) { - $sql = 'DELETE FROM feed WHERE category=?'; + $sql = 'DELETE FROM ' . $this->prefix . 'feed WHERE category=?'; $stm = $this->bd->prepare ($sql); $values = array ($id); @@ -380,7 +380,7 @@ class FeedDAO extends Model_pdo { } public function searchById ($id) { - $sql = 'SELECT * FROM feed WHERE id=?'; + $sql = 'SELECT * FROM ' . $this->prefix . 'feed WHERE id=?'; $stm = $this->bd->prepare ($sql); $values = array ($id); @@ -396,7 +396,7 @@ class FeedDAO extends Model_pdo { } } public function searchByUrl ($url) { - $sql = 'SELECT * FROM feed WHERE url=?'; + $sql = 'SELECT * FROM ' . $this->prefix . 'feed WHERE url=?'; $stm = $this->bd->prepare ($sql); $values = array ($url); @@ -413,7 +413,7 @@ class FeedDAO extends Model_pdo { } public function listFeeds () { - $sql = 'SELECT * FROM feed ORDER BY name'; + $sql = 'SELECT * FROM ' . $this->prefix . 'feed ORDER BY name'; $stm = $this->bd->prepare ($sql); $stm->execute (); @@ -421,7 +421,7 @@ class FeedDAO extends Model_pdo { } public function listFeedsOrderUpdate () { - $sql = 'SELECT * FROM feed ORDER BY lastUpdate'; + $sql = 'SELECT * FROM ' . $this->prefix . 'feed ORDER BY lastUpdate'; $stm = $this->bd->prepare ($sql); $stm->execute (); @@ -429,7 +429,7 @@ class FeedDAO extends Model_pdo { } public function listByCategory ($cat) { - $sql = 'SELECT * FROM feed WHERE category=? ORDER BY name'; + $sql = 'SELECT * FROM ' . $this->prefix . 'feed WHERE category=? ORDER BY name'; $stm = $this->bd->prepare ($sql); $values = array ($cat); @@ -440,7 +440,7 @@ class FeedDAO extends Model_pdo { } public function count () { - $sql = 'SELECT COUNT(*) AS count FROM feed'; + $sql = 'SELECT COUNT(*) AS count FROM ' . $this->prefix . 'feed'; $stm = $this->bd->prepare ($sql); $stm->execute (); $res = $stm->fetchAll (PDO::FETCH_ASSOC); @@ -449,7 +449,7 @@ class FeedDAO extends Model_pdo { } public function countEntries ($id) { - $sql = 'SELECT COUNT(*) AS count FROM entry WHERE id_feed=?'; + $sql = 'SELECT COUNT(*) AS count FROM ' . $this->prefix . 'entry WHERE id_feed=?'; $stm = $this->bd->prepare ($sql); $values = array ($id); $stm->execute ($values); @@ -458,7 +458,7 @@ class FeedDAO extends Model_pdo { return $res[0]['count']; } public function countNotRead ($id) { - $sql = 'SELECT COUNT(*) AS count FROM entry WHERE is_read=0 AND id_feed=?'; + $sql = 'SELECT COUNT(*) AS count FROM ' . $this->prefix . 'entry WHERE is_read=0 AND id_feed=?'; $stm = $this->bd->prepare ($sql); $values = array ($id); $stm->execute ($values); diff --git a/lib/lib_phpQuery.php b/lib/lib_phpQuery.php index 708b7a3df..33ed8a011 100644 --- a/lib/lib_phpQuery.php +++ b/lib/lib_phpQuery.php @@ -514,7 +514,7 @@ class DOMDocumentWrapper { .($xhtml ? '/' : '') .'>'; if (strpos($html, '<head') === false) { - if (strpos($hltml, '<html') === false) { + if (strpos($html, '<html') === false) { return $meta.$html; } else { return preg_replace( diff --git a/lib/minz/Configuration.php b/lib/minz/Configuration.php index 7cb7ea207..e670a5b21 100755 --- a/lib/minz/Configuration.php +++ b/lib/minz/Configuration.php @@ -221,6 +221,7 @@ class Configuration { self::$db['user'] = $db['user']; self::$db['password'] = $db['password']; self::$db['base'] = $db['base']; + self::$db['prefix'] = isset ($db['prefix']) ? $db['prefix'] : ''; } } diff --git a/lib/minz/dao/Model_pdo.php b/lib/minz/dao/Model_pdo.php index 6114de127..b3a0569c1 100755 --- a/lib/minz/dao/Model_pdo.php +++ b/lib/minz/dao/Model_pdo.php @@ -13,6 +13,8 @@ class Model_pdo { * $bd variable représentant la base de données */ protected $bd; + + protected $prefix; /** * Créé la connexion à la base de données à l'aide des variables @@ -29,6 +31,8 @@ class Model_pdo { $db['user'], $db['password'] ); + + $this->prefix = $db['prefix']; } catch (Exception $e) { throw new PDOConnectionException ( $string, 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 () { <p class="alert alert-error"><span class="alert-head"><?php echo _t ('damn'); ?></span> <?php echo _t ('pdomysql_is_nok'); ?></p> <?php } ?> + <?php if ($res['dom'] == 'ok') { ?> + <p class="alert alert-success"><span class="alert-head"><?php echo _t ('ok'); ?></span> <?php echo _t ('dom_is_ok'); ?></p> + <?php } else { ?> + <p class="alert alert-error"><span class="alert-head"><?php echo _t ('damn'); ?></span> <?php echo _t ('dom_is_nok'); ?></p> + <?php } ?> + <?php if ($res['cache'] == 'ok') { ?> <p class="alert alert-success"><span class="alert-head"><?php echo _t ('ok'); ?></span> <?php echo _t ('cache_is_ok'); ?></p> <?php } else { ?> @@ -505,6 +524,13 @@ function printStep3 () { </div> </div> + <div class="form-group"> + <label class="group-name" for="prefix"><?php echo _t ('prefix'); ?></label> + <div class="group-controls"> + <input type="text" id="prefix" name="prefix" value="<?php echo isset ($_SESSION['bd_prefix']) ? $_SESSION['bd_prefix'] : 'freshrss_'; ?>" /> + </div> + </div> + <div class="form-group form-actions"> <div class="group-controls"> <button type="submit" class="btn btn-important"><?php echo _t ('save'); ?></button> @@ -561,9 +587,7 @@ case 5: <meta charset="utf-8"> <meta name="viewport" content="initial-scale=1.0"> <title><?php echo _t ('freshrss_installation'); ?></title> - <link rel="stylesheet" type="text/css" media="all" href="theme/fallback.css" /> - <link rel="stylesheet" type="text/css" media="all" href="theme/global.css" /> - <link rel="stylesheet" type="text/css" media="all" href="theme/freshrss.css" /> + <link rel="stylesheet" type="text/css" media="all" href="themes/default/style.css" /> </head> <body> |
