protected function beforeSave() { if ($this->isNewRecord) { $this->file_size = $this->demo_real->getSize(); $this->addr = Prefs::getRealIp(); $this->upload_time = time(); $this->demo_file = md5(microtime() . uniqid(rand(), true)) . "_" . intval($this->bid); } return parent::beforeSave(); }
/** * Вывод всех банов */ public function actionIndex() { if (Yii::app()->request->isAjaxRequest && isset($_POST['server'])) { if ($_POST['server'] == 0) { Yii::app()->end('$("#Bans_admin_nick").html("<option value=\\"0\\">Не выбрано</option>");'); } $amxadmins = Amxadmins::model()->with('servers')->findAll('`address` = :addr', array(':addr' => $_POST['server'])); $js = "<option>Любой админ</option>"; foreach ($amxadmins as $admin) { $js .= "<option value=\"{$admin->steamid}\">{$admin->nickname}</option>"; } Yii::app()->end("\$('#Bans_admin_nick').html('{$js}')"); } $model = new Bans('search'); $model->unsetAttributes(); if (isset($_GET['Bans'])) { $model->attributes = $_GET['Bans']; } $select = "((ban_created+(ban_length*60)) > UNIX_TIMESTAMP() OR ban_length = 0) AND `expired` = 0"; $dataProvider = new CActiveDataProvider('Bans', array('criteria' => array('condition' => Yii::app()->config->auto_prune ? $select : null, 'order' => '`ban_created` DESC'), 'pagination' => array('pageSize' => Yii::app()->config->bans_per_page))); // Проверяем IP посетителя, есть ли он в активных банах $check = Bans::model()->count("`player_ip` = :ip AND " . $select, array(':ip' => Prefs::getRealIp())); $this->render('index', array('dataProvider' => $dataProvider, 'model' => $model, 'check' => $check > 0 ? true : false)); }
/** * Вывод всех банов */ public function actionIndex() { // Выборка действующих банов $select = "((ban_created+(ban_length*60)) > UNIX_TIMESTAMP() OR ban_length = 0) AND `expired` = 0"; // IP адрес клиента $clientIp = Prefs::getRealIp(); // Проверяем IP клиента, есть ли он в активных банах $check = Bans::model()->count("`player_ip` = :ip AND " . $select, array(':ip' => $clientIp)); // Модель для поиска $searchModel = new Bans('search'); // Очистка аттрибутов модели $searchModel->unsetAttributes(); if (isset($_GET['Bans'])) { // Обработка запроса на поиск // Задаем модели параметры из запроса $searchModel->attributes = $_GET['Bans']; // Формируем провайдер данных $dataProvider = $searchModel->search(); } else { // Запроса нет - выводим все баны if (Yii::app()->config->auto_prune) { // Если включено в админке вывод только активных, в критерии зададим условие $condition = $select; } else { // Иначе запрос не формируем и выводим все баны $condition = ''; } // Провайдер данных для всех банов $dataProvider = new CActiveDataProvider('Bans', array('criteria' => array('condition' => $condition, 'order' => '`ban_created` DESC'), 'pagination' => array('pageSize' => Yii::app()->config->bans_per_page))); } $this->render('index', array('dataProvider' => $dataProvider, 'searchModel' => $searchModel, 'check' => (bool) $check, 'clientIp' => $clientIp)); }