5 require_once 'Pman.php';
7 require_once 'Pman/Core/AssetTrait.php'; // includes Traits...
10 class Reader extends Pman
12 use Pman_Core_AssetTrait; // output Compiled JS/CSS
14 // outputJavascriptDir()
16 var $template = 'feeds.html';
18 var $view_has_read = 0;
25 if (!$this->getAuthUser()) {
33 if (!empty($_REQUEST['test-bs'])) {
35 $this->masterTemplate = 'master-bs.html';
38 if (!empty($_REQUEST['show_read'])) {
39 $this->view_has_read = 1;
43 // list of feeds and how many unread..
44 //DB_DataObject::debugLevel(1);
45 $p= DB_DataObject::factory('reader_sub');
46 $p->person_id = $this->authUser->id;
48 // user is not subscribed to anything..
49 // so send them off to sign up to stuff.
50 header("Location: {$this->baseURL}/Manage/Add");
55 $ufeeds = $p->fetchAll('feed_id');
56 $feed = DB_DataObject::factory('reader_feed');
57 $feed->whereAddin('reader_feed.id', $ufeeds, 'int');
60 LEFT JOIN (SELECT feed_id,
61 sum(CASE when has_read = false THEN 1 ELSE 0 END) as no_unread,
67 person_id = {$this->authUser->id}
70 x.feed_id = reader_feed.id";
72 $feed->selectAdd("no_unread, no_avail");
74 if ($this->view_has_read) {
78 $feed->whereAdd('no_unread > 0');
80 //DB_DataObject::debugLevel(1);
81 $all_feed = clone($feed);
82 $this->feeds = $feed->fetchAll();
84 return; // what's summary used for?
88 // total read / un-read ?? since when??
89 $all_feed->selectAdd();
90 $all_feed->selectAdd("
92 count( reader_read.id )
96 person_id = {$this->authUser->id}
98 feed_id = reader_feed.id
104 count( reader_read.id )
110 reader_read.article_id = reader_article.id
112 person_id = {$this->authUser->id}
114 reader_read.feed_id = reader_feed.id
117 reader_read.read_dt > NOW() - INTERVAL 1 DAY
119 reader_read.has_read = false
124 $all_feed->find(true);
125 $this->summary = $all_feed;
132 function herr( $error_name, $args = array(), $redirect=false )
135 if($redirect !== false){
136 $args['errors'][$error_name] = 1;
137 // print_r($args);exit;
138 $this->addEvent('FRONTEND:'.$error_name, (empty($args['error_on'])) ? false : $args['error_on'], $error_name);
139 return HTML_FlexyFramework::run($redirect, $args);
142 $this->errors[$error_name] = 1;
143 $this->elements = HTML_Template_Flexy_Factory::fromArray($_REQUEST, $this->elements);
144 $this->addEvent('FRONTEND:'.$error_name, (empty($args['error_on'])) ? false : $args['error_on'], $error_name);