/** * Mostramos tops de posts. * @param string $categoria Categoria para filtar los tops de post. * @param int $periodo Período para filtar post. */ public function action_index($categoria, $periodo) { // Cargamos la portada. $portada = View::factory('tops/index'); // Seteo el menu. $this->template->assign('master_bar', parent::base_menu('tops')); $this->template->assign('top_bar', $this->submenu()); // Cargo las categorias. $model_categorias = new Model_Categoria(); // Seteo el listado en la vista. $portada->assign('categorias', $model_categorias->lista()); // Obtengo la categoria por POST. //TODO: hacer una mejora con jQuery. if (isset($_POST['categoria'])) { $categoria = $_POST['categoria']; } // Verifico si existe la categoria. $categoria = trim($categoria) == '' ? NULL : trim($categoria); if ($categoria !== NULL && $categoria != 'todas') { if (!$model_categorias->load_by_seo($categoria)) { Request::redirect('/tops'); } else { $categoria_id = $model_categorias->id; $categoria = $model_categorias->seo; } } else { $categoria = 'todas'; $categoria_id = NULL; } // Seteo la categoria actual. $portada->assign('categoria', $categoria); // Obtengo el período. $periodo = (int) $periodo; // Verifico por un válido. if ($periodo != 0 && $periodo != 1 && $periodo != 2 && $periodo != 3 && $periodo != 4) { Request::redirect('/tops'); } $portada->assign('periodo', $periodo); // Cargo modelo de posts. $model_post = new Model_Post(); $portada->assign('puntos', $model_post->top_puntos($categoria_id, $periodo)); $portada->assign('favoritos', $model_post->top_favoritos($categoria_id, $periodo)); $portada->assign('seguidores', $model_post->top_seguidores($categoria_id, $periodo)); $portada->assign('comentarios', $model_post->top_comentarios($categoria_id, $periodo)); // Asignamos la vista a la plantilla base. $this->template->assign('contenido', $portada->parse()); }