diff options
| author | 2014-10-22 13:13:24 +0200 | |
|---|---|---|
| committer | 2014-10-22 13:13:24 +0200 | |
| commit | fcae4157539306e90299e7f0e90740320a2833d7 (patch) | |
| tree | 22dfeea3f3d7204fa2dcba8136b3d94d4c40926e /app/Models/Context.php | |
| parent | 80cffa6de51771cd80995fb1c4f1e04ee868eb45 (diff) | |
Update title and get parameter correctly.
See https://github.com/marienfressinaud/FreshRSS/issues/634
Diffstat (limited to 'app/Models/Context.php')
| -rw-r--r-- | app/Models/Context.php | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/app/Models/Context.php b/app/Models/Context.php index b85179652..7138fd638 100644 --- a/app/Models/Context.php +++ b/app/Models/Context.php @@ -6,6 +6,9 @@ */ class FreshRSS_Context { public static $conf = null; + public static $categories = array(); + + public static $name = ''; public static $total_unread = 0; public static $total_starred = array( @@ -21,6 +24,7 @@ class FreshRSS_Context { 'feed' => false, 'category' => false, ); + public static $get_unread = 0; public static $order = 'DESC'; public static function init() { @@ -37,8 +41,16 @@ class FreshRSS_Context { Minz_Session::_param('language', self::$conf->language); Minz_Translate::init(); + $catDAO = new FreshRSS_CategoryDAO(); + $entryDAO = FreshRSS_Factory::createEntryDao(); + // Get the current state. // self::$state = self::$conf->default_view; + self::$categories = $catDAO->listCategories(); + + // Update number of read / unread variables. + self::$total_starred = $entryDAO->countUnreadReadFavorites(); + self::$total_unread = FreshRSS_CategoryDAO::CountUnreads(self::$categories, 1); } public static function isStateEnabled($state) { @@ -53,6 +65,62 @@ class FreshRSS_Context { } } + public static function _get($get) { + $type = $get[0]; + $id = substr($get, 2); + $nb_unread = 0; + + switch($type) { + case 'a': + self::$current_get['all'] = true; + self::$name = _t('your_rss_feeds'); + self::$get_unread = self::$total_unread; + break; + case 's': + self::$current_get['starred'] = true; + self::$name = _t('your_favorites'); + self::$get_unread = self::$total_starred['unread']; + break; + case 'f': + self::$current_get['feed'] = $id; + + $feed = FreshRSS_CategoryDAO::findFeed(self::$categories, $id); + if ($feed === null) { + $feedDAO = FreshRSS_Factory::createFeedDao(); + $feed = $feedDAO->searchById($id); + + if (!$feed) { + // TODO: raise an exception + return false; + } + } + + self::$name = $feed->name(); + self::$get_unread = $feed->nbNotRead(); + break; + case 'c': + self::$current_get['category'] = $id; + if (!isset(self::$categories[$id])) { + $catDAO = new FreshRSS_CategoryDAO(); + $cat = $catDAO->searchById($id); + + if (!$cat) { + // TODO: raise an exception + return false; + } + } else { + $cat = self::$categories[$id]; + } + + self::$name = $cat->name(); + self::$get_unread = $cat->nbNotRead(); + break; + default: + // TODO: raise an exception! + return false; + } + } + public static function currentGet() { if (self::$current_get['all']) { return 'a'; |
