/** * Cantidad de mensajes que tiene el usuario en su bandeja de entrada para * ser leidos. * @return int */ public function cantidad_mensajes_nuevos() { $m = new Model_Mensaje(); return $m->total_recibidos($this->primary_key['id'], Model_Mensaje::ESTADO_NUEVO); }
/** * Generamos el menu de usuario a colocar en la cabecera. * @return RainTPL */ protected function make_user_header() { // Cargamos la vista. $vista = View::factory('header/login'); // Cargamos el usuario y sus datos. $vista->assign('usuario', Usuario::usuario()->as_array()); // Sucesos. $lst = Suceso_Barra::obtener_listado(Usuario::$usuario_id, 1, 20); $eventos = array(); foreach ($lst as $v) { // Obtengo información del suceso. $s_data = Suceso_Barra::procesar($v); // Verifico su existencia. if ($s_data === NULL) { continue; } // Obtenemos el tipo de suceso. $tipo = $v->as_object()->tipo; // Cargamos la vista. $suceso_vista = View::factory('suceso/barra/' . $tipo); // Asigno los datos del usuario actual. $suceso_vista->assign('actual', Usuario::usuario()->as_array()); // Asigno información del suceso. $suceso_vista->assign('suceso', $s_data); // Datos del suceso. $suceso_vista->assign('fecha', $v->fecha); // Agregamos el evento. $eventos[] = $suceso_vista->parse(); } $vista->assign('sucesos', $eventos); unset($lst, $eventos); // Listado de mensajes. $model_mensajes = new Model_Mensaje(); $vista->assign('mensajes_nuevos', $model_mensajes->total_recibidos(Usuario::$usuario_id, Model_Mensaje::ESTADO_NUEVO)); $msg_rst = $model_mensajes->recibidos(Usuario::$usuario_id, 1, 5); $msg_event = array(); foreach ($msg_rst as $v) { // Datos del post. $aux = $v->as_array(); $aux['emisor'] = $v->emisor()->as_array(); switch ($aux['estado']) { case 0: $aux['estado_string'] = 'nuevo'; break; case 1: $aux['estado_string'] = 'leido'; break; case 2: $aux['estado_string'] = 'respondido'; break; case 3: $aux['estado_string'] = 'reenviado'; break; } $msg_event[] = $aux; } $vista->assign('mensajes', $msg_event); unset($msg_event, $msg_rst); return $vista; }
/** * Eliminamos un mensaje del usuario. * @param int $mensaje ID del mensaje a borrar. */ public function action_borrar($mensaje) { $mensaje = (int) $mensaje; // Verificamos exista el mensaje. $model_mensaje = new Model_Mensaje($mensaje); if (!is_array($model_mensaje->as_array())) { $_SESSION['flash_error'] = 'El mensaje a eliminar no existe.'; Request::redirect('/mensaje/'); } // Verificamos sea el receptor. if (Usuario::$usuario_id != $model_mensaje->receptor_id) { $_SESSION['flash_error'] = 'El mensaje a eliminar no existe.'; Request::redirect('/mensaje/'); } // Verifico el estado. if ($model_mensaje->estado === Model_Mensaje::ESTADO_ELIMINADO) { $_SESSION['flash_error'] = 'El mensaje a eliminar no existe.'; Request::redirect('/mensaje/'); } // Seteamos como eliminado. $model_mensaje->actualizar_estado(Model_Mensaje::ESTADO_ELIMINADO); $_SESSION['flash_success'] = 'Mensaje eliminado correctamente.'; Request::redirect('/mensaje/'); }