/** * Portada del sitio. * @param int $pagina Número de página para lo últimos posts. */ public function action_index($pagina) { // Cargamos la portada. $view = View::factory('notificaciones/index'); // Seteo el menu. $this->template->assign('master_bar', parent::base_menu('inicio')); // Formato de la página. $pagina = (int) $pagina > 0 ? (int) $pagina : 1; // Cantidad de elementos por pagina. $model_configuracion = new Model_Configuracion(); $cantidad_por_pagina = $model_configuracion->get('elementos_pagina', 20); // Cargamos notificaciones. $sucesos = Suceso_Barra::obtener_listado_completo(Usuario::$usuario_id, $pagina, $cantidad_por_pagina); // Verifivo validez de la pagina. if (count($sucesos) == 0 && $pagina != 1) { Request::redirect('/notificaciones/'); } // Paginación. $paginador = new Paginator(Suceso_Barra::cantidad_completa(Usuario::$usuario_id), $cantidad_por_pagina); $view->assign('paginacion', $paginador->get_view($pagina, '/notificaciones/index/%d')); unset($paginador); // Proceso el listado de sucesos. $eventos = array(); foreach ($sucesos as $v) { // Obtengo información del suceso. $s_data = Suceso_Perfil::procesar($v); // Verifico su existencia. if ($s_data === NULL) { continue; } // Obtenemos el tipo de suceso. $tipo = $v->tipo; // Cargamos la vista. $suceso_vista = View::factory('/suceso/notificaciones/' . $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); $suceso_vista->assign('visto', $v->visto); // Agregamos el evento. $eventos[] = $suceso_vista->parse(); } $view->assign('sucesos', $eventos); unset($sucesos); // Asignamos la vista a la plantilla base. $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; }