Ejemplo n.º 1
0
 /**
  * test counting feeds
  */
 public function testCount()
 {
     $this->assertEquals(3, $this->model->count(1, 2));
     $this->assertEquals(2, $this->model->count(1, 2, 'multimedia'));
     $this->assertEquals(1, $this->model->count(1, 2, 'messages'));
     $this->assertEquals(1, $this->model->count(1, 1));
     $this->assertEquals(2, $this->model->count(2, 2));
 }
 /**
  * shows a list of items
  * will be called on every change of settings and
  * returns the messages and images
  *
  * @return void
  */
 public function listAction()
 {
     $isJson = $this->getRequest()->getParam('json', false);
     // load current settings
     $settingsModel = new application_models_settings();
     $currentSettings = array();
     foreach ($settingsModel->fetchAll() as $setting) {
         $currentSettings[$setting->name] = $setting->value;
     }
     // read settings
     $settings = $this->getRequest()->getPost();
     $settings = array_merge($currentSettings, $settings);
     // get list template vars
     $listHelper = Zend_Controller_Action_HelperBroker::getStaticHelper('list');
     try {
         $listHelper->readItems($settings);
         $listHelper->setTemplateVars($this->view);
     } catch (Exception $e) {
         $this->_helper->json(array('error' => $e->getMessage()));
     }
     // save settings
     if (Zend_Registry::get('config')->demomode != "1" && Zend_Registry::get('session')->authenticated === true) {
         $settingsModel->save(array('currentPriorityStart' => $settings['currentPriorityStart'], 'currentPriorityEnd' => $settings['currentPriorityEnd'], 'view' => $settings['view'], 'selected' => $settings['selected'], 'unread' => $settings['unread'], 'starred' => $settings['starred'], 'sort' => $settings['sort']));
     }
     // get unread items
     $itemCounter = Zend_Controller_Action_HelperBroker::getStaticHelper('itemcounter');
     // return items
     $feedModel = new application_models_feeds();
     $result = array('html' => utf8_encode(utf8_decode($this->view->render('item/list.' . Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer')->getViewSuffix()))), 'categories' => $itemCounter->unreadItemsCategories($settings), 'feeds' => $itemCounter->unreadItemsFeeds($settings), 'starred' => $itemCounter->starredItems($settings), 'all' => $itemCounter->allItems($settings), 'countfeeds' => $feedModel->count(Zend_Registry::get('session')->currentPriorityStart, Zend_Registry::get('session')->currentPriorityEnd, Zend_Registry::get('session')->view));
     if ($isJson == true) {
         unset($result['html']);
         $result['messages'] = $listHelper->getMessages();
         $result['moremessages'] = $listHelper->hasMoreMessages();
         $result['multimedia'] = $listHelper->getMultimedia();
         $result['moremultimedia'] = $listHelper->hasMoreMultimedia();
     }
     $this->_helper->json($result);
 }
 /**
  * set feedlist data for the current view
  *
  * @return void
  */
 protected function feedlistData()
 {
     // check whether uncategorized exists or not (add it if not)
     $categoriesModel = new application_models_categories();
     $categoriesModel->checkUncategorized();
     // categories and feeds (target template param)
     $this->view->categories = array();
     // load unread items
     $itemCounter = Zend_Controller_Action_HelperBroker::getStaticHelper('itemcounter');
     $unreadCategory = $itemCounter->unreadItemsCategories();
     $unreadFeed = $itemCounter->unreadItemsFeeds();
     // get open categories
     if (Zend_Registry::get('session')->saveOpenCategories == 1) {
         $open = explode(',', Zend_Registry::get('session')->openCategories);
     } else {
         $open = array();
     }
     // load categories
     $categoriesDb = $categoriesModel->fetchAll($categoriesModel->select()->order('position ASC'));
     $feedPositions = Zend_Controller_Action_HelperBroker::getStaticHelper('icon')->getFeedsIconPosition();
     // read feeds and count items of the loaded categories
     $feedsModel = new application_models_feeds();
     foreach ($categoriesDb as $cat) {
         $newcat = $cat->toArray();
         // get feeds of cat
         $feedRowset = $cat->findDependentRowset('application_models_feeds', null, $feedsModel->select()->order('position ASC'));
         $newcat['feeds'] = array();
         foreach ($feedRowset as $feed) {
             $newfeed = $feed->toArray();
             $newfeed['unread'] = isset($unreadFeed[$feed->id]) ? $unreadFeed[$feed->id] : 0;
             $newfeed['iconposition'] = $feedPositions[$feed->id];
             $newcat['feeds'][] = $newfeed;
         }
         // get unread items of cat
         $newcat['unread'] = isset($unreadCategory[$cat->id]) ? $unreadCategory[$cat->id] : 0;
         // set open (feeds visible) or not
         if (in_array($cat->id, $open)) {
             $newcat['open'] = true;
         } else {
             $newcat['open'] = false;
         }
         // append category
         $this->view->categories[] = $newcat;
     }
     // count starred items
     $this->view->starred = $itemCounter->starredItems();
     // count unread items
     $this->view->unread = $unreadCategory[0];
     // count all items
     $this->view->all = $itemCounter->allItems();
     // count read items
     $this->view->read = $this->view->all - $this->view->unread;
     // count feeds
     $this->view->amountfeeds = $feedsModel->count(Zend_Registry::get('session')->currentPriorityStart, Zend_Registry::get('session')->currentPriorityEnd, Zend_Registry::get('session')->view);
 }
 /**
  * delete feed
  *
  * @return void
  */
 public function deleteAction()
 {
     // get id
     $id = $this->getRequest()->getParam('id');
     // delete feed
     $feedModel = new application_models_feeds();
     $result = $feedModel->remove($id);
     // return unread items or error
     $return = array();
     if ($result === true) {
         // renew iconcache
         Zend_Controller_Action_HelperBroker::getStaticHelper('icon')->resetIconImage();
         // count unread items per category
         $return['categories'] = Zend_Controller_Action_HelperBroker::getStaticHelper('itemcounter')->unreadItemsCategories();
         // count all feeds
         $return['feeds'] = $feedModel->count(Zend_Registry::get('session')->currentPriorityStart, Zend_Registry::get('session')->currentPriorityEnd, Zend_Registry::get('session')->view);
         // count all items
         $return['all'] = Zend_Controller_Action_HelperBroker::getStaticHelper('itemcounter')->allItems();
         // new settings (priority)
         $return['settings'] = $this->resetPriorities();
     } else {
         $return['error'] = $result;
     }
     // send result
     $this->_helper->json($return);
 }