aboutsummaryrefslogtreecommitdiff
path: root/app/controllers
diff options
context:
space:
mode:
authorGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2012-10-22 18:00:13 +0200
committerGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2012-10-22 18:00:13 +0200
commit0426541acbeb44d240e6dbf7a93f3a104bea61b4 (patch)
tree209a425c5afee9e627d11023b262326812be1fbc /app/controllers
parentfb57be5a5af3a2fb46b2dbf2b503ffe78eb5cf49 (diff)
Grosse màj : ajout de la configuration + ajouts divers fonctionnalités
Diffstat (limited to 'app/controllers')
-rwxr-xr-xapp/controllers/configureController.php64
-rwxr-xr-xapp/controllers/feedController.php43
-rwxr-xr-xapp/controllers/indexController.php6
3 files changed, 92 insertions, 21 deletions
diff --git a/app/controllers/configureController.php b/app/controllers/configureController.php
index 0f5d6b658..5642ef547 100755
--- a/app/controllers/configureController.php
+++ b/app/controllers/configureController.php
@@ -2,11 +2,66 @@
class configureController extends ActionController {
public function categorizeAction () {
-
+ $catDAO = new CategoryDAO ();
+
+ if (Request::isPost ()) {
+ $cats = Request::param ('categories', array ());
+ $ids = Request::param ('ids', array ());
+ $newCat = Request::param ('new_category');
+
+ foreach ($cats as $key => $name) {
+ if (strlen ($name) > 0) {
+ $cat = new Category ($name);
+ $values = array (
+ 'name' => $cat->name (),
+ 'color' => $cat->color ()
+ );
+ $catDAO->updateCategory ($ids[$key], $values);
+ } else {
+ $catDAO->deleteCategory ($ids[$key]);
+ }
+ }
+
+ if ($newCat != false) {
+ $cat = new Category ($newCat);
+ $values = array (
+ 'id' => $cat->id (),
+ 'name' => $cat->name (),
+ 'color' => $cat->color ()
+ );
+ $catDAO->addCategory ($values);
+ }
+
+ $catDAO->save ();
+
+ }
+
+ $this->view->categories = $catDAO->listCategories ();
}
public function fluxAction () {
-
+ $feedDAO = new FeedDAO ();
+ $this->view->feeds = $feedDAO->listFeeds ();
+
+ $id = Request::param ('id');
+
+ $this->view->flux = false;
+ if ($id != false) {
+ $this->view->flux = $feedDAO->searchById ($id);
+
+ $catDAO = new CategoryDAO ();
+ $this->view->categories = $catDAO->listCategories ();
+
+ if (Request::isPost () && $this->view->flux) {
+ $cat = Request::param ('category');
+ $values = array (
+ 'category' => $cat
+ );
+ $feedDAO->updateFeed ($id, $values);
+
+ $this->view->flux->_category ($cat);
+ }
+ }
}
public function displayAction () {
@@ -14,15 +69,18 @@ class configureController extends ActionController {
$nb = Request::param ('posts_per_page', 10);
$view = Request::param ('default_view', 'all');
$display = Request::param ('display_posts', 'no');
+ $sort = Request::param ('sort_order', 'low_to_high');
$this->view->conf->_postsPerPage (intval ($nb));
$this->view->conf->_defaultView ($view);
$this->view->conf->_displayPosts ($display);
+ $this->view->conf->_sortOrder ($sort);
$values = array (
'posts_per_page' => $this->view->conf->postsPerPage (),
'default_view' => $this->view->conf->defaultView (),
- 'display_posts' => $this->view->conf->displayPosts ()
+ 'display_posts' => $this->view->conf->displayPosts (),
+ 'sort_order' => $this->view->conf->sortOrder ()
);
$confDAO = new RSSConfigurationDAO ();
diff --git a/app/controllers/feedController.php b/app/controllers/feedController.php
index 3b4a90b64..5bf7d9ec6 100755
--- a/app/controllers/feedController.php
+++ b/app/controllers/feedController.php
@@ -7,7 +7,8 @@ class feedController extends ActionController {
try {
$feed = new Feed ($url);
- $entries = $feed->loadEntries ();
+ $feed->load ();
+ $entries = $feed->entries (false);
$feed_entries = array ();
if ($entries !== false) {
@@ -24,6 +25,7 @@ class feedController extends ActionController {
'date' => $entry->date (true),
'is_read' => $entry->isRead (),
'is_favorite' => $entry->isFavorite (),
+ 'feed' => $feed->id ()
);
$entryDAO->addEntry ($values);
@@ -35,8 +37,11 @@ class feedController extends ActionController {
$values = array (
'id' => $feed->id (),
'url' => $feed->url (),
- 'categories' => $feed->categories (),
- 'entries' => $feed_entries
+ 'category' => $feed->category (),
+ 'entries' => $feed_entries,
+ 'name' => $feed->name (),
+ 'website' => $feed->website (),
+ 'description' => $feed->description (),
);
$feedDAO->addFeed ($values);
} catch (Exception $e) {
@@ -54,27 +59,31 @@ class feedController extends ActionController {
$feeds = $feedDAO->listFeeds ();
foreach ($feeds as $feed) {
- $entries = $feed->loadEntries ();
+ $feed->load ();
+ $entries = $feed->entries (false);
$feed_entries = $feed->entries ();
if ($entries !== false) {
foreach ($entries as $entry) {
- $values = array (
- 'id' => $entry->id (),
- 'guid' => $entry->guid (),
- 'title' => $entry->title (),
- 'author' => $entry->author (),
- 'content' => $entry->content (),
- 'link' => $entry->link (),
- 'date' => $entry->date (true),
- 'is_read' => $entry->isRead (),
- 'is_favorite' => $entry->isFavorite (),
- );
- $entryDAO->addEntry ($values);
-
if (!in_array ($entry->id (), $feed_entries)) {
+ $values = array (
+ 'id' => $entry->id (),
+ 'guid' => $entry->guid (),
+ 'title' => $entry->title (),
+ 'author' => $entry->author (),
+ 'content' => $entry->content (),
+ 'link' => $entry->link (),
+ 'date' => $entry->date (true),
+ 'is_read' => $entry->isRead (),
+ 'is_favorite' => $entry->isFavorite (),
+ 'feed' => $feed->id ()
+ );
+ $entryDAO->addEntry ($values);
+
$feed_entries[] = $entry->id ();
}
+
+ // TODO gérer suppression des articles trop vieux (à paramétrer)
}
}
diff --git a/app/controllers/indexController.php b/app/controllers/indexController.php
index 3fda234ca..b9d770e81 100755
--- a/app/controllers/indexController.php
+++ b/app/controllers/indexController.php
@@ -11,7 +11,11 @@ class indexController extends ActionController {
$entries = $entryDAO->listEntries ();
}
- usort ($entries, 'sortEntriesByDate');
+ if ($this->view->conf->sortOrder () == 'high_to_low') {
+ usort ($entries, 'sortReverseEntriesByDate');
+ } else {
+ usort ($entries, 'sortEntriesByDate');
+ }
//gestion pagination
$page = Request::param ('page', 1);