Exemple #1
0
 /**
  * Listado de posts con denuncias.
  * @param int $pagina Número de página a mostrar.
  * @param int $tipo Tipo de denuncias a mostrar.
  */
 public function action_posts($pagina, $tipo)
 {
     // Verifico permisos.
     if (!Usuario::permiso(Model_Usuario_Rango::PERMISO_POST_VER_DENUNCIAS)) {
         $_SESSION['flash_error'] = 'No tienes permiso para acceder a esa sección.';
         Request::redirect('/');
     }
     // Formato de la página.
     $pagina = (int) $pagina > 0 ? (int) $pagina : 1;
     // Verifico el tipo de denuncias a mostrar.
     if ($tipo == 0 || $tipo == 1 || $tipo == 2) {
         $tipo = (int) $tipo;
     } else {
         $tipo = 0;
     }
     // Cantidad de elementos por pagina.
     $model_configuracion = new Model_Configuracion();
     $cantidad_por_pagina = $model_configuracion->get('elementos_pagina', 20);
     // Cargamos la vista.
     $vista = View::factory('moderar/denuncias/posts');
     $vista->assign('tipo', $tipo);
     $vista->assign('cantidad_rechazados', Model_Post_Denuncia::cantidad(Model_Post_Denuncia::ESTADO_RECHAZADA));
     $vista->assign('cantidad_aprobados', Model_Post_Denuncia::cantidad(Model_Post_Denuncia::ESTADO_APLICADA));
     $vista->assign('actual', $pagina);
     // Modelo de posts.
     $model_denuncias = new Model_Post_Denuncia();
     // Cargamos el listado de posts.
     $lst = $model_denuncias->listado($pagina, $cantidad_por_pagina, $tipo);
     if (count($lst) == 0 && $pagina != 1) {
         Request::redirect('/moderar/denuncias/posts');
     }
     // Paginación.
     $total = Model_Post_Denuncia::cantidad(Model_Post_Denuncia::ESTADO_PENDIENTE);
     $vista->assign('cantidad_pendientes', $total);
     $paginador = new Paginator($total, $cantidad_por_pagina);
     $vista->assign('paginacion', $paginador->get_view($pagina, '/moderar/denuncias/posts/%s/' . $tipo));
     // Obtenemos datos de las denuncias.
     foreach ($lst as $k => $v) {
         $a = $v->as_array();
         $a['usuario'] = $v->usuario()->as_array();
         $a['post'] = $v->post()->as_array();
         $lst[$k] = $a;
     }
     // Seteamos listado de denuncias.
     $vista->assign('denuncias', $lst);
     unset($lst);
     // Seteamos el menu.
     $this->template->assign('master_bar', parent::base_menu('moderar'));
     // Cargamos plantilla administracion.
     $admin_template = View::factory('moderar/template');
     $admin_template->assign('contenido', $vista->parse());
     unset($portada);
     $admin_template->assign('top_bar', Controller_Moderar_Home::submenu('denuncias_posts'));
     // Asignamos la vista a la plantilla base.
     $this->template->assign('contenido', $admin_template->parse());
 }