public function categorizeAction()
 {
     $feedDAO = new FreshRSS_FeedDAO();
     $catDAO = new FreshRSS_CategoryDAO();
     $defaultCategory = $catDAO->getDefault();
     $defaultId = $defaultCategory->id();
     if (Minz_Request::isPost()) {
         $cats = Minz_Request::param('categories', array());
         $ids = Minz_Request::param('ids', array());
         $newCat = trim(Minz_Request::param('new_category', ''));
         foreach ($cats as $key => $name) {
             if (strlen($name) > 0) {
                 $cat = new FreshRSS_Category($name);
                 $values = array('name' => $cat->name());
                 $catDAO->updateCategory($ids[$key], $values);
             } elseif ($ids[$key] != $defaultId) {
                 $feedDAO->changeCategory($ids[$key], $defaultId);
                 $catDAO->deleteCategory($ids[$key]);
             }
         }
         if ($newCat != '') {
             $cat = new FreshRSS_Category($newCat);
             $values = array('id' => $cat->id(), 'name' => $cat->name());
             if ($catDAO->searchByName($newCat) == false) {
                 $catDAO->addCategory($values);
             }
         }
         invalidateHttpCache();
         $notif = array('type' => 'good', 'content' => Minz_Translate::t('categories_updated'));
         Minz_Session::_param('notification', $notif);
         Minz_Request::forward(array('c' => 'configure', 'a' => 'categorize'), true);
     }
     $this->view->categories = $catDAO->listCategories(false);
     $this->view->defaultCategory = $catDAO->getDefault();
     $this->view->feeds = $feedDAO->listFeeds();
     $this->view->flux = false;
     Minz_View::prependTitle(Minz_Translate::t('categories_management') . ' · ');
 }