예제 #1
0
 /**
  * Детали админа.
  */
 public function actionView($id = NULL)
 {
     if (!Yii::app()->request->isAjaxRequest && $id !== NULL) {
         // Проверка прав
         if (!Webadmins::checkAccess('amxadmins_edit')) {
             throw new CHttpException(403, "У Вас недостаточно прав");
         }
         $model = $this->loadmodel($id);
         $this->render('view', array('model' => $model));
         Yii::app()->end();
     }
     $model = Amxadmins::model()->with('servers')->findByPk($_POST['aid']);
     if ($model === null) {
         Yii::app()->end("alert('Ошибка!')");
     }
     $steam = '';
     // Если стимайди админа проходит проверку на валидность, получаем инфу об админе с вальве
     if (Prefs::validate_value($model->steamid)) {
         if ($url = @file_get_contents(Prefs::steam_convert($model->steamid, false, true))) {
             $xmlres = simplexml_load_string($url);
             $steam = CHtml::image($xmlres->avatarIcon) . " " . CHtml::link($xmlres->steamID, "http://steamcommunity.com/profiles/" . $xmlres->steamID64, array("target" => "_blank", "rel" => "tooltip", "title" => "Просмотреть профиль"));
         }
     }
     $servers = '';
     // Если есть сервера у админа, выводим сервера
     if ($model->servers) {
         foreach ($model->servers as $server) {
             if (!$server->hostname) {
                 continue;
             }
             $servers .= CHtml::link($server->hostname, Yii::app()->createUrl('/serverinfo/view', array('id' => intval($server->id))), array('target' => '_blank')) . "<br>";
         }
     }
     // Формируем таблицу с инфой об админе
     $info = "<table class=\"table table-bordered\">";
     $info .= "<tr>";
     $info .= "<td><b>Ник</b></td>";
     $info .= "<td>" . CHtml::encode($model->nickname) . "</td>";
     $info .= "</tr><tr>";
     $info .= "<td><b>Контакты</b></td>";
     $info .= "<td>" . ($model->icq ? CHtml::image("//icq-rus.com/icq/3/" . $model->icq . ".gif") . " " . $model->icq : 'Не задан') . "</td>";
     $info .= "</tr><tr>";
     $info .= "<td><b>Доступ</b></td>";
     $info .= "<td>" . $model->access . "</td>";
     $info .= "</tr><tr>";
     $info .= "<td><b>Добавлен</b></td>";
     $info .= "<td>" . date("d.m.Y - H:i:s", $model->created) . "</td>";
     $info .= "</tr><tr>";
     $info .= "<td><b>Истекает</b></td>";
     $info .= "<td>" . ($model->expired != 0 ? date("d.m.Y - H:i:s", $model->expired) : "Никогда") . "</td>";
     $info .= "</tr>";
     $info .= "</table>";
     $js = "\$('#adminInfo').html('" . $info . "');";
     $js .= "\$('#adminSteam').html('" . ($steam ? $steam : '<i>Информация отсутствует</i>') . "');";
     $js .= "\$('#adminServers').html('" . ($model->servers ? $servers : '<i>Информация отсутствует</i>') . "');";
     $js .= "\$('#loading').hide();";
     $js .= "\$('#adminDetail').modal('show');";
     // Выводим инфу
     Yii::app()->end($js);
 }
예제 #2
0
 protected function afterValidate()
 {
     if ($this->scenario == 'buy') {
         return true;
     }
     if (!$this->access) {
         $this->addError('access', 'Выберите флаги доступа');
     }
     if ($this->isNewRecord && $this->flags === 'a' && !$this->password) {
         $this->addError('password', 'Для админки по нику нужно обязательно указывать пароль');
     }
     if ($this->flags === 'd' && !filter_var($this->steamid, FILTER_VALIDATE_IP, array('flags' => FILTER_FLAG_IPV4))) {
         $this->addError('steamid', 'Неверно введен IP');
     }
     if ($this->flags === 'c' && !Prefs::validate_value($this->steamid, 'steamid')) {
         $this->addError('steamid', 'Неверно введен SteamID');
     }
     if ($this->password && !preg_match('#^([a-z0-9]+)$#i', $this->password)) {
         $this->addError('password', 'Пароль может содержать только буквы латинского алфавита и цифры');
     }
     if (!$this->isNewRecord && $this->days < $this->change && $this->addtake === '1') {
         $this->addError('', 'Ошибка! Нельзя забрать дней больше, чем у него уже есть');
     }
     if (empty($this->servers)) {
         $this->addError('servers', 'Выберите хотябы один сервер');
     }
     if ($this->hasErrors()) {
         return $this->getErrors();
     }
     return parent::afterValidate();
 }