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(); } }
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); }
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); }