/** * Updates a particular model. * If update is successful, the browser will be redirected to the 'view' page. * @param integer $id the ID of the model to be updated */ public function actionUpdate($id) { $ficha_tecnica = FichaTecnica::model()->findByPk($id); if (isset($_POST['FichaTecnica'])) { $ficha_tecnica->attributes = $_POST['FichaTecnica']; if ($ficha_tecnica->save()) { Yii::app()->user->setFlash('success', $ficha_tecnica->campo . ' guardado con éxito'); $pgDocumental = PgDocumental::model()->with('pagina')->findByPk($ficha_tecnica->pg_documental_id); $this->redirect(array('view', 'id' => $pgDocumental->pagina->micrositio_id)); } //if($ficha_tecnica->save()) } //if(isset($_POST['FichaTecnica'])) // Uncomment the following line if AJAX validation is needed // $this->performAjaxValidation($model); $this->render('modificar', array('model' => $ficha_tecnica)); }
protected function beforeDelete() { $this->transaccion = $this->dbConnection->getCurrentTransaction(); if ($this->transaccion === null) { $this->transaccion = $this->dbConnection->beginTransaction(); } try { // 1. Desasignar de los micrositios que la tengan por defecto. $micrositios = Micrositio::model()->findAllByAttributes(array('pagina_id' => $this->id)); foreach ($micrositios as $m) { $m->pagina_id = NULL; $m->save(); } // 3.Verifico el tipo de página para ver si tiene una tabla auxiliar $tabla = $this->tipoPagina->tabla; $t = new $tabla(); $contenido = $t->findByAttributes(array('pagina_id' => $this->id)); switch ($tabla) { case 'PgPrograma': Horario::model()->deleteAllByAttributes(array('pg_programa_id' => $contenido->id)); break; case 'PgDocumental': FichaTecnica::model()->deleteAllByAttributes(array('pg_documental_id' => $contenido->id)); break; /*case 'Carpeta': Carpeta::model()->vaciar_carpeta( $contenido->id ); break;/**/ /*case 'Carpeta': Carpeta::model()->vaciar_carpeta( $contenido->id ); break;/**/ case 'PgFiltro': FiltroItem::model()->deleteAllByAttributes(array('pg_filtro_id' => $contenido->id)); break; case 'PgBloques': Bloque::model()->deleteAllByAttributes(array('pg_bloques_id' => $contenido->id)); break; case 'PgEventos': Evento::model()->deleteAllByAttributes(array('pg_eventos_id' => $contenido->id)); break; } // 4. Borro la tabla pg_ //$this->transaccion->commit(); return parent::beforeDelete(); } catch (Exception $e) { $this->transaccion->rollback(); return false; } }