public function beforeAction($action) { if (!parent::beforeAction($action)) { return false; } if (isset(Yii::app()->user->usIdent)) { // Obtiene la clasificación de los equipos $clasificacion = Clasificacion::model()->with('equipos')->findAll(array('order' => 'posicion ASC')); Yii::app()->setParams(array('clasificacion' => $clasificacion)); // Obtiene la información del usuario $usuario = Usuarios::model()->with('recursos')->findByPK(Yii::app()->user->usIdent); Yii::app()->setParams(array('usuario' => $usuario)); // Obtiene la información de la mensajeria //Saca la lista de los emails recibidos por el usuario y que ademas no los haya leido $mensajeria = Emails::model()->findAllByAttributes(array('id_usuario_to' => Yii::app()->user->usIdent, 'leido' => 0)); $countmens = count($mensajeria); Yii::app()->setParams(array('countmens' => $countmens)); // Obtiene la información de las notificaciones //Saca la lista de las notinicaciones recibidas por el usuario y que ademas no haya leido $notificaciones = Usrnotif::model()->findAllByAttributes(array('usuarios_id_usuario' => Yii::app()->user->usIdent, 'leido' => 0)); $countnot = count($notificaciones); Yii::app()->setParams(array('countnot' => $countnot)); } Yii::app()->setParams(array('bgclass' => 'bg-estadio-fuera')); return true; }
/** * Eliminar las notificaciones del usuario: Cambia el estado de las notificaciones a leido * * @route jugadorNum12/notificaciones/index * * @return void */ public function actionEliminarNotificaciones() { $usrnotif = Usrnotif::model()->findAllByAttributes(array('usuarios_id_usuario' => Yii::app()->user->usIdent)); $trans = Yii::app()->db->beginTransaction(); try { foreach ($usrnotif as $not) { if (!$not->leido) { $not->leido = !$not->leido; $not->save(); } } $trans->commit(); } catch (Exception $e) { $trans->rollback(); } $this->redirect(array('notificaciones/index')); }
/** * Elimina las notificaciones existentes * * @return void */ public static function borrarNotificaciones() { //Borramos conexiones de notificaciones leidas Usrnotif::model()->deleteAllByAttributes(array('leido' => 1)); //Cogemos todas las notificaciones $notificaciones = Notificaciones::model()->findAll(); foreach ($notificaciones as $notificacion) { //si a alguna de las notificaciones ha sido leida por todos los usuarios se borra $u = Usrnotif::model()->findByAttributes(array('notificaciones_id_notificacion' => $notificacion->id_notificacion)); if ($u === null) { $notificacion->delete(); } } }