Exemplo n.º 1
0
function subirImagen()
{
    //Regresara un json con error y link
    $error = "";
    $link = "";
    if (validarUsuarioLoggeado()) {
        if (isset($_POST['u']) && isset($_POST['uuid']) && isset($_POST['cu']) && isset($_POST['cl'])) {
            $idUsuario = $_POST['u'];
            $uuid = $_POST['uuid'];
            $idCurso = $_POST['cu'];
            $idClase = $_POST['cl'];
            $usuario = getUsuarioActual();
            require_once 'modulos/cursos/modelos/ClaseModelo.php';
            require_once 'modulos/cursos/modelos/CursoModelo.php';
            if ($usuario->idUsuario == getIdUsuarioDeCurso($idCurso) && $usuario->idUsuario == $idUsuario && $usuario->uuid == $uuid && clasePerteneceACurso($idCurso, $idClase)) {
                $file = "archivos/temporal/original_" . $_FILES["imagen"]["name"];
                if (move_uploaded_file($_FILES['imagen']['tmp_name'], $file)) {
                    //Se subió correctamente el archivo, lo subimos al S3
                    require_once 'modulos/aws/modelos/s3Modelo.php';
                    $res = uploadFileToS3($file, "popcornExtraFiles");
                    if ($res['res']) {
                        //se subio bien al s3
                        require_once 'modulos/editorPopcorn/modelos/archivosExtraModelo.php';
                        $archivoExtra = new ArchivoExtra();
                        $archivoExtra->idClase = $idClase;
                        $archivoExtra->link = $res['link'];
                        if (agregarArchivoExtra($archivoExtra) >= 0) {
                            //Se agrego bien a la bd
                            $link = $res['link'];
                        } else {
                            //error al agregar a la bd
                            $error = "Error al guardar en la bd";
                        }
                    } else {
                        //no se subio al s3
                        $error = "no se subio al s3";
                    }
                    //sin importar si se subio bien, borramos el archivo temporal
                    unlink($file);
                } else {
                    $error = "error al mover el archivo";
                }
            } else {
                $error = "No tienes permiso para modificar";
            }
        } else {
            $error = "datos no validos";
        }
    } else {
        $error = "Usuario no válido";
    }
    $array = array("error" => $error, "link" => $link, "post" => $_POST);
    echo json_encode($array);
}
Exemplo n.º 2
0
function publicar()
{
    $idCurso = $_GET['ic'];
    $usuario = getUsuarioActual();
    if (isset($usuario)) {
        if ($usuario->activado == 1) {
            require_once 'modulos/cursos/modelos/CursoModelo.php';
            if (getIdUsuarioDeCurso($idCurso) == $usuario->idUsuario) {
                //Si el usuario loggeado es del curso, publicar
                if (setPublicarCurso($idCurso, 1)) {
                    echo ' ok';
                } else {
                    echo 'ERROR BD';
                }
            } else {
                echo 'ERROR. Usuario no dueño';
            }
        } else {
            //El usuario no ha confirmado su cuenta
            echo 'ERROR. Usuario no activado.';
        }
    } else {
        echo 'ERROR. Usuario no loggeado';
    }
}
Exemplo n.º 3
0
function borrarTema()
{
    if (validarUsuarioLoggeadoParaSubmits()) {
        if (isset($_GET['i'])) {
            $idCurso = $_GET['i'];
            $idTema = $_GET['j'];
            require_once 'modulos/cursos/modelos/CursoModelo.php';
            require_once 'modulos/cursos/modelos/TemaModelo.php';
            if (getUsuarioActual()->idUsuario == getIdUsuarioDeCurso($idCurso)) {
                $tema = getTema($idTema);
                //El curso si pertenece al usuario
                $numClases = numeroDeClasesDelTema($idTema);
                if ($numClases > 0) {
                    //no puedes borrar el tema porque tiene clases asignadas
                    echo "<div> <h3 class='error'>No puedes borrar este tema porque todavía tiene clases.<br> Borra las clases primero</h3></div>";
                } else {
                    if (bajaTema($idTema) <= 0) {
                        echo "<div><h3 class='error'> Ocurrió un error al borrar el tema. Intenta de nuevo más tarde.</h3></div>";
                    } else {
                        //echo "<div><h3 class='info'></h3></div>";
                        echo "ok";
                        //Si fue satisfactorio no regresamos ningun resultado
                    }
                }
            } else {
                //Error, el usuario no es dueño de este curso, no puede modificar
                //goToIndex(); //no enviar a ningun lado porque es llamada ajax
            }
        } else {
            //Error, no hay get['i']
            //goToIndex(); //no enviar a ningun lado porque es llamada ajax
        }
    } else {
        //Error, no hay usuario loggeado para ejecutar acción Ajax, no hacer nada
    }
}
Exemplo n.º 4
0
function crearClase($idUsuario, $idCurso, $uuid, $idTema, $fileName, $fileType)
{
    require_once 'modulos/cursos/clases/Clase.php';
    require_once 'modulos/cursos/modelos/ClaseModelo.php';
    require_once 'modulos/usuarios/modelos/usuarioModelo.php';
    require_once 'modulos/cursos/modelos/CursoModelo.php';
    require_once 'modulos/cursos/modelos/TemaModelo.php';
    $filePath = "archivos/temporal/uploaderFiles/";
    if (getIdUsuarioDeCurso($idCurso) == $idUsuario && getIdUsuarioFromUuid($uuid) == $idUsuario && $idCurso == getIdCursoPerteneciente($idTema)) {
        //Validamos que el curso sea del usuario, que el uuid pertenezca a este usuario y que el tema sea del curso
        $clase = new Clase();
        $clase->idTema = $idTema;
        //Revisamos que el nombre del archivo no pase de 50 caractéres
        if (strlen($fileName) > 45) {
            $auxFileName = substr($fileName, 0, 50);
            if (!rename($filePath . $fileName, $filePath . $auxFileName)) {
                //Ocurrió un error al renombrar el archivo
                die('Ocurrió un error al subir el archivo');
            }
            $fileName = $auxFileName;
        }
        $clase->titulo = $fileName;
        $clase->idTipoClase = getTipoClase($fileType);
        if ($clase->idTipoClase == 0) {
            $clase->transformado = 0;
            $idClase = altaClase($clase);
            //Si es video creamos la clase con la bandera que todavía no se transforma
            //guardamos en la cola que falta transformar este video
            //$url = "http://localhost/videos.php";
            $file = $filePath . $fileName;
            $params = array("idClase" => $idClase, "file" => $file, "fileType" => $fileType);
            $json = json_encode($params);
            require_once 'lib/php/beanstalkd/ColaMensajes.php';
            $colaMensajes = new ColaMensajes("transformarvideos");
            $colaMensajes->push($json);
            return $clase;
        } else {
            $clase->transformado = 1;
            //Si es de otro tipo, lo subimos al CDN de rackspace y creamos la clase
            require_once 'modulos/cdn/modelos/cdnModelo.php';
            $file = $filePath . $fileName;
            //Le agregamos al nombre del archivo un codigo aleatorio de 5 caracteres
            $fileName = getUniqueCode(15) . "_" . $fileName;
            $uri = crearArchivoCDN($file, $fileName, $clase->idTipoClase);
            if ($uri != NULL) {
                //Si se creo correctamene el archivo CDN, creamos la clase y borramos el archivo local
                $clase->archivo = $uri;
                altaClase($clase);
                return $clase;
            } else {
                //Si ocurrió un error, se borra y regresamos false
                unlink($file);
                return NULL;
            }
        }
    } else {
        //Hay errores en la integridad usuario <-> curso
        //borramos el archivo
        unlink("archivos/temporal/uploaderFiles/" . $fileName);
        return NULL;
    }
}
Exemplo n.º 5
0
function guardarEdicionVideo()
{
    $res = array();
    $resultado = "";
    $mensaje = "";
    if (validarUsuarioLoggeado()) {
        if (isset($_POST['u']) && isset($_POST['uuid']) && isset($_POST['cu']) && isset($_POST['cl'])) {
            $idUsuario = $_POST['u'];
            $uuid = $_POST['uuid'];
            $idCurso = $_POST['cu'];
            $idClase = $_POST['cl'];
            $usuario = getUsuarioActual();
            require_once 'modulos/cursos/modelos/ClaseModelo.php';
            require_once 'modulos/cursos/modelos/CursoModelo.php';
            if ($usuario->idUsuario == getIdUsuarioDeCurso($idCurso) && $usuario->idUsuario == $idUsuario && $usuario->uuid == $uuid && clasePerteneceACurso($idCurso, $idClase)) {
                $json = json_encode($_POST);
                $json = str_replace("'", "", $json);
                if (actualizaCodigoClase($idClase, $json)) {
                    $resultado = "ok";
                    $mensaje = "Los cambios han sido guardados correctamente";
                } else {
                    $resultado = "error";
                    $mensaje = "Error al modificar la BD.";
                }
            } else {
                $resultado = "error";
                $mensaje = "No puedes modificar esta clase";
                echo json_encode($res);
            }
        } else {
            $resultado = "error";
            $mensaje = "Los datos recibidos son incorrectos";
            echo json_encode($res);
        }
    } else {
        $resultado = "error";
        $mensaje = "No hay usuario loggeado";
    }
    $res = array("resultado" => $resultado, "mensaje" => $mensaje);
    echo json_encode($res);
}
Exemplo n.º 6
0
function guardarEdicionVideo()
{
    $res = array();
    $resultado = "";
    $mensaje = "";
    if (validarUsuarioLoggeado()) {
        if (isset($_POST['u']) && isset($_POST['uuid']) && isset($_POST['cu']) && isset($_POST['cl'])) {
            $idUsuario = $_POST['u'];
            $uuid = $_POST['uuid'];
            $idCurso = $_POST['cu'];
            $idClase = $_POST['cl'];
            $usuario = getUsuarioActual();
            require_once 'modulos/cursos/modelos/ClaseModelo.php';
            require_once 'modulos/cursos/modelos/CursoModelo.php';
            if ($usuario->idUsuario == getIdUsuarioDeCurso($idCurso) && $usuario->idUsuario == $idUsuario && $usuario->uuid == $uuid && clasePerteneceACurso($idCurso, $idClase)) {
                $auxPostArray = array();
                //Cargamos los datos de video
                if (isset($_POST['videoData'])) {
                    $auxPostArray['videoData'] = $_POST['videoData'];
                }
                //Cargamos los textos
                if (isset($_POST['textos'])) {
                    $auxPostArray['textos'] = $_POST['textos'];
                }
                //Cargamos las imagenes
                if (isset($_POST['imagenes'])) {
                    $auxPostArray['imagenes'] = $_POST['imagenes'];
                }
                //Cargamos los videos
                if (isset($_POST['videos'])) {
                    $auxPostArray['videos'] = $_POST['videos'];
                }
                //Cargamos los links
                if (isset($_POST['links'])) {
                    $auxPostArray['links'] = $_POST['links'];
                }
                //Cargamos las preguntas
                if (isset($_POST['preguntas'])) {
                    $auxPostArray['preguntas'] = $_POST['preguntas'];
                    //validamos que las preguntas que ya no se usen, se borren de la bd
                    require_once 'modulos/cursos/modelos/ControlModelo.php';
                    require_once 'modulos/cursos/modelos/ControlPreguntaModelo.php';
                    $control = getControlDeClase($idClase);
                    $preguntasEnBD = getIdsPreguntasDeControl($control->idControl);
                    //Cargamos los ids de las preguntas en un arreglo, para poder checarlo y borrar las que
                    //ya no se usen
                    $idPreguntasNuevas = array();
                    foreach ($_POST['preguntas'] as $pregunta) {
                        array_push($idPreguntasNuevas, $pregunta['idPregunta']);
                    }
                    foreach ($preguntasEnBD as $pregunta) {
                        //checamos que esta pregunta este en uso
                        if (!in_array($pregunta, $idPreguntasNuevas)) {
                            //Si no esta en el arreglo, la debemos de borrar
                            bajaControlPregunta($pregunta);
                        }
                    }
                }
                $json = json_encode($auxPostArray);
                $json = str_replace("'", "", $json);
                //revisamos que los archivos que se subieron para esta clase aún se utilizen
                require_once 'modulos/editorPopcorn/modelos/archivosExtraModelo.php';
                $archivosExtra = getArchivosExtraDeClase($idClase);
                if (isset($archivosExtra)) {
                    foreach ($archivosExtra as $archivo) {
                        $auxName = substr(strrchr($archivo->link, "/"), 1);
                        if (strpos($json, $auxName) !== false) {
                            //echo 'El archivo ' . $archivo->link . ' todavía se usa<br>';
                            //No hacemos nada, el archivo esta en uso
                        } else {
                            //echo 'El archivo ' . $archivo->link . ' YA NO SE USA!<br>';
                            //El archivo ya no se usa, lo borramos del s3
                            require_once 'modulos/aws/modelos/s3Modelo.php';
                            //echo 'se va a borrar el id = ' . $archivo->idArchivoExtra . ' link= ' . $archivo->link;
                            if (deleteFileFromS3ByUrl($archivo->link)) {
                                //Se borro el archivo del s3, lo borramos de la bd
                                //echo 'se borro del s3 ';
                                if (borrarArchivoExtra($archivo->idArchivoExtra)) {
                                    //echo 'se borro de la bd';
                                }
                            }
                        }
                    }
                }
                if (actualizaCodigoClase($idClase, $json)) {
                    $resultado = "ok";
                    $mensaje = "Los cambios han sido guardados correctamente";
                } else {
                    $resultado = "error";
                    $mensaje = "Error al modificar la BD.";
                }
            } else {
                $resultado = "error";
                $mensaje = "No puedes modificar esta clase";
                echo json_encode($res);
            }
        } else {
            $resultado = "error";
            $mensaje = "Los datos recibidos son incorrectos";
            echo json_encode($res);
        }
    } else {
        $resultado = "error";
        $mensaje = "No hay usuario loggeado";
    }
    $res = array("resultado" => $resultado, "mensaje" => $mensaje);
    echo json_encode($res);
}
Exemplo n.º 7
0
function eliminar()
{
    if (validarUsuarioLoggeado()) {
        if (validarAdministradorPrivado()) {
            if (isset($_GET['i']) && is_numeric($_GET['i'])) {
                $idCurso = intval($_GET['i']);
                require_once 'modulos/cursos/modelos/CursoModelo.php';
                $idUsuario = getIdUsuarioDeCurso($idCurso);
                //Debido a los archivos en el cdn no podemos borrar las clases por cascada,
                //pero si los cursos y temas.
                //Obtenemos todas la clases que pertenecen a este curso, borramos del cdn los archivos y las clases,
                //y borramos lo demás por cascada
                require_once 'modulos/cursos/modelos/ClaseModelo.php';
                $res = borrarClasesConArchivosDeCurso($idCurso);
                if ($res['res']) {
                    if (bajaCurso($idCurso) > 0) {
                        setSessionMessage("Se eliminó con éxito el curso", " ¡Bien! ", "success");
                    } else {
                        setSessionMessage("Ocurrió un error al eliminar", " ¡Error! ", "error");
                    }
                } else {
                    setSessionMessage($res['error'], " ¡Error! ", "error");
                }
            } else {
                setSessionMessage("Ocurrió un error", " ¡Error! ", "error");
            }
            redirect("/cursos");
        } else {
            goToIndex();
        }
    } else {
        goToIndex();
    }
}
Exemplo n.º 8
0
function crearClaseDeArchivo($idUsuario, $idCurso, $idTema, $fileName, $fileType)
{
    require_once 'modulos/usuarios/modelos/usuarioModelo.php';
    require_once 'modulos/cursos/modelos/CursoModelo.php';
    require_once 'modulos/cursos/modelos/TemaModelo.php';
    //Carpeta donde se va a guardar el archivo temporal
    $filePath = getServerRoot() . "/archivos/temporal/uploaderFiles/";
    $res = array();
    //Validamos que el curso sea del usuario y que el tema sea del curso
    if (getIdUsuarioDeCurso($idCurso) == $idUsuario && $idCurso == getIdCursoPerteneciente($idTema)) {
        //Guardamos el nombre original del archivo para establecerlo como titulo
        $pathInfo = pathinfo($filePath . $fileName);
        $titulo = $pathInfo['filename'];
        $newName = getUniqueCode(64) . "." . $pathInfo['extension'];
        require_once 'funcionesPHP/funcionesParaArchivos.php';
        //Le cambiamos el nombre del archivo a uno generico
        if (rename($filePath . $fileName, $filePath . $newName)) {
            $file = $filePath . $newName;
            $pathInfo = pathinfo($file);
            $clase = new Clase();
            $clase->idTema = $idTema;
            $clase->titulo = $titulo;
            $clase->idTipoClase = getTipoClase($fileType);
            //Establecemos el ancho de banda utilizado por la subida de este archivo
            $size = getFileSize($file);
            require_once 'modulos/principal/modelos/variablesDeProductoModelo.php';
            deltaVariableDeProducto("usoActualAnchoDeBanda", $size);
            require_once 'modulos/aws/modelos/s3Modelo.php';
            if ($clase->idTipoClase == 0 || $clase->idTipoClase == 4) {
                //Creamos la clase en la bd
                //Si es video o audio creamos la clase con la bandera que todavía no se transforma
                $clase->transformado = 0;
                $clase->usoDeDisco = 0;
                $clase->duracion = "00:00";
                $clase->orden = getUltimoOrdenEnTema($idTema) + 1;
                $idClase = altaClase($clase);
                if ($idClase >= 0) {
                    //Subimos el archivo al servicio S3 de amazon
                    $s3res = uploadFileToS3($file);
                    if ($s3res['res']) {
                        //El archivo se subio al cdn
                        //Generamos los datos del mensaje
                        $datosDelMensaje = array("bucket" => $s3res['bucket'], "key" => $s3res['key'], "tipo" => $clase->idTipoClase, "host" => getDomainName(), "idClase" => $idClase);
                        $datosJson = json_encode($datosDelMensaje);
                        require_once 'modulos/aws/modelos/sqsModelo.php';
                        if (AddMessageToQueue($datosJson)) {
                            //Se mando correctamente el mensaje
                            //Se dió de alta correctamente
                            $res['resultado'] = true;
                            $res['url'] = "#";
                        } else {
                            //Ocurrio un eror al agregar el mensaje
                            $res['resultado'] = false;
                            $res['mensaje'] = "Ocurrió un error al guardar tu archivo en nuestros servidores. Intenta de nuevo más tarde";
                        }
                    } else {
                        //Erro al subir el archivo al s3 de amazon
                        $res['resultado'] = false;
                        $res['mensaje'] = "Ocurrió un error al guardar tu archivo en nuestros servidores. Intenta de nuevo más tarde";
                    }
                } else {
                    //Ocurrió un error al agregar a la bd
                    $res['resultado'] = false;
                    $res['mensaje'] = "Ocurrió un error al guardar tu archivo en nuestros servidores. Intenta de nuevo más tarde";
                }
            } else {
                $clase->transformado = 1;
                //Subimos el archivo al servicio S3 de amazon
                $s3res = uploadFileToS3($file);
                if ($s3res['res']) {
                    //Si se subio, guardamos la clase en la bd
                    $clase->archivo = $s3res['link'];
                    $clase->usoDeDisco = $size;
                    $clase->orden = getUltimoOrdenEnTema($idTema) + 1;
                    $idClase = altaClase($clase);
                    if ($idClase >= 0) {
                        //Se dió de alta correctamente
                        $res['resultado'] = true;
                        $res['url'] = "#";
                    } else {
                        //Ocurrió un error al agregar a la bd
                        $res['resultado'] = false;
                        $res['mensaje'] = "Ocurrió un error al guardar tu archivo en nuestros servidores. Intenta de nuevo más tarde";
                    }
                } else {
                    //Si ocurrió un error al subir al s3
                    $res['resultado'] = false;
                    $res['mensaje'] = "Ocurrió un error al guardar tu archivo en nuestros servidores. Intenta de nuevo más tarde";
                }
            }
            //Sin importar que paso, borramos el archivo temporal
            unlink($file);
        } else {
            //Si ocurrió un error, se borra y regresamos false
            unlink($filePath . $fileName);
            $res['resultado'] = false;
            $res['mensaje'] = "El nombre del archivo no es válido";
        }
    } else {
        //Hay errores en la integridad usuario <-> curso
        //borramos el archivo
        unlink($filePath . $fileName);
        $res['resultado'] = false;
        $res['mensaje'] = "No tienes permisos para modificar este curso";
    }
    return $res;
}
Exemplo n.º 9
0
function obtenerPregunta()
{
    $res = "error";
    $msg = "";
    if (validarUsuarioLoggeado()) {
        if (isset($_POST['u']) && isset($_POST['uuid']) && isset($_POST['cu']) && isset($_POST['cl'])) {
            $idUsuario = $_POST['u'];
            $uuid = $_POST['uuid'];
            $idCurso = $_POST['cu'];
            $idClase = $_POST['cl'];
            $usuario = getUsuarioActual();
            require_once 'modulos/cursos/modelos/ClaseModelo.php';
            require_once 'modulos/cursos/modelos/CursoModelo.php';
            if ($usuario->idUsuario == getIdUsuarioDeCurso($idCurso) && $usuario->idUsuario == $idUsuario && $usuario->uuid == $uuid && clasePerteneceACurso($idCurso, $idClase)) {
                //$_POST['idPregunta']
                $idPregunta = $_POST['idPregunta'];
                require_once 'modulos/cursos/modelos/ControlPreguntaModelo.php';
                $pregunta = getPregunta($idPregunta);
                if (isset($pregunta) && !is_null($pregunta)) {
                    $res = "ok";
                    $msg = json_encode($pregunta);
                } else {
                    $res = "borrar";
                    $msg = "la pregunta no existe";
                }
            } else {
                //Error en la integridad usuario-curso-clase
                $msg = "Error de integridad usuario-curso-clase";
            }
        } else {
            //Error en los datos recibidos
            $msg = "Datos recibidos incorrectos";
        }
    } else {
        //Usuario no loggeado
        $msg = "usuario no loggeado";
    }
    echo json_encode(array("res" => $res, "mensaje" => $msg));
}