/** * Process quota import * * @return void */ public function processImportTask() { // Import quotas $qfile = Request::getVar('conf_text'); $overwrite = Request::getInt('overwrite_existing', 0); if (empty($qfile)) { // Output message and redirect App::redirect(Route::url('index.php?option=' . $this->_option . '&controller=' . $this->_controller . '&task=import', false), Lang::txt('COM_MEMBERS_QUOTA_NO_CONF_TEXT'), 'warning'); return; } $lines = explode("\n", $qfile); $classes = array(); foreach ($lines as $line) { $line = trim($line); if (empty($line)) { continue; } if (substr($line, 0, 1) == "#") { continue; } $args = preg_split('/\\s+/', $line); switch ($args[0]) { case 'class': $class = new Tables\QuotasClasses($this->database); $class->load(array('alias' => $args[1])); if ($class->id && !$overwrite) { continue; } $class->set('alias', $args[1]); $class->set('soft_blocks', $args[2]); $class->set('hard_blocks', $args[3]); $class->set('soft_files', $args[4]); $class->set('hard_files', $args[5]); $class->store(); break; case 'user': if ($args[2] == 'ignore') { continue; } $user = User::getInstance($args[1]); if (!is_object($user) || !is_numeric($user->get('id'))) { continue; } else { $user_id = $user->get('id'); } $class = new Tables\QuotasClasses($this->database); $class->load(array('alias' => $args[2])); if (!$class->id) { continue; } $quota = new Tables\UsersQuotas($this->database); $quota->load(array('user_id' => $user_id)); if ($quota->id && !$overwrite) { continue; } $quota->set('user_id', $user_id); $quota->set('class_id', $class->id); $quota->set('soft_blocks', $class->soft_blocks); $quota->set('hard_blocks', $class->hard_blocks); $quota->set('soft_files', $class->soft_files); $quota->set('hard_files', $class->hard_files); $quota->store(); break; } } // Output message and redirect App::redirect(Route::url('index.php?option=' . $this->_option . '&controller=' . $this->_controller, false), Lang::txt('COM_MEMBERS_QUOTA_CONF_IMPORT_SUCCESSFUL'), 'passed'); return; }