public function actionAdminsonservers() { // Проверка прав if (!Webadmins::checkAccess('amxadmins_edit')) { throw new CHttpException(403, "У Вас недостаточно прав"); } $this->layout = '//layouts/main'; // Сохранение параметров админа if (Yii::app()->request->isAjaxRequest && isset($_POST['sid']) && isset($_POST['aid'])) { $exit = "alert('Ошибка');"; if (isset($_POST['active'])) { if (!empty($_POST['customflags']) && !preg_match('#^([a-z]+)$#', $_POST['customflags'])) { Yii::app()->end("alert('Ошибка!В флаги нужно прописывать только буквы латинского алфавита');"); } $adm = AdminsServers::model()->findByAttributes(array('admin_id' => $_POST['aid'], 'server_id' => $_POST['sid'])); if ($adm === NULL) { $adm = new AdminsServers(); $adm->admin_id = $_POST['aid']; $adm->server_id = $_POST['sid']; } $adm->flags = isset($_POST['customflags']) ? str_split($_POST['customflags']) : array(); $adm->use_static_bantime = $_POST['staticbantime']; if ($adm->save()) { $exit = "alert('Сохранено');"; } } else { $admin = Amxadmins::model()->findByPk($_POST['aid']); $res = AdminsServers::model()->deleteAllByAttributes(array('admin_id' => $_POST['aid'], 'server_id' => $_POST['sid'])); if ($res) { $hash = crc32($admin->steamid); $exit = "alert('Удалено'); \$('.input{$hash}').hide();"; } } Yii::app()->end($exit); } elseif (Yii::app()->request->isAjaxRequest && isset($_POST['sid']) && is_numeric($_POST['sid'])) { $sid = $_POST['sid']; $admins = Amxadmins::model()->sort()->findAll(); $server = Serverinfo::model()->findByPk($sid); // Шапка таблицы с админами $js = "<table class=\"table table-bordered table-stripped\"><thead><tr class=\"info\"><th colspan=5>{$server->hostname}</th></tr></tr><tr><th>Ник</th><th>Steam/IP/Ник</th><th>Доп. флаги</th><th>Установленное время бана</th><th>Вкл</th><th>Сохранить</th></thead><tbody>"; foreach ($admins as $admin) { $customflags = NULL; $staticbantime = NULL; $active = NULL; $link = NULL; $checked = FALSE; $display = 'display: none'; $name1 = NULL; $name2 = NULL; $class = $admin->expired && $admin->expired <= time() ? ' class="error"' : ''; $s = AdminsServers::model()->findByAttributes(array('admin_id' => $admin->id, 'server_id' => $sid)); if ($s !== NULL) { $checked = TRUE; $display = NULL; $name1 = $s->custom_flags; $name2 = $s->use_static_bantime; } $customflags = CHtml::textField('customflags', $name1, array('class' => 'input' . $admin->id, 'style' => $display)); $staticbantime = CHtml::dropDownList('staticbantime', $name2, array('no' => 'Нет', 'yes' => 'Да'), array('class' => 'input' . $admin->id, 'style' => $display)); $link = CHtml::link('<i class="icon-ok-sign"></i>', '#', array('onclick' => '$.post("", $("#tr' . $admin->id . ' input, #tr' . $admin->id . ' select").serialize(), function(data){ eval(data); }); return false;', 'rel' => 'tooltip', 'title' => 'Сохранить')); $js .= "<tr id='tr" . $admin->id . "'{$class}>"; $js .= CHtml::form('', 'post', array('id' => 'form' . $admin->id)); $js .= "<td id=\"nickname\">" . CHtml::encode($admin->nickname) . '</td>'; $js .= "<td id=\"\">{$admin->steamid}</td>"; $js .= "<td id=\"customflags\">{$customflags}</td>"; $js .= "<td id=\"staticbantime\">{$staticbantime}</td>"; $js .= "<td style=\"text-align: center; vertical-alifn: middle\">" . CHtml::checkBox('active', $checked, array('id' => 'active' . $admin->id, 'onclick' => 'checkaccess("' . $admin->id . '");')) . "</td>"; $js .= "<td style=\"text-align: center; vertical-alifn: middle\">{$link}</td>"; $js .= CHtml::hiddenField('aid', $admin->id); $js .= CHtml::hiddenField('sid', $sid); $js .= CHtml::endForm(); $js .= "</tr>"; } $js .= '</tbody></table>'; Yii::app()->end($js); } $this->render('adminsonservers', array('servers' => Serverinfo::model()->cache(600)->findAll())); }
public function afterDelete() { AdminsServers::model()->deleteAllByAttributes(array('admin_id' => $this->id)); Syslog::add(Logs::LOG_DELETED, 'Удален AmxModX админ <strong>' . $this->nickname . '</strong>'); return parent::afterDelete(); }