Пример #1
0
function cambiarImagenSubmit()
{
    if (validarUsuarioLoggeadoParaSubmits()) {
        if (isset($_FILES['imagen']) && isset($_GET['i'])) {
            $anchoImagen = 200;
            $altoImagen = 200;
            require_once 'modulos/cursos/modelos/CursoModelo.php';
            $idCurso = $_GET['i'];
            $cursoParaModificar = getCurso($idCurso);
            if ($cursoParaModificar->idUsuario == getUsuarioActual()->idUsuario) {
                if (($_FILES["imagen"]["type"] == "image/jpeg" || $_FILES["imagen"]["type"] == "image/pjpeg" || $_FILES["imagen"]["type"] == "image/png") && $_FILES["imagen"]["size"] < 10485760) {
                    //tamaño maximo de imagen de 10MB
                    require_once 'funcionesPHP/CropImage.php';
                    //guardamos la imagen en el formato original
                    $file = "archivos/temporal/original_" . $_FILES["imagen"]["name"];
                    if (move_uploaded_file($_FILES["imagen"]["tmp_name"], $file)) {
                        $dest = "archivos/temporal/cropped_" . $_FILES["imagen"]["name"];
                        //Hacemos el crop de la imagen
                        if (cropImage($file, $dest, $altoImagen, $anchoImagen)) {
                            //Se hizo el crop correctamente
                            //borramos la imagen original
                            unlink($file);
                            //Subimos la imagen recortada al S3 de Amazon
                            require_once 'modulos/aws/modelos/s3Modelo.php';
                            $res = uploadFileToS3($dest, "cursosImgs");
                            //borramos la imagen con crop
                            unlink($dest);
                            if ($res['res']) {
                                $imagenAnterior = $cursoParaModificar->imagen;
                                //Se subió bien la imagen, guardamos en la bd
                                $cursoParaModificar->imagen = $res['link'];
                                if (actualizaImagenCurso($cursoParaModificar)) {
                                    //Se actualizo correctamente la imagen, borramos la anterior
                                    if (strpos($imagenAnterior, "http") !== false) {
                                        //Es una imagen en el S3, la borramos
                                        deleteFileFromS3ByUrl($imagenAnterior);
                                    } else {
                                        //Es una imagen predefinida, no borrar!
                                    }
                                    require_once 'funcionesPHP/CargarInformacionSession.php';
                                    setSessionMessage("Cambiaste correctamente tu imagen", " ¡Bien! ", "success");
                                    redirect("/curso/" . $cursoParaModificar->uniqueUrl);
                                } else {
                                    //error en bd
                                    setSessionMessage("Error BD", " ¡Error! ", "error");
                                    redirect("/cursos/curso/cambiarImagen/" . $cursoParaModificar->idCurso);
                                }
                            } else {
                                //No se subió la imagen
                                setSessionMessage("Ocurrió un error al guardar la imagen en nuestros servidores. Intenta de nuevo más tarde", " ¡Error! ", "error");
                                redirect("/curso/" . $cursoParaModificar->uniqueUrl);
                            }
                        } else {
                            //borramos la imagen temporal
                            unlink($file);
                            //No se pudo hacer el "crop" de la imagen
                            setSessionMessage("Ocurrió un error al procesar tu imagen. Intenta de nuevo más tarde", " ¡Error! ", "error");
                            redirect("/cursos/curso/cambiarImagen/" . $cursoParaModificar->idCurso);
                        }
                    } else {
                        //No se subió la imagen
                        setSessionMessage("Ocurrió un error al recibir tu imagen. Intenta de nuevo más tarde", " ¡Error! ", "error");
                        redirect("/curso/" . $cursoParaModificar->uniqueUrl);
                    }
                } else {
                    //No es una imagen válida
                    setSessionMessage("No es una imagen válida. El tamaño máximo es de 10MB y formato png o jpg", " ¡Espera! ", "error");
                    redirect("/cursos/curso/cambiarImagen/" . $cursoParaModificar->idCurso);
                }
            } else {
                setSessionMessage("No puedes modificar este curso", " ¡Espera! ", "error");
                goToIndex();
            }
        } else {
            setSessionMessage("No es una imagen válida", " ¡Espera! ", "error");
            redirect("/cursos/curso/cambiarImagen/" . $cursoParaModificar->idCurso);
        }
    } else {
        goToIndex();
    }
}
Пример #2
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);
}
Пример #3
0
function borrarClasesConArchivosDeCurso($idCurso)
{
    require_once 'bd/conex.php';
    global $conex;
    $stmt = $conex->prepare("SELECT c.idClase, c.archivo, c.archivo2, c.idTipoClase, c.transformado\n                            FROM clase c, tema t\n                            WHERE c.idTema = t.idTema \n                            AND t.idCurso = :idCurso");
    $stmt->bindParam(':idCurso', $idCurso);
    if (!$stmt->execute()) {
        print_r($stmt->errorInfo());
    }
    $rows = $stmt->fetchAll();
    $clase = null;
    $todoOk = true;
    $error = "";
    foreach ($rows as $row) {
        $clase = new Clase();
        $clase->archivo = $row['archivo'];
        $clase->archivo2 = $row['archivo2'];
        $clase->idTipoClase = $row['idTipoClase'];
        $clase->idClase = $row['idClase'];
        $clase->transformado = $row['transformado'];
        if ($clase->transformado == 1) {
            require_once 'modulos/aws/modelos/s3Modelo.php';
            deleteFileFromS3ByUrl($clase->archivo);
            if ($clase->idTipoClase == 0 || $clase->idTipoClase == 4) {
                //si es video borramos el archivo2
                deleteFileFromS3ByUrl($clase->archivo2);
            }
            if (bajaClase($clase->idClase) == 0) {
                $todoOk = false;
                $error = "Ocurrió un error al borrar la clase";
            }
        } else {
            $todoOk = false;
            $error = "No puedes borrar el curso mientras uno de sus archivos se está transformando";
        }
    }
    return array("res" => $todoOk, "error" => $error);
}