예제 #1
0
 public function actionIndex()
 {
     if (Yii::app()->user->isGuest) {
         $this->redirect(Yii::app()->homeUrl);
     }
     $this->pageTitle = Yii::t('title', 'Accounts');
     $criteria = new CDbCriteria();
     $criteria->select = 'id, name, access_level, membership, last_ip, expire, ' . Yii::app()->params->money . ' AS toll, email';
     $criteria->condition = 'id = ' . Yii::app()->user->id;
     $model = AccountData::model()->find($criteria);
     $ref_link = Yii::app()->homeUrl . 'register/' . Yii::app()->user->id;
     $transfer = new LogPoints();
     if (isset($_POST['LogPoints'])) {
         $transfer->attributes = $_POST['LogPoints'];
         $transfer->sender = Yii::app()->user->name;
         if ($transfer->validate()) {
             $criteria = new CDbCriteria();
             $criteria->select = 'account_id, account_name, online';
             $criteria->condition = 'name = "' . $transfer->recipient . '"';
             $account_id = Players::model()->find($criteria);
             if (!$account_id) {
                 Yii::app()->user->setFlash('message', '<div class="flash_error">' . Yii::t('account', 'Error - Character not found.') . '</div>');
                 $this->redirect('account');
             }
             $criteria = new CDbCriteria();
             $criteria->select = Yii::app()->params->money;
             $criteria->condition = 'id = ' . Yii::app()->user->id;
             $balance = AccountData::model()->find($criteria);
             if ($transfer->sum > $balance[Yii::app()->params->money]) {
                 Yii::app()->user->setFlash('message', '<div class="flash_error">' . Yii::t('account', 'Error - Insufficient funds.') . '</div>');
                 $this->redirect('account');
             }
             $criteria = new CDbCriteria();
             $criteria->condition = 'account_id = ' . Yii::app()->user->id . ' AND online = 1';
             $check_online = Players::model()->count($criteria);
             if ($check_online > 0) {
                 Yii::app()->user->setFlash('message', '<div class="flash_error">' . Yii::t('account', 'Error - You must first be logged out from the game server.') . '</div>');
                 $this->redirect('account');
             }
             $criteria = new CDbCriteria();
             $criteria->condition = 'id = ' . Yii::app()->user->id;
             $money = AccountData::model()->find($criteria);
             $money[Yii::app()->params->money] = $money[Yii::app()->params->money] - $transfer->sum;
             $money->save();
             $criteria = new CDbCriteria();
             $criteria->condition = 'id = ' . $account_id->account_id;
             $money = AccountData::model()->find($criteria);
             $money[Yii::app()->params->money] = $money[Yii::app()->params->money] + $transfer->sum;
             $money->save();
             $transfer->recipient = $account_id->account_name;
             $transfer->save(false);
             Yii::app()->user->setFlash('message', '<div class="flash_success">' . Yii::t('account', 'Points listed!') . '</div>');
             $this->redirect('account');
         }
     }
     $this->render('account', array('model' => $model, 'ref_link' => $ref_link, 'form' => $transfer));
 }
예제 #2
0
 public function actionPoints()
 {
     if (Yii::app()->user->isGuest or Yii::app()->user->access_level < Config::get('access_level_admin')) {
         $this->redirect(Yii::app()->homeUrl);
     }
     $this->pageTitle = Yii::t('title', 'Report - Points transferred');
     $criteria = new CDbCriteria();
     $criteria->select = '*';
     $criteria->order = 'id DESC';
     $pages = new CPagination(LogPoints::model()->count($criteria));
     $pages->pageSize = 25;
     $pages->applyLimit($criteria);
     $model = LogPoints::model()->findAll($criteria);
     $this->render('/admin/log_points', array('model' => $model, 'pages' => $pages));
 }