From 8c2c5d287d5ac08aa9d0a3fb3d353ea7a18c92c3 Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Sun, 14 Apr 2013 18:57:47 +0200 Subject: Fix issue #43 : création d'un installateur MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/install.php | 486 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 486 insertions(+) create mode 100755 public/install.php (limited to 'public/install.php') diff --git a/public/install.php b/public/install.php new file mode 100755 index 000000000..512e4b5d5 --- /dev/null +++ b/public/install.php @@ -0,0 +1,486 @@ + $val) { + if (is_array ($val)) { + writeLine ($f, '\'' . $key . '\' => array ('); + writeArray ($f, $val); + writeLine ($f, '),'); + } else { + writeLine ($f, '\'' . $key . '\' => \'' . $val . '\','); + } + } +} + +/*** SAUVEGARDES ***/ +function saveStep2 () { + if (!empty ($_POST)) { + if (empty ($_POST['sel']) || + empty ($_POST['title']) || + empty ($_POST['old_entries'])) { + return false; + } + + $_SESSION['sel'] = $_POST['sel']; + $_SESSION['base_url'] = $_POST['base_url']; + $_SESSION['title'] = $_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']; + + $file_data = PUBLIC_PATH . '/data/Configuration.array.php'; + + $conf = array ( + 'posts_per_page' => 20, + 'default_view' => 'not_read', + 'display_posts' => 'no', + 'sort_order' => 'low_to_high', + 'old_entries' => $_SESSION['old_entries'], + 'mail_login' => $_SESSION['mail_login'], + 'shortcuts' => array ( + 'mark_read' => 'r', + 'mark_favorite' => 'f', + 'go_website' => 'space', + 'next_entry' => 'j', + 'prev_entry' => 'k', + 'next_page' => 'right', + 'prev_page' => 'left', + ), + 'mark_when' => array ( + 'article' => 'yes', + 'site' => 'yes', + 'page' => 'no', + ), + ); + $f = fopen ($file_data, 'w'); + writeLine ($f, ' 1 && checkStep1 ()['all'] != 'ok') { + header ('Location: index.php?step=1'); + } elseif (STEP > 2 && checkStep2 ()['all'] != 'ok') { + header ('Location: index.php?step=2'); + } elseif (STEP > 3 && checkStep3 ()['all'] != 'ok') { + header ('Location: index.php?step=3'); + } +} +function checkStep1 () { + $php = version_compare (PHP_VERSION, '5.1.0') >= 0; + $minz = file_exists (LIB_PATH . '/minz'); + $curl = extension_loaded ('curl'); + $pdo = extension_loaded ('pdo_mysql'); + $cache = CACHE_PATH && is_writable (CACHE_PATH); + $conf = APP_PATH && is_writable (APP_PATH . '/configuration'); + $data = is_writable (PUBLIC_PATH . '/data'); + + return array ( + 'php' => $php ? 'ok' : 'ko', + 'minz' => $minz ? 'ok' : 'ko', + 'curl' => $curl ? 'ok' : 'ko', + 'pdo-mysql' => $pdo ? 'ok' : 'ko', + 'cache' => $cache ? 'ok' : 'ko', + 'configuration' => $conf ? 'ok' : 'ko', + 'data' => $data ? 'ok' : 'ko', + 'all' => $php && $minz && $curl && $pdo && $cache && $conf && $data ? 'ok' : 'ko' + ); +} +function checkStep2 () { + $conf = isset ($_SESSION['sel']) && + isset ($_SESSION['base_url']) && + isset ($_SESSION['title']) && + isset ($_SESSION['old_entries']) && + isset ($_SESSION['mail_login']); + $data = file_exists (PUBLIC_PATH . '/data/Configuration.array.php'); + + return array ( + 'conf' => $conf ? 'ok' : 'ko', + 'data' => $data ? 'ok' : 'ko', + 'all' => $conf && $data ? 'ok' : 'ko' + ); +} +function checkStep3 () { + $conf = file_exists (APP_PATH . '/configuration/application.ini'); + $bd = isset ($_SESSION['bd_host']) && + isset ($_SESSION['bd_user']) && + isset ($_SESSION['bd_pass']) && + isset ($_SESSION['bd_name']); + + return array ( + 'bd' => $bd ? 'ok' : 'ko', + 'conf' => $conf ? 'ok' : 'ko', + 'all' => $bd && $conf ? 'ok' : 'ko' + ); +} +function checkBD () { + $error = false; + + try { + $c = new PDO ('mysql:host=' . $_SESSION['bd_host'] . ';dbname=' . $_SESSION['bd_name'], + $_SESSION['bd_user'], + $_SESSION['bd_pass']); + + $res = $c->query (SQL_REQ); + + if (!$res) { + $error = true; + } + } catch (PDOException $e) { + $error = true; + } + + if ($error && file_exists (APP_PATH . '/configuration/application.ini')) { + unlink (APP_PATH . '/configuration/application.ini'); + } + + return !$error; +} + +/*** AFFICHAGE ***/ +function printStep1 () { + $res = checkStep1 (); +?> + + + +

Ok ! Votre version de PHP est la et est compatible avec FreshRSS

+ +

Arf ! Votre version de PHP est la . Vous devriez avoir au moins la version 5.1.0

+ + + +

Ok ! Vous disposez du framework Minz

+ +

Arf ! Vous ne disposez pas de la librairie Minz. Vous devriez exécuter le script build.sh ou bien la télécharger sur Github et installer dans le répertoire le contenu de son répertoire /lib.

+ + + + +

Ok ! Vous disposez de cURL dans sa version

+ +

Arf ! Vous ne disposez pas de cURL

+ + + +

Ok ! Vous disposez de PDO et de son driver pour MySQL

+ +

Arf ! Vous ne disposez pas de PDO ou de son driver pour MySQL

+ + + +

Ok ! Les droits sur le répertoire de cache sont bons

+ +

Arf ! Veuillez vérifier les droits sur le répertoire . Le serveur HTTP doit être capable d'écrire dedans

+ + + +

Ok ! Les droits sur le répertoire de configuration sont bons

+ +

Arf ! Veuillez vérifier les droits sur le répertoire . Le serveur HTTP doit être capable d'écrire dedans

+ + + +

Ok ! Les droits sur le répertoire de data sont bons

+ +

Arf ! Veuillez vérifier les droits sur le répertoire . Le serveur HTTP doit être capable d'écrire dedans

+ + + + Passer à l'étape suivante + + Veuillez corriger les erreurs avant de passer à l'étape suivante. + + + +

Ok ! La configuration générale a été enregistrée.

+ + +
+ Configuration générale +
+ +
+ Vous devriez changer cette valeur par n'importe quelle autre +
+
+ + +
+ +
+ Laissez tel quel dans le doute +
+
+ +
+ +
+ +
+
+ +
+ +
+ mois +
+
+ +
+ +
+ + +
+
+ +
+
+ + + + Passer à l'étape suivante + +
+
+
+ + +

Ok ! La configuration de la base de données a été enregistrée.

+ + +
+ Configuration de la base de données +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+
+ + + + Passer à l'étape suivante + +
+
+
+ +

Félicitations ! L'installation s'est bien passée. Il faut maintenant supprimer le fichier install.php pour pouvoir accéder à FreshRSS... ou simplement cliquer sur le bouton ci-dessous ;)

+ Terminer l'installation + +

Oups ! Quelque chose s'est mal passé, vous devriez supprimer le fichier à la main.

+ + + + + + + Installation - FreshRSS + + + + + +
+
+

FreshRSS

+

Installation - étape

+
+
+ +
+ + +
+ +
+
+ + + -- cgit v1.2.3 From e58fb411f928f9000351e802f7e35c159735bdd7 Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Sun, 14 Apr 2013 19:26:52 +0200 Subject: Corrections fichier install.php pour qu'il soit plus portable --- .gitignore | 2 ++ freshrss.sql | 101 ----------------------------------------------------- public/install.php | 52 ++++++++++++++++++++------- 3 files changed, 41 insertions(+), 114 deletions(-) delete mode 100644 freshrss.sql mode change 100755 => 100644 public/install.php (limited to 'public/install.php') diff --git a/.gitignore b/.gitignore index 760271230..61908804a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +app/configuration/application.ini lib/minz log/application.log cache +public/data diff --git a/freshrss.sql b/freshrss.sql deleted file mode 100644 index b5369a7ea..000000000 --- a/freshrss.sql +++ /dev/null @@ -1,101 +0,0 @@ --- phpMyAdmin SQL Dump --- version 3.5.7 --- http://www.phpmyadmin.net --- --- Client: localhost --- Généré le: Dim 17 Mars 2013 à 15:21 --- Version du serveur: 5.5.30 --- Version de PHP: 5.4.12 - -SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -SET time_zone = "+00:00"; - - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8 */; - --- --- Base de données: `freshrss` --- - --- -------------------------------------------------------- - --- --- Structure de la table `category` --- - -CREATE TABLE IF NOT EXISTS `category` ( - `id` varchar(6) NOT NULL, - `name` varchar(255) NOT NULL, - `color` varchar(7) NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- -------------------------------------------------------- - --- --- Structure de la table `entry` --- - -CREATE TABLE IF NOT EXISTS `entry` ( - `id` varchar(6) NOT NULL, - `guid` text NOT NULL, - `title` varchar(255) NOT NULL, - `author` varchar(255) NOT NULL, - `content` text NOT NULL, - `link` text NOT NULL, - `date` int(11) NOT NULL, - `is_read` int(11) NOT NULL, - `is_favorite` int(11) NOT NULL, - `is_public` int(1) NOT NULL, - `id_feed` varchar(6) NOT NULL, - `annotation` text NOT NULL, - `tags` text NOT NULL, - `lastUpdate` int(11) NOT NULL, - PRIMARY KEY (`id`), - KEY `id_feed` (`id_feed`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- -------------------------------------------------------- - --- --- Structure de la table `feed` --- - -CREATE TABLE IF NOT EXISTS `feed` ( - `id` varchar(6) NOT NULL, - `url` text NOT NULL, - `category` varchar(6) DEFAULT '000000', - `name` varchar(255) NOT NULL, - `website` text NOT NULL, - `description` text NOT NULL, - `lastUpdate` int(11) NOT NULL, - `priority` int(2) NOT NULL DEFAULT '10', - `pathEntries` varchar(500) DEFAULT NULL, - `httpAuth` varchar(500) DEFAULT NULL, - `error` int(1) NOT NULL DEFAULT '0', - PRIMARY KEY (`id`), - KEY `category` (`category`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- --- Contraintes pour les tables exportées --- - --- --- Contraintes pour la table `entry` --- -ALTER TABLE `entry` - ADD CONSTRAINT `entry_ibfk_1` FOREIGN KEY (`id_feed`) REFERENCES `feed` (`id`) ON DELETE CASCADE ON UPDATE CASCADE; - --- --- Contraintes pour la table `feed` --- -ALTER TABLE `feed` - ADD CONSTRAINT `feed_ibfk_4` FOREIGN KEY (`category`) REFERENCES `category` (`id`) ON DELETE SET NULL ON UPDATE CASCADE; - -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; diff --git a/public/install.php b/public/install.php old mode 100755 new mode 100644 index 512e4b5d5..fca4ff38e --- a/public/install.php +++ b/public/install.php @@ -168,11 +168,14 @@ function deleteInstall () { /*** VÉRIFICATIONS ***/ function checkStep () { - if (STEP > 1 && checkStep1 ()['all'] != 'ok') { + $s1 = checkStep1 (); + $s2 = checkStep2 (); + $s3 = checkStep3 (); + if (STEP > 1 && $s1['all'] != 'ok') { header ('Location: index.php?step=1'); - } elseif (STEP > 2 && checkStep2 ()['all'] != 'ok') { + } elseif (STEP > 2 && $s2['all'] != 'ok') { header ('Location: index.php?step=2'); - } elseif (STEP > 3 && checkStep3 ()['all'] != 'ok') { + } elseif (STEP > 3 && $s3['all'] != 'ok') { header ('Location: index.php?step=3'); } } @@ -182,6 +185,7 @@ function checkStep1 () { $curl = extension_loaded ('curl'); $pdo = extension_loaded ('pdo_mysql'); $cache = CACHE_PATH && is_writable (CACHE_PATH); + $log = LOG_PATH && is_writable (LOG_PATH); $conf = APP_PATH && is_writable (APP_PATH . '/configuration'); $data = is_writable (PUBLIC_PATH . '/data'); @@ -191,9 +195,10 @@ function checkStep1 () { 'curl' => $curl ? 'ok' : 'ko', 'pdo-mysql' => $pdo ? 'ok' : 'ko', 'cache' => $cache ? 'ok' : 'ko', + 'log' => $log ? 'ok' : 'ko', 'configuration' => $conf ? 'ok' : 'ko', 'data' => $data ? 'ok' : 'ko', - 'all' => $php && $minz && $curl && $pdo && $cache && $conf && $data ? 'ok' : 'ko' + 'all' => $php && $minz && $curl && $pdo && $cache && $log && $conf && $data ? 'ok' : 'ko' ); } function checkStep2 () { @@ -284,6 +289,12 @@ function printStep1 () {

Arf ! Veuillez vérifier les droits sur le répertoire . Le serveur HTTP doit être capable d'écrire dedans

+ +

Ok ! Les droits sur le répertoire des logs sont bons

+ +

Arf ! Veuillez vérifier les droits sur le répertoire . Le serveur HTTP doit être capable d'écrire dedans

+ +

Ok ! Les droits sur le répertoire de configuration sont bons

@@ -306,7 +317,7 @@ function printStep1 () { function printStep2 () { ?> - +

Ok ! La configuration générale a été enregistrée.

@@ -355,7 +366,7 @@ function printStep2 () {
- + Passer à l'étape suivante
@@ -366,7 +377,7 @@ function printStep2 () { function printStep3 () { ?> - +

Ok ! La configuration de la base de données a été enregistrée.

@@ -404,7 +415,7 @@ function printStep3 () {
- + Passer à l'étape suivante
@@ -425,6 +436,26 @@ function printStep5 () {

Oups ! Quelque chose s'est mal passé, vous devriez supprimer le fichier à la main.

@@ -455,26 +486,21 @@ function printStep5 () {
Date: Sun, 14 Apr 2013 20:12:07 +0200 Subject: Ajout partage Shaarli : fix issue #34 --- app/controllers/configureController.php | 3 +++ app/models/RSSConfiguration.php | 19 +++++++++++++++++-- app/views/configure/display.phtml | 8 ++++++++ app/views/index/index.phtml | 6 ++++++ public/install.php | 27 ++++----------------------- 5 files changed, 38 insertions(+), 25 deletions(-) (limited to 'public/install.php') diff --git a/app/controllers/configureController.php b/app/controllers/configureController.php index 01ed4d414..428768b9b 100755 --- a/app/controllers/configureController.php +++ b/app/controllers/configureController.php @@ -132,6 +132,7 @@ class configureController extends ActionController { $openArticle = Request::param ('mark_open_article', 'no'); $openSite = Request::param ('mark_open_site', 'no'); $openPage = Request::param ('mark_open_page', 'no'); + $urlShaarli = Request::param ('shaarli', ''); $this->view->conf->_postsPerPage (intval ($nb)); $this->view->conf->_defaultView ($view); @@ -144,6 +145,7 @@ class configureController extends ActionController { 'site' => $openSite, 'page' => $openPage, )); + $this->view->conf->_urlShaarli ($urlShaarli); $values = array ( 'posts_per_page' => $this->view->conf->postsPerPage (), @@ -153,6 +155,7 @@ class configureController extends ActionController { 'old_entries' => $this->view->conf->oldEntries (), 'mail_login' => $this->view->conf->mailLogin (), 'mark_when' => $this->view->conf->markWhen (), + 'url_shaarli' => $this->view->conf->urlShaarli (), ); $confDAO = new RSSConfigurationDAO (); diff --git a/app/models/RSSConfiguration.php b/app/models/RSSConfiguration.php index 270ec2ce1..ca56ec3a8 100755 --- a/app/models/RSSConfiguration.php +++ b/app/models/RSSConfiguration.php @@ -9,6 +9,7 @@ class RSSConfiguration extends Model { private $shortcuts = array (); private $mail_login = ''; private $mark_when = array (); + private $url_shaarli = ''; public function __construct () { $confDAO = new RSSConfigurationDAO (); @@ -20,6 +21,7 @@ class RSSConfiguration extends Model { $this->_shortcuts ($confDAO->shortcuts); $this->_mailLogin ($confDAO->mail_login); $this->_markWhen ($confDAO->mark_when); + $this->_urlShaarli ($confDAO->url_shaarli); } public function postsPerPage () { @@ -55,6 +57,9 @@ class RSSConfiguration extends Model { public function markWhenPage () { return $this->mark_when['page']; } + public function urlShaarli () { + return $this->url_shaarli; + } public function _postsPerPage ($value) { if (is_int (intval ($value))) { @@ -108,11 +113,17 @@ class RSSConfiguration extends Model { $this->mark_when['site'] = $values['site']; $this->mark_when['page'] = $values['page']; } + public function _urlShaarli ($value) { + $this->url_shaarli = ''; + if (filter_var ($value, FILTER_VALIDATE_URL)) { + $this->url_shaarli = $value; + } + } } class RSSConfigurationDAO extends Model_array { - public $posts_per_page = 10; - public $default_view = 'all'; + public $posts_per_page = 20; + public $default_view = 'not_read'; public $display_posts = 'no'; public $sort_order = 'low_to_high'; public $old_entries = 3; @@ -131,6 +142,7 @@ class RSSConfigurationDAO extends Model_array { 'site' => 'yes', 'page' => 'no' ); + public $url_shaarli = ''; public function __construct () { parent::__construct (PUBLIC_PATH . '/data/Configuration.array.php'); @@ -159,6 +171,9 @@ class RSSConfigurationDAO extends Model_array { if (isset ($this->array['mark_when'])) { $this->mark_when = $this->array['mark_when']; } + if (isset ($this->array['url_shaarli'])) { + $this->url_shaarli = $this->array['url_shaarli']; + } } public function update ($values) { diff --git a/app/views/configure/display.phtml b/app/views/configure/display.phtml index 240428493..79fa4b43c 100644 --- a/app/views/configure/display.phtml +++ b/app/views/configure/display.phtml @@ -87,6 +87,14 @@
+ Partage +
+ +
+ +
+
+
diff --git a/app/views/index/index.phtml b/app/views/index/index.phtml index cd0ff0504..6889a8b51 100644 --- a/app/views/index/index.phtml +++ b/app/views/index/index.phtml @@ -80,6 +80,12 @@ if (isset ($this->entryPaginator)) {
  • Par mail
  • + conf->urlShaarli (); + if ($shaarli) { + ?> +
  • Shaarli
  • +
    diff --git a/public/install.php b/public/install.php index fca4ff38e..7065e3a77 100644 --- a/public/install.php +++ b/public/install.php @@ -91,32 +91,13 @@ function saveStep2 () { $file_data = PUBLIC_PATH . '/data/Configuration.array.php'; - $conf = array ( - 'posts_per_page' => 20, - 'default_view' => 'not_read', - 'display_posts' => 'no', - 'sort_order' => 'low_to_high', - 'old_entries' => $_SESSION['old_entries'], - 'mail_login' => $_SESSION['mail_login'], - 'shortcuts' => array ( - 'mark_read' => 'r', - 'mark_favorite' => 'f', - 'go_website' => 'space', - 'next_entry' => 'j', - 'prev_entry' => 'k', - 'next_page' => 'right', - 'prev_page' => 'left', - ), - 'mark_when' => array ( - 'article' => 'yes', - 'site' => 'yes', - 'page' => 'no', - ), - ); $f = fopen ($file_data, 'w'); writeLine ($f, ' $_SESSION['old_entries'], + 'mail_login' => $_SESSION['mail_login'] + )); writeLine ($f, ');'); fclose ($f); -- cgit v1.2.3