/** * Bandeja de entrada. * @param int $pagina Número de página a mostrar. */ public function action_index($pagina) { // Asignamos el título. $this->template->assign('title', 'Mensajes - Bandeja de entrada'); // Cantidad de elementos por pagina. $model_configuracion = new Model_Configuracion(); $cantidad_por_pagina = $model_configuracion->get('elementos_pagina', 20); // Cargamos la vista. $view = View::factory('mensaje/index'); // Formato de la página. $pagina = (int) $pagina > 0 ? (int) $pagina : 1; // Cargamos el listado de mensajes. $model_mensajes = new Model_Mensaje(); $recibidos = $model_mensajes->recibidos(Usuario::$usuario_id, $pagina, $cantidad_por_pagina); // Verifivo validez de la pagina. if (count($recibidos) == 0 && $pagina != 1) { Request::redirect('/mensaje/'); } // Paginación. $paginador = new Paginator($model_mensajes->total_recibidos(Usuario::$usuario_id), $cantidad_por_pagina); $view->assign('paginacion', $paginador->get_view($pagina, '/mensaje/index/%d')); unset($paginador); // Procesamos información relevante. foreach ($recibidos as $key => $value) { $d = $value->as_array(); $d['emisor'] = $value->emisor()->as_array(); $d['receptor'] = $value->receptor()->as_array(); $recibidos[$key] = $d; } $view->assign('recibidos', $recibidos); unset($recibidos); // Menu. $this->template->assign('master_bar', parent::base_menu('inicio')); $this->template->assign('top_bar', $this->submenu('index')); // Asignamos la vista. $this->template->assign('contenido', $view->parse()); }
/** * 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; }
/** * 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); }