Ejemplo n.º 1
0
Archivo: home.php Proyecto: 4bs4/marifa
 /**
  * Portada del sitio.
  * @param int $pagina Número de página para lo últimos posts.
  */
 public function action_index($pagina)
 {
     // Cargamos la portada.
     $portada = View::factory('home/index');
     // Seteo el menu.
     $this->template->assign('master_bar', parent::base_menu('posts'));
     $this->template->assign('top_bar', self::submenu('inicio'));
     // Cargamos datos de posts.
     $model_post = new Model_Post();
     // Cantidad posts y comentarios en posts.
     $portada->assign('cantidad_posts', $model_post->cantidad());
     $portada->assign('cantidad_comentarios_posts', $model_post->cantidad_comentarios());
     // Cantidad de elementos por pagina.
     $model_configuracion = new Model_Configuracion();
     $cantidad_por_pagina = $model_configuracion->get('elementos_pagina', 20);
     // Formato de la página.
     $pagina = (int) $pagina > 0 ? (int) $pagina : 1;
     if ($pagina == 1) {
         // Cargo fijos.
         $post_sticky = $model_post->sticky();
         // Extendemos la información de los posts.
         foreach ($post_sticky as $k => $v) {
             $a = $v->as_array();
             $a['usuario'] = $v->usuario()->as_array();
             $a['puntos'] = $v->puntos();
             $a['comentarios'] = $v->cantidad_comentarios(Model_Post_Comentario::ESTADO_VISIBLE);
             $a['categoria'] = $v->categoria()->as_array();
             $post_sticky[$k] = $a;
         }
         // Seteo y limpio.
         $portada->assign('sticky', $post_sticky);
         unset($post_sticky);
     }
     // Ultimos posts
     $post_list = $model_post->obtener_ultimos($pagina, $cantidad_por_pagina);
     // Verifivo validez de la pagina.
     if (count($post_list) == 0 && $pagina != 1) {
         Request::redirect('/');
     }
     // Paginación.
     $paginador = new Paginator($model_post->cantidad(Model_Post::ESTADO_ACTIVO), $cantidad_por_pagina);
     $portada->assign('paginacion', $paginador->get_view($pagina, '/home/index/%d'));
     unset($paginador);
     // Extendemos la información de los posts.
     foreach ($post_list as $k => $v) {
         $a = $v->as_array();
         $a['usuario'] = $v->usuario()->as_array();
         $a['puntos'] = $v->puntos();
         $a['comentarios'] = $v->cantidad_comentarios(Model_Post_Comentario::ESTADO_VISIBLE);
         $a['categoria'] = $v->categoria()->as_array();
         $post_list[$k] = $a;
     }
     $portada->assign('ultimos_posts', $post_list);
     unset($post_list);
     // Cargamos TOP posts.
     $post_top_list = $model_post->obtener_tops();
     // Extendemos la información de los posts.
     foreach ($post_top_list as $k => $v) {
         $a = $v->as_array();
         $a['puntos'] = $v->puntos();
         $post_top_list[$k] = $a;
     }
     $portada->assign('top_posts', $post_top_list);
     unset($post_top_list, $model_post);
     // Cargamos últimos comentarios.
     $comentario_list = Model_Post_Comentario::obtener_ultimos();
     // Extendemos la información de los comentarios.
     foreach ($comentario_list as $k => $v) {
         $a = $v->as_array();
         $a['usuario'] = $v->usuario()->as_array();
         $a['post'] = $v->post()->as_array();
         $comentario_list[$k] = $a;
     }
     $portada->assign('ultimos_comentarios', $comentario_list);
     unset($comentario_list);
     // Cargamos top usuarios.
     $model_usuario = new Model_Usuario();
     // Cantidad de usuarios
     $portada->assign('cantidad_usuarios', $model_usuario->cantidad());
     $portada->assign('cantidad_usuarios_online', $model_usuario->cantidad_activos());
     // Top de usuarios.
     $usuario_top_list = $model_usuario->obtener_tops();
     // Extendemos la información de los usuarios.
     foreach ($usuario_top_list as $k => $v) {
         $a = $v->as_array();
         $a['puntos'] = $v->cantidad_puntos();
         $usuario_top_list[$k] = $a;
     }
     $portada->assign('usuario_top', $usuario_top_list);
     unset($usuario_top_list, $model_usuario);
     // Cargamos ultimas fotos.
     $model_foto = new Model_Foto();
     $foto_list = $model_foto->obtener_ultimas(1, 1);
     // Extendemos la información de las fotos.
     foreach ($foto_list as $k => $v) {
         $foto_list[$k] = $v->as_array();
     }
     $portada->assign('ultimas_fotos', $foto_list);
     unset($foto_list);
     // Cantidad fotos y comentarios en fotos.
     $portada->assign('cantidad_fotos', $model_foto->cantidad());
     $portada->assign('cantidad_comentarios_fotos', $model_foto->cantidad_comentarios());
     unset($model_foto);
     // Asignamos la vista a la plantilla base.
     $this->template->assign('contenido', $portada->parse());
 }
Ejemplo n.º 2
0
Archivo: foto.php Proyecto: 4bs4/marifa
 /**
  * Mostramos listado de fotos del usuario conectado
  * @param int $pagina Número de página a mostrar.
  */
 public function action_mis_fotos($pagina)
 {
     // Verificamos si esta conectado.
     if (!isset($_SESSION['usuario_id'])) {
         $_SESSION['flash_error'] = 'Debes iniciar sessión para poder ver esta sección.';
         Request::redirect('/usuario/login');
     }
     // Asignamos el título.
     $this->template->assign('title', 'Mis Fotos');
     // Cargamos la vista.
     $view = View::factory('foto/index');
     // Cantidad de elementos por pagina.
     $model_configuracion = new Model_Configuracion();
     $cantidad_por_pagina = $model_configuracion->get('elementos_pagina', 20);
     // Formato de la página.
     $pagina = (int) $pagina > 0 ? (int) $pagina : 1;
     // Cargamos el listado de fotos.
     $model_fotos = new Model_Foto();
     $fotos = $model_fotos->obtener_ultimas_usuario(Usuario::$usuario_id, $pagina, $cantidad_por_pagina);
     // Verifivo validez de la pagina.
     if (count($fotos) == 0 && $pagina != 1) {
         Request::redirect('/foto/');
     }
     // Paginación.
     $paginador = new Paginator($model_fotos->cantidad(Model_Foto::ESTADO_ACTIVA, Usuario::$usuario_id), $cantidad_por_pagina);
     $view->assign('paginacion', $paginador->get_view($pagina, '/foto/mis_fotos/%d'));
     unset($paginador);
     // Procesamos información relevante.
     foreach ($fotos as $key => $value) {
         $d = $value->as_array();
         $d['descripcion'] = Decoda::procesar($d['descripcion']);
         $d['categoria'] = $value->categoria()->as_array();
         $d['votos'] = $value->votos();
         $d['favoritos'] = $value->favoritos();
         $d['comentarios'] = $value->cantidad_comentarios(Model_Foto::ESTADO_ACTIVA);
         $d['usuario'] = $value->usuario()->as_array();
         // Acciones. Como son nuestras fotos no hacen falta acciones.
         $d['favorito'] = TRUE;
         $d['voto'] = TRUE;
         $d['denunciar'] = FALSE;
         $fotos[$key] = $d;
     }
     $view->assign('fotos', $fotos);
     unset($fotos);
     // Menu.
     $this->template->assign('master_bar', parent::base_menu('fotos'));
     $this->template->assign('top_bar', $this->submenu('mis_fotos'));
     // Asignamos la vista.
     $this->template->assign('contenido', $view->parse());
 }