Esempio n. 1
0
 /**
  * Listado de posts existentes.
  * @param int $pagina Número de página a mostrar.
  * @param int $tipo Tipos de posts a mostrar.
  */
 public function action_posts($pagina, $tipo)
 {
     // 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);
     // Verifico el tipo de fotos a mostrar.
     $tipo = $tipo === NULL ? NULL : (int) $tipo;
     if ($tipo === 0) {
         $tipo = array('activo', 0);
     } elseif ($tipo === 1) {
         $tipo = array('borrador', 1);
     } elseif ($tipo === 2) {
         $tipo = array('borrado', 2);
     } elseif ($tipo === 3) {
         $tipo = array('pendiente', 3);
     } elseif ($tipo === 4) {
         $tipo = array('oculto', 4);
     } elseif ($tipo === 5) {
         $tipo = array('rechazado', 5);
     } elseif ($tipo === 6) {
         $tipo = array('papelera', 6);
     } else {
         $tipo = array('total', NULL);
     }
     // Cargamos la vista.
     $vista = View::factory('admin/contenido/posts');
     $vista->assign('tipo', $tipo[1] == NULL ? 7 : $tipo[1]);
     // Modelo de posts.
     $model_posts = new Model_Post();
     // Cargamos el listado de posts.
     $lst = $model_posts->listado($pagina, $cantidad_por_pagina, $tipo[1]);
     // Verificamos páginas aleatorias sin elementos.
     if (count($lst) == 0 && $pagina != 1) {
         Request::redirect('/admin/contenido/posts');
     }
     // Calculo las cantidades.
     $cantidades = Model_Post::cantidad_agrupados();
     // Paso datos para barra.
     $vista->assign('cantidades', $cantidades);
     $vista->assign('actual', $pagina);
     // Paginación.
     $paginador = new Paginator($cantidades[$tipo[0]], $cantidad_por_pagina);
     $vista->assign('paginacion', $paginador->get_view($pagina, '/admin/contenido/posts/%s/' . $tipo[0]));
     // Obtenemos datos de los posts.
     foreach ($lst as $k => $v) {
         $a = $v->as_array();
         $a['usuario'] = $v->usuario()->as_array();
         $lst[$k] = $a;
     }
     // Seteamos listado de posts.
     $vista->assign('posts', $lst);
     unset($lst);
     // Seteamos el menu.
     $this->template->assign('master_bar', parent::base_menu('admin'));
     // Cargamos plantilla administracion.
     $admin_template = View::factory('admin/template');
     $admin_template->assign('contenido', $vista->parse());
     unset($portada);
     $admin_template->assign('top_bar', Controller_Admin_Home::submenu('contenido_posts'));
     // Asignamos la vista a la plantilla base.
     $this->template->assign('contenido', $admin_template->parse());
 }