public function actionIndex()
 {
     if (Yii::app()->user->isGuest) {
         $this->redirect(Yii::app()->homeUrl);
     }
     $this->pageTitle = Yii::t('title', 'Character list');
     $criteria = new CDbCriteria();
     $criteria->select = 'name, account_id, account_name, exp, race, player_class, creation_date';
     $criteria->join = 'INNER JOIN ' . Config::db('db') . '.log_referals ON (log_referals.slave_id = t.account_id AND log_referals.master_id = "' . Yii::app()->user->id . '" AND status = "unpaid")';
     $referals = Players::model()->findAll($criteria);
     $form = new LogReferals();
     if (isset($_POST['LogReferals'])) {
         $form->attributes = $_POST['LogReferals'];
         $check_isset = LogReferals::model()->count('master_id = ' . Yii::app()->user->id . ' AND slave_id = ' . $form->slave_id . ' AND status = "unpaid"');
         if ($check_isset != 1) {
             Yii::app()->user->setFlash('message', '<div class="flash_error">' . Yii::t('pers', 'You have no referrаls.') . '</div>');
             $this->refresh();
         }
         $master = AccountData::model()->find('id = ' . Yii::app()->user->id);
         $check_ip = AccountData::model()->count('id = ' . $form->slave_id . ' AND last_ip = "' . $master->last_ip . '"');
         if ($check_ip != 0) {
             $log = LogReferals::model()->find('master_id = ' . Yii::app()->user->id . ' AND slave_id = ' . $form->slave_id . ' AND status = "unpaid"');
             $log->status = 'blocked';
             $log->update(false);
             Yii::app()->user->setFlash('message', '<div class="flash_error">' . Yii::t('pers', 'You have no referrаls.') . '</div>');
             $this->refresh();
         }
         $criteria = new CDbCriteria();
         $criteria->select = 'exp';
         $criteria->condition = 'account_id = ' . $form->slave_id;
         $criteria->order = 'exp DESC';
         $criteria->limit = 1;
         $check_lvl = Players::model()->find($criteria);
         if (Info::lvl($check_lvl->exp) < Config::get('referal_level')) {
             Yii::app()->user->setFlash('message', '<div class="flash_error">' . Yii::t('pers', 'Less than the minimum level.') . '</div>');
             $this->refresh();
         }
         $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] + Config::get('referal_bonus');
         $money->save();
         $criteria = new CDbCriteria();
         $criteria->condition = 'id = ' . $form->slave_id;
         $money = AccountData::model()->find($criteria);
         $money[Yii::app()->params->money] = $money[Yii::app()->params->money] + Config::get('referal_bonus_ref');
         $money->save();
         $log = LogReferals::model()->find('master_id = ' . Yii::app()->user->id . ' AND slave_id = ' . $form->slave_id . ' AND status = "unpaid"');
         $log->status = 'complete';
         $log->update(false);
         Yii::app()->user->setFlash('message', '<div class="flash_success">' . Yii::t('pers', 'Bonus credit applied!') . '</div>');
         $this->refresh();
     }
     $this->render('/pers', array('model' => Players::getPlayers(), 'referals' => $referals));
 }
 public function actionReferals()
 {
     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 - Referrals list');
     $criteria = new CDbCriteria();
     $criteria->select = '*';
     $criteria->order = 'id DESC';
     $pages = new CPagination(LogReferals::model()->count($criteria));
     $pages->pageSize = 25;
     $pages->applyLimit($criteria);
     $model = LogReferals::model()->findAll($criteria);
     $this->render('/admin/log_referals', array('model' => $model, 'pages' => $pages));
 }
 public function actionRegister()
 {
     $this->pageTitle = Yii::t('title', 'Registration');
     $settings = Settings::model()->find();
     $form = new AccountData();
     $form->scenario = 'register';
     if (isset($_GET['id'])) {
         $id = $_GET['id'];
         $cookie = new CHttpCookie('pow_referal', $id);
         $cookie->expire = time() + 60 * 60 * 24;
         Yii::app()->request->cookies['pow_referal'] = $cookie;
     }
     if (isset($_POST['AccountData'])) {
         $form->attributes = $_POST['AccountData'];
         if ($form->save()) {
             if ($settings->referal_enable == 1 and isset(Yii::app()->request->cookies['pow_referal']->value)) {
                 $master = AccountData::model()->findByPk(Yii::app()->request->cookies['pow_referal']->value);
                 $model = new LogReferals();
                 $model->master = $master->name;
                 $model->master_id = $master->id;
                 $model->slave = $form->name;
                 $model->slave_id = $form->id;
                 $model->save(false);
                 unset(Yii::app()->request->cookies['pow_referal']);
             }
             if ($settings->trial_enable == 1) {
                 $model = AccountData::model()->findByPk($form->id);
                 $model->scenario = 'membership';
                 $model->membership = $settings->trial_type;
                 $model->expire = date("Y-m-d", mktime() + $settings->trial_days * 86400);
                 $model->save(false);
             }
             if ($settings->email_activation == 1) {
                 $code = substr(md5(uniqid(rand(), true)), 0, rand(10, 15));
                 $link = '<a href="' . Yii::app()->homeUrl . 'account/activation/' . $code . '">' . Yii::app()->homeUrl . 'account/activation/' . $code . '</a>';
                 $model = AccountData::model()->findByPk($form->id);
                 $model->activated = 0;
                 $model->activation = $code;
                 $model->save(false);
                 $to = $model->email;
                 $subject = 'Account activation';
                 $message = 'You have successfully registered as <a href="' . Yii::app()->homeUrl . '">' . Yii::app()->name . '</a><br /><br />To activate your account, click the following link: ' . $link;
                 $headers = 'MIME-Version: 1.0' . "\r\n";
                 $headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";
                 $headers .= 'To: ' . $model->name . ' <' . $model->email . '>' . "\r\n";
                 $headers .= 'From: ' . Yii::app()->name . ' <' . Yii::app()->params['adminEmail'] . '>' . "\r\n";
                 mail($to, $subject, $message, $headers);
                 Yii::app()->user->setFlash('message', '<div class="flash_success">' . Yii::t('account', 'Account successfully created!  Please check your email inbox for the activation link.') . '</div>');
                 $this->refresh();
             }
             Yii::app()->user->setFlash('message', '<div class="flash_success">' . Yii::t('account', 'Account creation successful!') . '</div>');
             $this->refresh();
         }
     }
     $this->render('register', array('form' => $form));
 }