public function actionArtist($id) { $idioma = Idiomas::model()->find('idioma=:idioma', array(':idioma' => Yii::app()->language)); //datos del artista if ($idioma->idioma == Yii::app()->params->idiomas['Español']) { //español $criteria = new CDbCriteria(); $criteria->select = 't.*'; $criteria->condition = 't.idartista =:id'; $criteria->params = array(':id' => $id); } else { //ingles $criteria = new CDbCriteria(); $criteria->select = 't.*, tra_artista.*'; $criteria->together = true; $criteria->join = 'LEFT JOIN tra_artista ON tra_artista.artistaid = t.idartista'; $criteria->condition = 'tra_artista.idiomaid =:ididioma and t.idartista = :id'; $criteria->params = array(':ididioma' => $idioma->id, ':id' => $id); } $artista = Artista::model()->find($criteria); //prensa if ($idioma->idioma == Yii::app()->params->idiomas['Español']) { //español $criteria = new CDbCriteria(); $criteria->select = 't.*, artista_prensa.*'; $criteria->together = true; $criteria->join = 'LEFT JOIN artista_prensa ON artista_prensa.idprensa = t.idprensa'; $criteria->condition = 'artista_prensa.idartista =:id'; $criteria->params = array(':id' => $id); $criteria->order = 'fecha DESC'; } else { $criteria = new CDbCriteria(); $criteria->select = 't.*, artista_prensa.*, tra_prensa.*'; $criteria->together = true; $criteria->join = 'LEFT JOIN artista_prensa ON artista_prensa.idprensa = t.idprensa LEFT JOIN tra_prensa ON tra_prensa.prensaid = t.idprensa'; $criteria->condition = 'tra_prensa.idiomaid =:idioma and artista_prensa.idartista =:id'; $criteria->params = array(':id' => $id, ':idioma' => $idioma->id); $criteria->order = 't.fecha DESC'; $criteria->group = 't.idprensa'; } $prensas = Prensa::model()->findAll($criteria); if ($idioma->idioma == Yii::app()->params->idiomas['Español']) { //español $criteria = new CDbCriteria(); $criteria->select = 't.*'; $criteria->group = 't.descripcion'; $criteria->distinct = true; $criteria->condition = 't.idartista =:idartista'; $criteria->params = array(':idartista' => $id); } else { //obras $criteria = new CDbCriteria(); $criteria->select = 't.*, tra_obra.*'; $criteria->condition = 't.idartista =:idartista'; $criteria->group = 't.descripcion'; $criteria->distinct = true; $criteria->join = 'LEFT JOIN tra_obra ON tra_obra.obraid = t.idobra AND tra_obra.idiomaid=:ididioma'; $criteria->params = array(':idartista' => $id, ':ididioma' => $idioma->id); } $obras = Obra::model()->findAll($criteria); $this->render('artista', array('artista' => $artista, 'idioma' => $idioma, 'obras' => $obras, 'prensas' => $prensas)); }
/** * 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 $id the ID of the model to be loaded * @return Obra the loaded model * @throws CHttpException */ public function loadModel($id) { $model = Obra::model()->findByPk($id); if ($model === null) { throw new CHttpException(404, 'The requested page does not exist.'); } return $model; }