getAuthUser()) { return 'Login'; } } function get() { if (!empty($_REQUEST['test-bs'])) { $this->masterTemplate = 'master-bs.html'; } if (!empty($_REQUEST['show_read'])) { $this->view_has_read = 1; } // list of feeds and how many unread.. //DB_DataObject::debugLevel(1); $p= DB_DataObject::factory('reader_sub'); $p->person_id = $this->authUser->id; if (!$p->count()) { // user is not subscribed to anything.. // so send them off to sign up to stuff. header("Location: {$this->baseURL}/Manage/Add"); exit; } $ufeeds = $p->fetchAll('feed_id'); $feed = DB_DataObject::factory('reader_feed'); $feed->whereAddin('reader_feed.id', $ufeeds, 'int'); $feed->autoJoin(); $feed->_join .= " LEFT JOIN (SELECT feed_id, sum(CASE when has_read = false THEN 1 ELSE 0 END) as no_unread, count(id) as no_avail FROM reader_read WHERE person_id = {$this->authUser->id} GROUP BY feed_id )x ON x.feed_id = reader_feed.id"; $feed->selectAdd("no_unread, no_avail"); if ($this->view_has_read) { } else { $feed->whereAdd('no_unread > 0'); } //DB_DataObject::debugLevel(1); $all_feed = clone($feed); $this->feeds = $feed->fetchAll(); return; // what's summary used for? // total read / un-read ?? since when?? $all_feed->selectAdd(); $all_feed->selectAdd(" SUM((SELECT count( reader_read.id ) FROM reader_read WHERE person_id = {$this->authUser->id} AND feed_id = reader_feed.id AND has_read = false )) as no_unread, SUM((SELECT count( reader_read.id ) FROM reader_read LEFT JOIN reader_article ON reader_read.article_id = reader_article.id WHERE person_id = {$this->authUser->id} AND reader_read.feed_id = reader_feed.id AND ( reader_read.read_dt > NOW() - INTERVAL 1 DAY OR reader_read.has_read = false ) )) as no_avail "); $all_feed->find(true); $this->summary = $all_feed; //exit; } function herr( $error_name, $args = array(), $redirect=false ) { if($redirect !== false){ $args['errors'][$error_name] = 1; // print_r($args);exit; $this->addEvent('FRONTEND:'.$error_name, (empty($args['error_on'])) ? false : $args['error_on'], $error_name); return HTML_FlexyFramework::run($redirect, $args); } $this->errors[$error_name] = 1; $this->elements = HTML_Template_Flexy_Factory::fromArray($_REQUEST, $this->elements); $this->addEvent('FRONTEND:'.$error_name, (empty($args['error_on'])) ? false : $args['error_on'], $error_name); return true; } }