From c9ae43f262d1e101c659823200cbffbdd5db8ab4 Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Wed, 10 Apr 2013 22:33:05 +0200 Subject: Mise en commentaire des champs pour la connexion HTTP --- app/views/configure/feed.phtml | 2 ++ 1 file changed, 2 insertions(+) (limited to 'app/views') diff --git a/app/views/configure/feed.phtml b/app/views/configure/feed.phtml index 2ac601e3d..2adc5c839 100644 --- a/app/views/configure/feed.phtml +++ b/app/views/configure/feed.phtml @@ -53,6 +53,7 @@ +
-- cgit v1.2.3 From e2171de4e6b090fbbad07d8852a068ec7ca050c0 Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Thu, 11 Apr 2013 21:27:29 +0200 Subject: Fix issue #37 : possibilité de sortir un site du flux principal (utile pour les sites qui publient beaucoup) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/configureController.php | 4 +++- app/controllers/indexController.php | 4 +--- app/models/Entry.php | 23 ++++++++++------------- app/models/Feed.php | 11 +++++++++++ app/views/configure/feed.phtml | 15 ++++++++++----- 5 files changed, 35 insertions(+), 22 deletions(-) (limited to 'app/views') diff --git a/app/controllers/configureController.php b/app/controllers/configureController.php index 243c155f9..01ed4d414 100755 --- a/app/controllers/configureController.php +++ b/app/controllers/configureController.php @@ -88,10 +88,12 @@ class configureController extends ActionController { if (Request::isPost () && $this->view->flux) { $cat = Request::param ('category', 0); $path = Request::param ('path_entries', ''); + $priority = Request::param ('priority', 0); $values = array ( 'category' => $cat, - 'pathEntries' => $path + 'pathEntries' => $path, + 'priority' => $priority ); if ($feedDAO->updateFeed ($id, $values)) { diff --git a/app/controllers/indexController.php b/app/controllers/indexController.php index c83f7f1d2..1eba7231f 100755 --- a/app/controllers/indexController.php +++ b/app/controllers/indexController.php @@ -76,9 +76,7 @@ class indexController extends ActionController { try { $this->view->entryPaginator = $entryDAO->getPaginator ($entries); - } catch (CurrentPagePaginationException $e) { - - } + } catch (CurrentPagePaginationException $e) { } $this->view->cat_aside = $catDAO->listCategories (); $this->view->nb_favorites = $entryDAO->countFavorites (); diff --git a/app/models/Entry.php b/app/models/Entry.php index c8d05c5eb..770b27eed 100755 --- a/app/models/Entry.php +++ b/app/models/Entry.php @@ -272,7 +272,7 @@ class EntryDAO extends Model_pdo { } public function markReadEntries ($read, $dateMax) { - $sql = 'UPDATE entry SET is_read = ? WHERE date < ?'; + $sql = 'UPDATE entry e INNER JOIN 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); @@ -377,19 +377,15 @@ class EntryDAO extends Model_pdo { } public function listEntries ($mode, $search = false, $order = 'high_to_low') { - $where = ''; + $where = ' WHERE priority > 0'; if ($mode == 'not_read') { - $where = ' WHERE is_read=0'; + $where .= ' AND is_read=0'; } $values = array(); if ($search) { $values[] = '%'.$search.'%'; - if ($mode == 'not_read') { - $where = ' AND title LIKE ?'; - } else { - $where = ' WHERE title LIKE ?'; - } + $where .= ' AND title LIKE ?'; } if ($order == 'low_to_high') { @@ -398,7 +394,7 @@ class EntryDAO extends Model_pdo { $order = ''; } - $sql = 'SELECT COUNT(*) AS count FROM entry' . $where; + $sql = 'SELECT COUNT(*) AS count FROM entry e INNER JOIN feed f ON e.id_feed = f.id' . $where; $stm = $this->bd->prepare ($sql); $stm->execute ($values); $res = $stm->fetchAll (PDO::FETCH_ASSOC); @@ -407,7 +403,8 @@ class EntryDAO extends Model_pdo { $deb = ($this->currentPage () - 1) * $this->nbItemsPerPage; $fin = $this->nbItemsPerPage; - $sql = 'SELECT * FROM entry' . $where + $sql = 'SELECT * FROM entry e' + . ' INNER JOIN feed f ON e.id_feed = f.id' . $where . ' ORDER BY date' . $order . ' LIMIT ' . $deb . ', ' . $fin; $stm = $this->bd->prepare ($sql); @@ -553,7 +550,7 @@ class EntryDAO extends Model_pdo { } public function count () { - $sql = 'SELECT COUNT(*) AS count FROM entry'; + $sql = 'SELECT COUNT(*) AS count FROM entry e INNER JOIN feed f ON e.id_feed = f.id WHERE priority > 0'; $stm = $this->bd->prepare ($sql); $stm->execute (); $res = $stm->fetchAll (PDO::FETCH_ASSOC); @@ -562,11 +559,11 @@ class EntryDAO extends Model_pdo { } public function countNotRead () { - $sql = 'SELECT COUNT(*) AS count FROM entry WHERE is_read=0'; + $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'; $stm = $this->bd->prepare ($sql); $stm->execute (); $res = $stm->fetchAll (PDO::FETCH_ASSOC); - + Log::record ('not read : ' . $res[0]['count'], Log::NOTICE); return $res[0]['count']; } diff --git a/app/models/Feed.php b/app/models/Feed.php index 2e6782921..50632f5a7 100644 --- a/app/models/Feed.php +++ b/app/models/Feed.php @@ -9,6 +9,7 @@ class Feed extends Model { private $website = ''; private $description = ''; private $lastUpdate = 0; + private $priority = 10; private $pathEntries = ''; private $httpAuth = ''; @@ -48,6 +49,9 @@ class Feed extends Model { public function lastUpdate () { return $this->lastUpdate; } + public function priority () { + return $this->priority; + } public function pathEntries () { return $this->pathEntries; } @@ -108,6 +112,12 @@ class Feed extends Model { public function _lastUpdate ($value) { $this->lastUpdate = $value; } + public function _priority ($value) { + if (!is_int (intval ($value))) { + $value = 10; + } + $this->priority = $value; + } public function _pathEntries ($value) { $this->pathEntries = $value; } @@ -382,6 +392,7 @@ class HelperFeed { $list[$key]->_website ($dao['website']); $list[$key]->_description ($dao['description']); $list[$key]->_lastUpdate ($dao['lastUpdate']); + $list[$key]->_priority ($dao['priority']); $list[$key]->_pathEntries ($dao['pathEntries']); $list[$key]->_httpAuth ($dao['httpAuth']); diff --git a/app/views/configure/feed.phtml b/app/views/configure/feed.phtml index 2adc5c839..adea27e52 100644 --- a/app/views/configure/feed.phtml +++ b/app/views/configure/feed.phtml @@ -9,28 +9,25 @@
Informations -
-
-
flux->nbEntries (); ?>
- + Catégorie - gestion
@@ -45,6 +42,15 @@
Avancé +
+ +
+ +
+
@@ -52,7 +58,6 @@ Permet de récupérer les flux tronqués (attention, demande plus de temps !)
- + + + + + + image/svg+xml + + Gnome Symbolic Icon Theme + + + + + + + Gnome Symbolic Icon Theme + + + + + + + + + + + + + + + diff --git a/public/theme/icons/share.svg b/public/theme/icons/share.svg new file mode 100644 index 000000000..443321882 --- /dev/null +++ b/public/theme/icons/share.svg @@ -0,0 +1,34 @@ + + + + + + + + image/svg+xml + + Gnome Symbolic Icon Theme + + + + + + + Gnome Symbolic Icon Theme + + + + + + + + + + + + + + + + + -- cgit v1.2.3 From a4beb7b772fdc3c8c894b93611bfb030c9456f07 Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Sat, 13 Apr 2013 14:26:13 +0200 Subject: Correction faute dans about + ajout options mise à jour et marquer comme lu pour un flux spécifiée MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/feedController.php | 32 +++++++++++++++++++++++++++----- app/layout/aside_flux.phtml | 7 +++++-- app/views/index/about.phtml | 2 +- 3 files changed, 33 insertions(+), 8 deletions(-) (limited to 'app/views') diff --git a/app/controllers/feedController.php b/app/controllers/feedController.php index 3e6ae4800..d2a2184eb 100755 --- a/app/controllers/feedController.php +++ b/app/controllers/feedController.php @@ -97,7 +97,16 @@ class feedController extends ActionController { $feedDAO = new FeedDAO (); $entryDAO = new EntryDAO (); - $feeds = $feedDAO->listFeedsOrderUpdate (); + $id = Request::param ('id'); + $feeds = array (); + if ($id) { + $feed = $feedDAO->searchById ($id); + if ($feed) { + $feeds = array ($feed); + } + } else { + $feeds = $feedDAO->listFeedsOrderUpdate (); + } // pour ne pas ajouter des entrées trop anciennes $nb_month_old = $this->view->conf->oldEntries (); @@ -130,10 +139,23 @@ class feedController extends ActionController { $entryDAO->cleanOldEntries ($nb_month_old); // notif - $notif = array ( - 'type' => 'good', - 'content' => $i . ' flux ont été mis à jour' - ); + if ($i == 1) { + $feed = reset ($feeds); + $notif = array ( + 'type' => 'good', + 'content' => '' . $feed->name () . ' a été mis à jour' + ); + } elseif ($i > 0) { + $notif = array ( + 'type' => 'good', + 'content' => $i . ' flux ont été mis à jour' + ); + } else { + $notif = array ( + 'type' => 'bad', + 'content' => 'Aucun flux n\'a pu être mis à jour' + ); + } Session::_param ('notification', $notif); Request::forward (array (), true); diff --git a/app/layout/aside_flux.phtml b/app/layout/aside_flux.phtml index b12edfbc7..3a6ecb304 100644 --- a/app/layout/aside_flux.phtml +++ b/app/layout/aside_flux.phtml @@ -74,11 +74,14 @@
diff --git a/app/views/index/about.phtml b/app/views/index/about.phtml index ad3eb6cc6..73f5f4001 100644 --- a/app/views/index/about.phtml +++ b/app/views/index/about.phtml @@ -20,5 +20,5 @@

FreshRSS est un agrégateur de flux RSS à auto-héberger à l'image de RSSLounge, TinyTinyRSS ou Leed. Il se veut léger et facile à prendre en main tout en étant un outil puissant et paramétrable. L'objectif étant d'offrir une alternative sérieuse au futur feu-Google Reader.

Crédits

- Les icônes sont issus du projet GNOME. La police Open Sans utilisée a été créée par Steve Matteson. Les favicons sont récupérés grâce au site getFavicon. FreshRSS repose sur Minz, un framework PHP. + Des éléments de design sont issus du projet Bootstrap bien que FreshRSS n'utilise pas ce framework. Les icônes sont issues du projet GNOME. La police Open Sans utilisée a été créée par Steve Matteson. Les favicons sont récupérés grâce au site getFavicon. FreshRSS repose sur Minz, un framework PHP.
-- cgit v1.2.3 From 9b9543109e36a5409fe71eb084cfac680dfc7cbd Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Sat, 13 Apr 2013 15:27:36 +0200 Subject: Fix issue #39 : actualisation de tous les flux grâce à Ajax MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/feedController.php | 8 ++++-- app/controllers/indexController.php | 1 + app/controllers/javascriptController.php | 9 ++++--- app/layout/nav_menu.phtml | 2 +- app/views/javascript/actualize.phtml | 46 ++++++++++++++++++++++++++++++++ public/theme/freshrss.css | 20 ++++++++++++++ 6 files changed, 80 insertions(+), 6 deletions(-) create mode 100644 app/views/javascript/actualize.phtml (limited to 'app/views') diff --git a/app/controllers/feedController.php b/app/controllers/feedController.php index d2a2184eb..83fc19e20 100755 --- a/app/controllers/feedController.php +++ b/app/controllers/feedController.php @@ -156,9 +156,13 @@ class feedController extends ActionController { 'content' => 'Aucun flux n\'a pu être mis à jour' ); } - Session::_param ('notification', $notif); - Request::forward (array (), true); + if (Request::param ('ajax', 0) == 0) { + Session::_param ('notification', $notif); + Request::forward (array (), true); + } else { + $this->view->_useLayout (false); + } } public function massiveImportAction () { diff --git a/app/controllers/indexController.php b/app/controllers/indexController.php index a11c26044..8fa911631 100755 --- a/app/controllers/indexController.php +++ b/app/controllers/indexController.php @@ -8,6 +8,7 @@ class indexController extends ActionController { public function indexAction () { View::appendScript (Url::display ('/scripts/shortcut.js')); View::appendScript (Url::display (array ('c' => 'javascript', 'a' => 'main'))); + View::appendScript (Url::display (array ('c' => 'javascript', 'a' => 'actualize'))); $entryDAO = new EntryDAO (); $feedDAO = new FeedDAO (); diff --git a/app/controllers/javascriptController.php b/app/controllers/javascriptController.php index 8060f560c..071cf65a4 100755 --- a/app/controllers/javascriptController.php +++ b/app/controllers/javascriptController.php @@ -5,8 +5,11 @@ class javascriptController extends ActionController { $this->view->_useLayout (false); header('Content-type: text/javascript'); } - - public function mainAction () { - + + public function mainAction () {} + + public function actualizeAction () { + $feedDAO = new FeedDAO (); + $this->view->feeds = $feedDAO->listFeeds (); } } diff --git a/app/layout/nav_menu.phtml b/app/layout/nav_menu.phtml index 90fe4aea1..5d7dd3091 100644 --- a/app/layout/nav_menu.phtml +++ b/app/layout/nav_menu.phtml @@ -1,7 +1,7 @@ + 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 From 710b434b54e5996eeee903c23e387e942e62f12f Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Sun, 14 Apr 2013 20:28:23 +0200 Subject: Petite modif export RSS pour se conformer au mieux au protocole --- app/views/helpers/rss.phtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/views') diff --git a/app/views/helpers/rss.phtml b/app/views/helpers/rss.phtml index b75e6d3bc..1aa0ac44a 100755 --- a/app/views/helpers/rss.phtml +++ b/app/views/helpers/rss.phtml @@ -22,7 +22,7 @@ foreach ($items as $item) { echo $item->content (); ?>]]> date (true)); ?> - guid (); ?> + id (); ?> -- cgit v1.2.3 From 392672ab2771c6d22f55017c4ed64a0e00945b23 Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Wed, 17 Apr 2013 19:05:53 +0200 Subject: Fix issue #58 : possibilité de vider une catégorie MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/configureController.php | 1 + app/controllers/feedController.php | 38 +++++++++++++++++++++++++++------ app/models/Category.php | 14 ++++++++++++ app/models/Feed.php | 14 ++++++++++++ app/views/configure/categorize.phtml | 11 +++++++--- 5 files changed, 68 insertions(+), 10 deletions(-) (limited to 'app/views') diff --git a/app/controllers/configureController.php b/app/controllers/configureController.php index 428768b9b..9f4a8b24a 100755 --- a/app/controllers/configureController.php +++ b/app/controllers/configureController.php @@ -56,6 +56,7 @@ class configureController extends ActionController { } $this->view->categories = $catDAO->listCategories (); + $this->view->defaultCategory = $catDAO->getDefault (); View::prependTitle ('Gestion des catégories - '); } diff --git a/app/controllers/feedController.php b/app/controllers/feedController.php index fb0f790fd..7a34430ea 100755 --- a/app/controllers/feedController.php +++ b/app/controllers/feedController.php @@ -228,19 +228,43 @@ class feedController extends ActionController { array ('error' => array ('Vous n\'avez pas le droit d\'accéder à cette page')) ); } else { + $type = Request::param ('type', 'feed'); $id = Request::param ('id'); $feedDAO = new FeedDAO (); - $feedDAO->deleteFeed ($id); + if ($type == 'category') { + if ($feedDAO->deleteFeedByCategory ($id)) { + $notif = array ( + 'type' => 'good', + 'content' => 'La catégorie a été vidée' + ); + } else { + $notif = array ( + 'type' => 'bad', + 'content' => 'Un problème est survenu' + ); + } + } else { + if ($feedDAO->deleteFeed ($id)) { + $notif = array ( + 'type' => 'good', + 'content' => 'Le flux a été supprimé' + ); + } else { + $notif = array ( + 'type' => 'bad', + 'content' => 'Un problème est survenu' + ); + } + } - // notif - $notif = array ( - 'type' => 'good', - 'content' => 'Le flux a été supprimé' - ); Session::_param ('notification', $notif); - Request::forward (array ('c' => 'configure', 'a' => 'feed'), true); + if ($type == 'category') { + Request::forward (array ('c' => 'configure', 'a' => 'categorize'), true); + } else { + Request::forward (array ('c' => 'configure', 'a' => 'feed'), true); + } } } diff --git a/app/models/Category.php b/app/models/Category.php index ae803591f..7ce572e71 100755 --- a/app/models/Category.php +++ b/app/models/Category.php @@ -158,6 +158,20 @@ class CategoryDAO extends Model_pdo { return HelperCategory::daoToCategory ($stm->fetchAll (PDO::FETCH_ASSOC)); } + public function getDefault () { + $sql = 'SELECT * FROM category WHERE id="000000"'; + $stm = $this->bd->prepare ($sql); + + $stm->execute (); + $res = $stm->fetchAll (PDO::FETCH_ASSOC); + $cat = HelperCategory::daoToCategory ($res); + + if (isset ($cat[0])) { + return $cat[0]; + } else { + return false; + } + } public function checkDefault () { $def_cat = $this->searchById ('000000'); diff --git a/app/models/Feed.php b/app/models/Feed.php index 070f044a9..222e22256 100644 --- a/app/models/Feed.php +++ b/app/models/Feed.php @@ -283,6 +283,20 @@ class FeedDAO extends Model_pdo { return false; } } + public function deleteFeedByCategory ($id) { + $sql = 'DELETE FROM feed WHERE category=?'; + $stm = $this->bd->prepare ($sql); + + $values = array ($id); + + if ($stm && $stm->execute ($values)) { + return true; + } else { + $info = $stm->errorInfo(); + Log::record ('SQL error : ' . $info[2], Log::ERROR); + return false; + } + } public function searchById ($id) { $sql = 'SELECT * FROM feed WHERE id=?'; diff --git a/app/views/configure/categorize.phtml b/app/views/configure/categorize.phtml index 943dd489e..660ddef20 100644 --- a/app/views/configure/categorize.phtml +++ b/app/views/configure/categorize.phtml @@ -6,13 +6,18 @@ Gestion des catégories - gestion des flux +

    Lors de la suppression d'une catégorie, ses flux seront automatiquement classés dans defaultCategory->name (); ?>.

    + categories as $cat) { $i++; ?>
    - +
    - id () == '000000') { ?> - ne peut pas être supprimé + Vider ? (nbFeed (); ?> flux) + id () == $this->defaultCategory->id ()) { ?> + ne peut pas être supprimée
    -- cgit v1.2.3 From a2b5e8f3ce597fbcec0c25b68c551a526d2bf3ec Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Wed, 17 Apr 2013 19:31:20 +0200 Subject: Fix issue #60 : export OPML dans un fichier téléchargeable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/configureController.php | 3 ++- app/views/configure/importExport.phtml | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'app/views') diff --git a/app/controllers/configureController.php b/app/controllers/configureController.php index 9f4a8b24a..18a56c066 100755 --- a/app/controllers/configureController.php +++ b/app/controllers/configureController.php @@ -184,7 +184,8 @@ class configureController extends ActionController { View::_title ('feeds_opml.xml'); $this->view->_useLayout (false); - header('Content-type: text/xml'); + header('Content-Type: text/xml; charset=utf-8'); + header('Content-disposition: attachment; filename=feeds_opml.xml'); $feedDAO = new FeedDAO (); $catDAO = new CategoryDAO (); diff --git a/app/views/configure/importExport.phtml b/app/views/configure/importExport.phtml index cd677c1eb..34bee4a07 100644 --- a/app/views/configure/importExport.phtml +++ b/app/views/configure/importExport.phtml @@ -29,7 +29,7 @@
    ou - + Exporter
    -- cgit v1.2.3