public function run()
 {
     //формируем условия поиска скриншотов
     $criteria = new CDbCriteria();
     //ограничиваем количество
     $criteria->limit = $this->count;
     //устанавливаем случайный порядок вывода
     $criteria->order = 'RAND()';
     //выполняем поиск и показываем виджет
     $screenshots = Screenshots::model()->findAll($criteria);
     $this->render('randomScreenshots', array('screenshots' => $screenshots));
 }
Beispiel #2
0
 /**
  * Изменение игры.
  */
 public function actionUpdate()
 {
     $cs = Yii::app()->clientScript;
     //подключаем редактор tinyMce для всех textarea
     $cs->registerScriptFile(Yii::app()->request->baseUrl . '/js/tiny_mce/tiny_mce_gzip.js', CClientScript::POS_END);
     $cs->registerScriptFile(Yii::app()->request->baseUrl . '/js/tiny_mce/init_gz.js', CClientScript::POS_END);
     $cs->registerScriptFile(Yii::app()->request->baseUrl . '/js/tiny_mce/init_editor.js', CClientScript::POS_END);
     //получаем данные игры из базы
     $model = $this->loadGames();
     //получаем список жанров
     $types = Types::model()->findAll();
     //если получены данные игры
     if (isset($_POST['Games'])) {
         //записываем атрибуты
         $model->attributes = $_POST['Games'];
         //получаем список чекбоксов, соответствующих выбранным жанрам...
         $model->g_types = $_POST['types'];
         //... кодируем их и результат записываем в атрибут g_type
         $model->g_type = $this->_encodeTypes();
         //эта переменная запрещает изменение списка скриншотов игры
         //(т.к. для удаления скриншотов используется отдельная форма)
         $model->updateScreenshots = false;
         //сохраняем игру
         if ($model->save()) {
             $this->redirect(array('update', 'id' => $model->g_id));
         }
     }
     //если получены данные из формы удаления скриншотов
     if (isset($_POST['screenshots'])) {
         //удаляем выбранные скриншоты
         foreach ($_POST['screenshots'] as $id) {
             $s = Screenshots::model()->findByPk($id);
             $s->delete();
         }
     }
     //показываем форму
     $this->render('update', array('model' => $model, 'types' => $types));
 }
 /**
  * Returns the data model based on the primary key given in the GET variable.
  * If the data model is not found, an HTTP exception will be raised.
  * @param integer the primary key value. Defaults to null, meaning using the 'id' GET variable
  */
 public function loadScreenshots($id = null)
 {
     if ($this->_model === null) {
         if ($id !== null || isset($_GET['id'])) {
             $this->_model = Screenshots::model()->findbyPk($id !== null ? $id : $_GET['id']);
         }
         if ($this->_model === null) {
             throw new CHttpException(404, 'The requested page does not exist.');
         }
     }
     return $this->_model;
 }