Ejemplo n.º 1
0
 /**
  * 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());
 }
Ejemplo n.º 2
0
 /**
  * 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;
 }