Пример #1
0
 /**
  * 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;
 }