/**
  * list more items
  * will be executed on clicking on more
  *
  * @return void
  */
 public function listmoreAction()
 {
     // 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()->getParams();
     $settings = array_merge($currentSettings, $settings);
     // get items
     $result = $this->listItems($settings);
     // show items
     $this->_helper->json($result);
 }
 /**
  * Save new settings
  *
  * @return void
  */
 public function saveAction()
 {
     // suppress view rendering
     Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer')->setNoRender(true);
     // save username password
     $activateLogin = $this->getRequest()->getParam('activate_login');
     $username = $this->getRequest()->getParam('username', false);
     $password = $this->getRequest()->getParam('password', false);
     $passwordAgain = $this->getRequest()->getParam('password_again', false);
     $result = array();
     // deactivate login
     if ($activateLogin == '0') {
         $this->removeLogin();
         // activate login
     } else {
         // any data changed?
         $user = new application_models_users();
         if ($username != $user->getUsername() || strlen($password) != 0) {
             if ($password != $passwordAgain) {
                 $result = array('password_again' => Zend_Registry::get('language')->translate('given passwords not equal'));
             } else {
                 if (strlen(trim($password)) != 0 && strlen(trim($username)) == 0) {
                     $result = array('username' => Zend_Registry::get('language')->translate('if you set a password you must set an username'));
                 } else {
                     $this->saveLogin($username, $password);
                 }
             }
         }
     }
     $newSettings = $this->getRequest()->getPost();
     // save new settings
     if (count($result) == 0) {
         $settingsModel = new application_models_settings();
         $result = $settingsModel->save($newSettings);
     }
     // delete cached js files (for language settings)
     $target = Zend_Registry::get('config')->pub->path . 'javascript/' . Zend_Registry::get('config')->cache->minifiedjsfile;
     if (file_exists($target)) {
     }
     unlink($target);
     // return result (errors or success)
     $this->_helper->json($result);
 }
 /**
  * will be executed by the javascript ajax call
  * and signals that it finished successfully a complete
  * update using ajax
  *
  * @return void
  */
 public function finishAction()
 {
     $logger = Zend_Registry::get('logger');
     // set lastrefresh if timeout is already 0
     $updater = Zend_Controller_Action_HelperBroker::getStaticHelper('updater');
     if ($updater->timeout() == 0) {
         // save last refresh (current session will also be updated by models save)
         $lastrefresh = Zend_Date::now()->get(Zend_Date::TIMESTAMP);
         $settingsModel = new application_models_settings();
         $settingsModel->save(array('lastrefresh' => $lastrefresh));
         // delete orphaned thumbnails
         $updater->cleanupThumbnails();
         $logger->log('delete orphaned thumbnails', Zend_Log::DEBUG);
         // optimize database
         application_models_base::optimizeDatabase();
         $logger->log('database successfully optimized', Zend_Log::DEBUG);
         $logger->log('finished ajax update', Zend_Log::DEBUG);
     }
     // return new timeout and unread items
     $itemCounter = Zend_Controller_Action_HelperBroker::getStaticHelper('itemcounter');
     $this->_helper->json(array('timeout' => $updater->timeout(), 'lastrefresh' => isset($lastrefresh) ? $lastrefresh : Zend_Registry::get('session')->lastrefresh, 'categories' => $itemCounter->unreadItemsCategories(), 'feeds' => $itemCounter->unreadItemsFeeds()));
 }
Exemplo n.º 4
0
 /**
  * reads settings from database
  *
  * @return value for this setting
  * @param name the name of the setting
  * @param default the default value of this setting
  */
 protected function initializeSessionValue($name, $default)
 {
     // get database settings object
     $settings = new application_models_settings();
     // get value from database
     $result = $settings->fetchAll($settings->select()->where('name=?', $name));
     // value found?
     if ($result->count() > 0) {
         return $result->current()->value;
         // value not found
     } else {
         // save default value in database
         $settings->insert(array('name' => $name, 'value' => $default));
         // return default value
         return $default;
     }
 }
 /**
  * validate wrong settings value
  *
  * @return void
  * @param string $name of the setting
  * @param string $value of the setting
  */
 private function checkWrongValue($name, $value)
 {
     $result = $this->model->validate(array_merge($this->settings, array($name => $value)));
     $this->assertTrue(is_array($result));
 }
Exemplo n.º 6
0
 /**
  * set timeout in the session and 
  * returns the timeout for the next refresh
  *
  * @return int timeout
  */
 public function timeout()
 {
     // load lastrefresh from database
     $settings = new application_models_settings();
     $lastrefresh = $settings->get('lastrefresh');
     if ($lastrefresh !== false) {
         Zend_Registry::get('session')->lastrefresh = $lastrefresh;
     }
     // no lastrefresh set
     if (Zend_Registry::get('session')->lastrefresh == 0) {
         Zend_Registry::get('session')->timeout = 0;
     } else {
         // calc seconds between now and last refresh
         $now = Zend_Date::now();
         $last = new Zend_Date();
         $last->set(Zend_Registry::get('session')->lastrefresh, Zend_Date::TIMESTAMP);
         $diff = $now->sub($last)->toValue();
         $diff = Zend_Registry::get('session')->refresh * 60 - $diff;
         // set timeout 0 if refresh intervall was exceed
         if ($diff < 0) {
             $diff = 0;
         }
         // set timeout in session
         Zend_Registry::get('session')->timeout = $diff;
     }
     return Zend_Registry::get('session')->timeout;
 }
 /**
  * saves open categories
  *
  * @return void
  */
 public function openAction()
 {
     $settingsModel = new application_models_settings();
     $settingsModel->save($this->getRequest()->getParams());
     $this->_helper->json(true);
 }
Exemplo n.º 8
0
 /**
  * import given opml file
  *
  * @return void
  */
 public function importAction()
 {
     // parse given opml file
     $xml = simplexml_load_string(file_get_contents($_FILES['userfile']['tmp_name']));
     if (!$xml) {
         echo Zend_Json::encode(array('error' => Zend_Registry::get('language')->translate('opml file parse error')));
         return;
     }
     // load first instance
     $parsedFeeds = array('-1' => array());
     foreach ($xml->body->outline as $outline) {
         // category?
         if (!isset($outline['xmlUrl'])) {
             // read category title
             $categoryTitle = "";
             if (isset($outline['text'])) {
                 $categoryTitle = (string) $outline['text'];
             } elseif (isset($outline['title'])) {
                 $categoryTitle = (string) $outline['title'];
             }
             if (strlen($categoryTitle) == 0) {
                 continue;
             }
             $parsedFeeds[$categoryTitle] = $this->importAllOutline($outline);
         } else {
             $parsedFeeds['-1'][] = $this->readFeed($outline);
         }
     }
     // insert new categories, get existing category id
     foreach ($parsedFeeds as $category => $feeds) {
         // insert or get existing category
         $category = $this->insertCategory($category);
         // insert feeds
         $this->insertFeeds($category, $feeds);
     }
     // reset timeout
     $settingsModel = new application_models_settings();
     $settingsModel->save(array('lastrefresh' => 0));
     echo Zend_Json::encode(array('success' => true));
 }
 /**
  * reset priorities depending on the current
  * max and min priorities of all feeds
  *
  * @return array new settings
  */
 protected function resetPriorities()
 {
     // set min and max priority
     $feedModel = new application_models_feeds();
     $min = $feedModel->minPriority();
     $max = $feedModel->maxPriority();
     $newSettings = array('priorityStart' => $min, 'priorityEnd' => $max);
     // reset current priority if necessary
     if (Zend_Registry::get('session')->currentPriorityStart < $min) {
         $newSettings['currentPriorityStart'] = $min;
     }
     if (Zend_Registry::get('session')->currentPriorityEnd > $max) {
         $newSettings['currentPriorityEnd'] = $max;
     }
     if (Zend_Registry::get('session')->currentPriorityEnd < $min) {
         $newSettings['currentPriorityEnd'] = $min;
     }
     // save new settings
     $settings = new application_models_settings();
     $settings->set($newSettings);
     return $newSettings;
 }