Exemplo n.º 1
0
 /**
  * Вывод всех банов
  */
 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));
 }