/** * Remove a folder * * @return void */ public function saveorderingTask() { // Check for request forgeries Request::checkToken(['get', 'post']); // Incoming $folders = Request::getVar('folder', array()); $queries = Request::getVar('queries', array()); if (is_array($folders)) { foreach ($folders as $key => $folder) { $row = new QueryFolder($this->database); $row->load(intval($folder)); $row->ordering = $key + 1; $row->store(); } } if (is_array($queries)) { $folder = null; $i = 0; foreach ($queries as $query) { $bits = explode('_', $query); $fd = intval($bits[0]); $id = intval($bits[1]); if ($fd != $folder) { $folder = $fd; $i = 0; } $row = new Query($this->database); $row->load($id); $row->folder_id = $fd; $row->ordering = $i + 1; $row->store(); $i++; } } if (!$no_html) { // Output messsage and redirect App::redirect(Route::url('index.php?option=' . $this->_option . '&controller=' . $this->_controller, false), Lang::txt('COM_SUPPORT_QUERY_FOLDER_SUCCESSFULLY_REMOVED')); } $response = new stdClass(); $response->success = 1; $response->message = Lang::txt('COM_SUPPORT_QUERY_FOLDER_ORDERING_UPDATED'); echo json_encode($response); }
/** * Reset default queries and folders. * System will repopulate them. * * @return void */ public function resetTask() { // Check for request forgeries Request::checkToken(['get', 'post']); if (!User::authorise('core.admin', $this->_option)) { return $this->cancelTask(); } $db = App::get('db'); $query = new Query($db); $folder = new QueryFolder($db); $db->setQuery("DELETE FROM " . $db->quoteName($query->getTableName())); $db->query(); $db->setQuery("DELETE FROM " . $db->quoteName($folder->getTableName())); $db->query(); // Get all the default folders $folders = $folder->find('list', array('user_id' => 0, 'sort' => 'ordering', 'sort_Dir' => 'asc', 'iscore' => 1)); if (count($folders) <= 0) { $defaults = array(1 => array('Common', 'Mine', 'Custom'), 2 => array('Common', 'Mine')); foreach ($defaults as $iscore => $fldrs) { $i = 1; foreach ($fldrs as $fldr) { $f = new QueryFolder($db); $f->iscore = $iscore; $f->title = $fldr; $f->check(); $f->ordering = $i; $f->user_id = 0; $f->store(); switch ($f->alias) { case 'common': $j = $iscore == 1 ? $query->populateDefaults('common', $f->id) : $query->populateDefaults('commonnotacl', $f->id); break; case 'mine': $query->populateDefaults('mine', $f->id); break; default: // Nothing for custom folder break; } $i++; } } } $this->cancelTask(); }