/** * 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) { $bloque = Bloque::model()->findByPk($id); if (isset($_POST['Bloque'])) { $bloque->attributes = $_POST['Bloque']; if ($bloque->save()) { Yii::app()->user->setFlash('success', 'Bloque ' . $bloque->titulo . ' guardado con éxito'); $this->redirect($_POST['returnUrl'] ? $_POST['returnUrl'] : $this->createUrl('pagina/view', array('id' => $bloque->pgBloques->pagina_id))); } } //if(isset($_POST['Bloque'])) $this->render('modificar', array('model' => $bloque)); }
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; } }