view->loginOk) { Minz_Error::error( 403, array('error' => array(_t('access_denied'))) ); } $catDAO = new FreshRSS_CategoryDAO(); $catDAO->checkDefault(); } /** * This action creates a new category. * * Request parameter is: * - new-category */ public function createAction() { $catDAO = new FreshRSS_CategoryDAO(); $url_redirect = array('c' => 'configure', 'a' => 'categorize'); if (Minz_Request::isPost()) { invalidateHttpCache(); $cat_name = Minz_Request::param('new-category'); if (!$cat_name) { Minz_Request::bad(_t('category_no_name'), $url_redirect); } $cat = new FreshRSS_Category($cat_name); if ($catDAO->searchByName($cat->name()) != null) { Minz_Request::bad(_t('category_name_exists'), $url_redirect); } $values = array( 'id' => $cat->id(), 'name' => $cat->name(), ); if ($catDAO->addCategory($values)) { Minz_Request::good(_t('category_created', $cat->name()), $url_redirect); } else { Minz_Request::bad(_t('error_occured'), $url_redirect); } } Minz_Request::forward($url_redirect, true); } /** * This action deletes all the feeds relative to a given category * * Request parameter is: * - id (of a category) */ public function emptyAction() { $feedDAO = FreshRSS_Factory::createFeedDao(); $url_redirect = array('c' => 'configure', 'a' => 'categorize'); if (Minz_Request::isPost()) { invalidateHttpCache(); $id = Minz_Request::param('id'); if (!$id) { Minz_Request::bad(_t('category_no_id'), $url_redirect); } // List feeds to remove then related user queries. $feeds = $feedDAO->listByCategory($id); if ($feedDAO->deleteFeedByCategory($id)) { // TODO: Delete old favicons // Remove related queries foreach ($feeds as $feed) { $this->view->conf->remove_query_by_get('f_' . $feed->id()); } $this->view->conf->save(); Minz_Request::good(_t('category_emptied'), $url_redirect); } else { Minz_Request::bad(_t('error_occured'), $url_redirect); } } Minz_Request::forward($url_redirect, true); } }