Beispiel #1
0
 /**
  * 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());
 }
Beispiel #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;
 }
Beispiel #3
0
 /**
  * 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);
 }