public function run() { //формируем условия поиска скриншотов $criteria = new CDbCriteria(); //ограничиваем количество $criteria->limit = $this->count; //устанавливаем случайный порядок вывода $criteria->order = 'RAND()'; //выполняем поиск и показываем виджет $screenshots = Screenshots::model()->findAll($criteria); $this->render('randomScreenshots', array('screenshots' => $screenshots)); }
/** * Изменение игры. */ 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; }