function inscritos()
{
    if (validarAdministradorPrivado()) {
        if (isset($_GET['i']) && is_numeric($_GET['i'])) {
            $idGrupo = $_GET['i'];
            require_once 'modulos/grupos/modelos/grupoModelo.php';
            $offset = 0;
            $numRows = 16;
            $pagina = 1;
            if (isset($_GET['p'])) {
                if (is_numeric($_GET['p'])) {
                    $pagina = intval($_GET['p']);
                    $offset = $numRows * ($pagina - 1);
                }
            }
            $res = getUsuariosDelGrupo($idGrupo, $offset, $numRows);
            $usuarios = $res['usuarios'];
            $numUsuarios = $res['n'];
            $maxPagina = ceil($numUsuarios / $numRows);
            if ($pagina != 1 && $pagina > $maxPagina) {
                redirect("grupos/usuarios/inscritos/1&p=" . $maxPagina);
            } else {
                pushBreadCrumb(getUrl(), "Lista de usuarios del grupo", true, 1);
                require_once 'modulos/grupos/vistas/usuariosDelGrupo.php';
            }
        } else {
            setSessionMessage("Grupo no válido", " ¡Error! ", "error");
            redirect("/grupos");
        }
    } else {
        goToIndex();
    }
}
function principal()
{
    if (validarUsuarioLoggeado()) {
        if (validarAdministradorPrivado()) {
            $offset = 0;
            $numRows = 6;
            $pagina = 1;
            if (isset($_GET['p'])) {
                if (is_numeric($_GET['p'])) {
                    $pagina = intval($_GET['p']);
                    $offset = $numRows * ($pagina - 1);
                }
            }
            require_once 'modulos/grupos/modelos/grupoModelo.php';
            $res = getGrupos($offset, $numRows);
            $grupos = $res['grupos'];
            $numGrupos = $res['n'];
            $maxPagina = ceil($numGrupos / $numRows);
            if ($pagina != 1 && $pagina > $maxPagina) {
                redirect("/grupos&p=" . $maxPagina);
            }
            clearBreadCrumbs();
            pushBreadCrumb(getUrl(), "Lista de grupos", true);
            require_once 'modulos/grupos/vistas/principal.php';
        } else {
            goToIndex();
        }
    } else {
        goToIndex();
    }
}
function principal()
{
    //Ver una discusión en específico
    if (isset($_GET['idDiscusion']) && isset($_GET['curso'])) {
        require_once 'modulos/cursos/modelos/CursoModelo.php';
        $curso = getCursoFromUniqueUrl($_GET['curso']);
        require_once 'modulos/cursos/modelos/DiscusionModelo.php';
        $discusion = getDiscusion($_GET['idDiscusion']);
        if (isset($curso) && isset($discusion)) {
            //Hacemos los calculos de la puntuacion de esta discusión
            $votosTotales = $discusion->puntuacionMas + $discusion->puntuacionMenos;
            if ($discusion->puntuacionMas > 0) {
                if ($discusion->puntuacionMenos > 0) {
                    $porcentajePositivo = round($discusion->puntuacionMas / $votosTotales * 100);
                    $porcentajeNegativo = 100 - $porcentajePositivo;
                } else {
                    $porcentajePositivo = 100;
                    $porcentajeNegativo = 0;
                }
            } else {
                if ($discusion->puntuacionMenos > 0) {
                    $porcentajePositivo = 0;
                    $porcentajeNegativo = 100;
                } else {
                    $porcentajePositivo = 0;
                    $porcentajeNegativo = 0;
                }
            }
            $numRows = 5;
            $pagina = 1;
            $sigPagina = 2;
            $orden = "puntuacion";
            $ascendente = 0;
            $offset = $numRows * ($pagina - 1);
            require_once 'modulos/cursos/modelos/ComentarioModelo.php';
            $array = getComentarios($discusion->idDiscusion, $offset, $numRows, $orden, $ascendente);
            $comentarios = $array['comentarios'];
            $numComentarios = $array['n'];
            $maxPagina = ceil($numComentarios / $numRows);
            pushBreadCrumb("/curso/" . $curso->uniqueUrl . "#Foro", "Foro", false);
            pushBreadCrumb(getUrl(), $discusion->titulo, true);
            require_once 'modulos/cursos/vistas/vistaDiscusionForo.php';
        } else {
            //Los datos recibidos no son correctos
            require_once 'errorPages/404Page.php';
        }
    } else {
        //No hay datos
        require_once 'errorPages/404Page.php';
    }
}
function asignados()
{
    if (validarUsuarioLoggeado()) {
        if (validarAdministradorPrivado()) {
            if (isset($_GET['i']) && is_numeric($_GET['i'])) {
                $idCurso = intval($_GET['i']);
                require_once 'modulos/cursos/modelos/CursoModelo.php';
                $curso = getCurso($idCurso);
                $offset = 0;
                $numRows = 6;
                $pagina = 1;
                if (isset($_GET['p'])) {
                    if (is_numeric($_GET['p'])) {
                        $pagina = intval($_GET['p']);
                        $offset = $numRows * ($pagina - 1);
                    }
                }
                $paginaCursos = 1;
                if (isset($_GET['pc']) && is_numeric($_GET['pc'])) {
                    $paginaCursos = $_GET['pc'];
                }
                require_once 'modulos/grupos/modelos/grupoModelo.php';
                $res = getGruposAsignadosAlCurso($idCurso, $offset, $numRows);
                $grupos = $res['grupos'];
                $numGrupos = $res['n'];
                $maxPagina = ceil($numGrupos / $numRows);
                pushBreadCrumb(getUrl(), "Lista de grupos asignados al curso", true, 1);
                require_once 'modulos/grupos/vistas/cursosAsignadosAlGrupo.php';
            } else {
                setSessionMessage("Ocurrió un error", " ¡Error! ", "error");
                goToIndex();
            }
        } else {
            goToIndex();
        }
    } else {
        goToIndex();
    }
}
function principal()
{
    //obtener los datos del paquete
    require_once 'modulos/principal/modelos/variablesDeProductoModelo.php';
    $maxUsuarios = getVariableDeProducto("limiteUsuarios");
    //Dividimos entre 1000000000 para convertir de Bytes a GB
    $maxDisco = getVariableDeProducto("limiteUsoEnDisco") / 1000000000;
    $maxAncho = getVariableDeProducto("limiteAnchoDeBanda") / 1000000000;
    //obtener los datos de uso
    require_once 'modulos/usuarios/modelos/usuarioModelo.php';
    $numUsuarios = getTotalUsuarios();
    require_once 'modulos/cursos/modelos/ClaseModelo.php';
    $discoUsadoEnBytes = round(getTotalDiscoUtilizado());
    $discoUsado = round(getTotalDiscoUtilizado() / 1000000000);
    $anchoUsadoEnBytes = getVariableDeProducto("usoActualAnchoDeBanda");
    $anchoUsado = round(getVariableDeProducto("usoActualAnchoDeBanda") / 1000000000);
    //Obtenemos los valores en porcentaje
    $usuariosPorcentaje = round($numUsuarios / $maxUsuarios * 100);
    $discoPorcentaje = round($discoUsado / $maxDisco * 100);
    $anchoPorcentaje = round($anchoUsado / $maxAncho * 100);
    clearBreadCrumbs();
    pushBreadCrumb(getUrl(), "Estadísticas de uso", true);
    require_once 'modulos/principal/vistas/estadisticasDeUso.php';
}
function alumnos()
{
    if (validarUsuarioLoggeado()) {
        if (validarAdministradorPrivado()) {
            if (isset($_GET['i']) && is_numeric($_GET['i'])) {
                $idCurso = intval($_GET['i']);
                $offset = 0;
                $numRows = 16;
                $pagina = 1;
                if (isset($_GET['p']) && is_numeric($_GET['p'])) {
                    $pagina = intval($_GET['p']);
                    $offset = $numRows * ($pagina - 1);
                }
                require_once 'modulos/cursos/modelos/CursoModelo.php';
                $curso = getCurso($idCurso);
                $res = getAlumnosDeCurso($idCurso, $offset, $numRows);
                $alumnos = $res['alumnos'];
                $numAlumnos = $res['n'];
                $maxPagina = ceil($numAlumnos / $numRows);
                if ($pagina != 1 && $pagina > $maxPagina) {
                    redirect("/cursos/curso/alumnos/" . $idCurso . "&p=" . $maxPagina);
                } else {
                    pushBreadCrumb(getUrl(), "Usuarios inscritos al curso", true, 1);
                    require_once 'modulos/cursos/vistas/listaAlumnosDeCurso.php';
                }
            } else {
                setSessionMessage("Los datos enviados no son válidos", " ¡Error! ", "error");
                redirect("/cursos");
            }
        } else {
            goToIndex();
        }
    } else {
        goToIndex();
    }
}
function inscrito()
{
    require_once 'modulos/usuarios/modelos/UsuarioCursosModelo.php';
    if (validarUsuarioLoggeado()) {
        $usuario = getUsuarioActual();
        $offset = 0;
        $numRows = 4;
        $pagina = 1;
        if (isset($_GET['p'])) {
            if (is_numeric($_GET['p'])) {
                $pagina = intval($_GET['p']);
                $offset = $numRows * ($pagina - 1);
            }
        }
        $res = getCursosInscritoDetalles($usuario->idUsuario, "titulo", "ASC", $offset, $numRows);
        $cursos = $res['cursos'];
        $numCursos = $res['n'];
        $maxPagina = ceil($numCursos / $numRows);
        if ($pagina != 1 && $pagina > $maxPagina) {
            redirect("/usuarios/cursos/inscrito&p=" . $maxPagina);
        } else {
            clearBreadCrumbs();
            pushBreadCrumb(getUrl(), "Cursos a los que estoy inscrito", true);
            require_once 'modulos/usuarios/vistas/cursosAlumno.php';
        }
    }
}
function detalles()
{
    $uniqueUrl = $_GET['i'];
    require_once 'modulos/usuarios/modelos/usuarioModelo.php';
    //$usuarioPerfil = getUsuario($idUsuario);
    $usuarioPerfil = getUsuarioFromUniqueUrl($uniqueUrl);
    if (!is_null($usuarioPerfil)) {
        $tituloPagina = $usuarioPerfil->nombreUsuario;
        $titulo = $usuarioPerfil->nombreUsuario;
        $imageThumbnail = $usuarioPerfil->avatar;
        $descripcion = $usuarioPerfil->tituloPersonal;
        $miPerfil = false;
        if (validarUsuarioLoggeadoParaSubmits()) {
            if (getUsuarioActual()->idUsuario == $usuarioPerfil->idUsuario) {
                $miPerfil = true;
            }
        }
        require_once 'modulos/usuarios/modelos/UsuarioCursosModelo.php';
        $numTomados = getNumeroCursosTomados($usuarioPerfil->idUsuario);
        $numCursos = getNumeroCursosCreados($usuarioPerfil->idUsuario);
        pushBreadCrumb(getUrl(), $usuarioPerfil->nombreUsuario, true);
        require_once 'modulos/usuarios/vistas/perfil.php';
    } else {
        setSessionMessage("El usuario no existe", " ¡Error! ", "error");
        redirect("/");
    }
}