/** * 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()); }
/** * Submenu de la moderación. * @param string $activo Sección actual. * @return array */ public static function submenu($activo) { $listado = array(); $listado['p_principal'] = array('caption' => 'Principal'); $listado['index'] = array('link' => '/moderar/', 'caption' => 'Inicio', 'active' => FALSE); if (Usuario::permiso(array(Model_Usuario_Rango::PERMISO_POST_VER_DENUNCIAS, Model_Usuario_Rango::PERMISO_FOTO_VER_DENUNCIAS, Model_Usuario_Rango::PERMISO_USUARIO_VER_DENUNCIAS))) { $listado['p_denuncias'] = array('caption' => 'Denuncias'); if (Usuario::permiso(Model_Usuario_Rango::PERMISO_POST_VER_DENUNCIAS)) { $listado['denuncias_posts'] = array('link' => '/moderar/denuncias/posts/', 'caption' => 'Posts', 'active' => FALSE, 'cantidad' => Model_Post_Denuncia::cantidad(Model_Post_Denuncia::ESTADO_PENDIENTE)); } if (Usuario::permiso(Model_Usuario_Rango::PERMISO_FOTO_VER_DENUNCIAS)) { $listado['denuncias_fotos'] = array('link' => '/moderar/denuncias/fotos/', 'caption' => 'Fotos', 'active' => FALSE, 'cantidad' => Model_Foto_Denuncia::cantidad(Model_Post_Denuncia::ESTADO_PENDIENTE)); } if (Usuario::permiso(Model_Usuario_Rango::PERMISO_USUARIO_VER_DENUNCIAS)) { $listado['denuncias_usuarios'] = array('link' => '/moderar/denuncias/usuarios/', 'caption' => 'Usuarios', 'active' => FALSE, 'cantidad' => Model_Usuario_Denuncia::cantidad(Model_Post_Denuncia::ESTADO_PENDIENTE)); } } $listado['p_gestion'] = array('caption' => 'Gestión'); if (Usuario::permiso(Model_Usuario_Rango::PERMISO_USUARIO_SUSPENDER)) { $listado['gestion_usuarios'] = array('link' => '/moderar/gestion/usuarios/', 'caption' => 'Usuarios', 'active' => FALSE, 'cantidad' => Model_Usuario_Suspension::cantidad()); } // $listado['gestion_buscador'] = array('link' => '/moderar/gestion/buscador/', 'caption' => 'Buscador contenido', 'active' => FALSE); if (Usuario::permiso(array(Model_Usuario_Rango::PERMISO_POST_VER_PAPELERA, Model_Usuario_Rango::PERMISO_FOTO_VER_PAPELERA))) { $listado['p_papelera'] = array('caption' => 'Papelera de reciclaje'); if (Usuario::permiso(Model_Usuario_Rango::PERMISO_POST_VER_PAPELERA)) { $listado['papelera_posts'] = array('link' => '/moderar/papelera/posts/', 'caption' => 'Posts eliminados', 'active' => FALSE, 'cantidad' => Model_Post::s_cantidad(Model_Post::ESTADO_PAPELERA)); } if (Usuario::permiso(Model_Usuario_Rango::PERMISO_FOTO_VER_PAPELERA)) { $listado['papelera_fotos'] = array('link' => '/moderar/papelera/fotos/', 'caption' => 'Fotos eleminadas', 'active' => FALSE, 'cantidad' => Model_Foto::s_cantidad(Model_Foto::ESTADO_PAPELERA)); } } if (Usuario::permiso(array(Model_Usuario_Rango::PERMISO_POST_VER_DESAPROBADO, Model_Usuario_Rango::PERMISO_COMENTARIO_VER_DESAPROBADO))) { $listado['p_desaprobado'] = array('caption' => 'Contenido desaprobado'); if (Usuario::permiso(Model_Usuario_Rango::PERMISO_POST_VER_DESAPROBADO)) { $listado['desaprobado_posts'] = array('link' => '/moderar/desaprobado/posts', 'caption' => 'Posts', 'active' => FALSE, 'cantidad' => Model_Post::s_cantidad(Model_Post::ESTADO_PENDIENTE) + Model_Post::s_cantidad(Model_Post::ESTADO_RECHAZADO)); } if (Usuario::permiso(Model_Usuario_Rango::PERMISO_COMENTARIO_VER_DESAPROBADO)) { $listado['desaprobado_comentarios'] = array('link' => '/moderar/desaprobado/comentarios/', 'caption' => 'Comentarios', 'active' => FALSE, 'cantidad' => Model_Comentario::cantidad(Model_Comentario::ESTADO_OCULTO)); } } // Seteamos el color. foreach ($listado as $k => $v) { if (isset($v['cantidad'])) { if ($listado[$k]['cantidad'] > 0) { $listado[$k]['tipo'] = 'important'; } else { $listado[$k]['tipo'] = 'success'; } } } if (isset($listado[$activo])) { $listado[$activo]['active'] = TRUE; } return $listado; }