/** * Детали админа. */ 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); }
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(); }