summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2013-08-18 01:22:26 +0200
committerGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2013-08-18 01:22:26 +0200
commit7fd77270960c4623fc44c70562dfedfc4b8f9982 (patch)
treeb32acecbdf1decc3fc8e95bfd18bd1aa908fb1aa
parentabb25a58dc8668c6716c419c99b215536861057a (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.php3
-rw-r--r--app/i18n/fr.php3
-rwxr-xr-xapp/models/Category.php20
-rwxr-xr-xapp/models/Entry.php36
-rw-r--r--app/models/Feed.php30
-rw-r--r--lib/lib_phpQuery.php2
-rwxr-xr-xlib/minz/Configuration.php1
-rwxr-xr-xlib/minz/dao/Model_pdo.php4
-rw-r--r--public/install.php66
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>