<?php
/*
 * @ https://hospedagem.matrixch.store 
 * @ PHP 7.4
 * @ Decoder version: 1.0.2
 * @ Release: 17/06/2024
*/
header("Cache-Control: no-cache, no-store, must-revalidate"); // HTTP 1.1.
header("Pragma: no-cache"); // HTTP 1.0.
header("Expires: 0"); // Proxies.
include "includes/header.php";
$table_name = "ads";
$base_file = basename($_SERVER["SCRIPT_NAME"]);
$adb->exec("CREATE TABLE IF NOT EXISTS " . $table_name . "(id INTEGER PRIMARY KEY\tAUTOINCREMENT  NOT NULL, title VARCHAR(100), url TEXT)");
$res = $adb->query("SELECT * FROM " . $table_name);
$resU = @$adb->query("SELECT * FROM " . $table_name . " WHERE id='" . $_GET["update"] . "'"); 
$rowU = @$resU->fetchArray();

$domain = "https://" . $_SERVER['HTTP_HOST']; 

// Obtener la ruta completa del script actual
$script_path = $_SERVER['SCRIPT_NAME'];  // Ej: /subcarpeta/index.php

// Obtener la ruta hasta la carpeta 'img/'
$script_dir = dirname($script_path); // Ej: /subcarpeta
$path_to_img_folder = $script_dir . '/img/'; // Ruta completa hasta la carpeta 'img/'

// En caso de que haya más subcarpetas, nos aseguramos de que la ruta esté bien formada
$path_to_img_folder = rtrim($path_to_img_folder, '/'); // Asegura

if (isset($_POST["submitU"])) {
    // Actualiza el título y la URL del anuncio
    $adb->exec("UPDATE " . $table_name . " SET title='" . $_POST["title"] . "',url='" . $_POST["url"] . "' WHERE id='" . $_POST["id"] . "'");
    $adb->close();
    echo "<script>window.location.href='ads.php';</script>";
    exit;
}

if (isset($_POST["submit"])) {
    // Verifica si se ha enviado un archivo
    if (isset($_FILES['image']) && $_FILES['image']['error'] == 0) {
        $target_dir = "img/"; // Directorio para guardar las imágenes
        $target_file = $target_dir . basename($_FILES["image"]["name"]);
        $image_type = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));

        // Verifica si el archivo es una imagen válida (GIF, PNG, JPG, SVG)
        $valid_types = array("gif", "png", "jpg", "jpeg", "svg");
        if (in_array($image_type, $valid_types)) {
            // Obtiene las dimensiones originales
            list($original_width, $original_height) = getimagesize($_FILES['image']['tmp_name']); 

            // Obtener parámetros de redimensionamiento
            $device = $_POST["device"] ?? "default"; // "mobile", "tv" o "default"
            $new_width = $original_width;
            $new_height = $original_height;

            // Definir dimensiones según el dispositivo
            if ($device === "mobile") {
                // Relación 9:16 para móviles
                $new_width = 1080;
                $new_height = 1920;
            } elseif ($device === "tv") {
                // Relación 16:9 para TV
                $new_width = 1920;
                $new_height = 1080;
            }

            // Crea la imagen redimensionada
            $image_p = imagecreatetruecolor($new_width, $new_height);
            switch ($image_type) {
                case "jpeg":
                case "jpg":
                    $image = imagecreatefromjpeg($_FILES['image']['tmp_name']);
                    break;
                case "png":
                    $image = imagecreatefrompng($_FILES['image']['tmp_name']);
                    break;
                case "gif":
                    $image = imagecreatefromgif($_FILES['image']['tmp_name']);
                    break;
                case "svg":
                    // El SVG no puede ser redimensionado con GD directamente
                    echo "Formato de imagen SVG no soportado para redimensionamiento.";
                    exit;
            }

            // Redimensiona la imagen
            imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $original_width, $original_height);

            // Guarda la imagen redimensionada en el directorio
            switch ($image_type) {
                case "jpeg":
                case "jpg":
                    imagejpeg($image_p, $target_file);
                    break;
                case "png":
                    imagepng($image_p, $target_file);
                    break;
                case "gif":
                    imagegif($image_p, $target_file);
                    break;
            }

            // Libera la memoria
            imagedestroy($image);
            imagedestroy($image_p);

            // Recupera la URL de la imagen
            $image_url = $domain . $path_to_img_folder . '/' . basename($target_file);

            // Inserta en la base de datos
            $adb->exec("INSERT INTO " . $table_name . "(title, url) VALUES('" . $_POST["title"] . "', '" . $image_url . "')");
            echo "<script>window.location.href='ads.php';</script>";
            exit;
        } else {
            echo "Formato de imagen inválido. Solo GIF, PNG, JPG, SVG son permitidos.";
        }
    }
}

if (isset($_GET["delete"])) {
    // Elimina el anuncio y la imagen
    $id_to_delete = intval($_GET["delete"]); // Protege contra inyección de SQL
    
    // Recupera el URL de la imagen antes de eliminar el registro
    $resDel = $adb->query("SELECT url FROM " . $table_name . " WHERE id=" . $id_to_delete);
    $rowDel = $resDel->fetchArray();
    $image_path = str_replace($domain . "/", "", $rowDel['url']); // Elimina el dominio de la URL para obtener la ruta del archivo

    // Elimina la imagen de la carpeta img, si existe
    if (file_exists($image_path)) {
        unlink($image_path); // Elimina la imagen
    }
    
    // Elimina el registro de la base de datos
    $adb->exec("DELETE FROM " . $table_name . " WHERE id=" . $id_to_delete);
    echo "<script>window.location.href='ads.php';</script>";
    exit;
}

if (isset($_GET["create"])) {
    // Muestra el formulario para crear anuncios
    echo "<div class=\"col-md-8 mx-auto\"><center><h1 class=\"colorboard\"></i>Banners</h1></center><div class=\"card bg-primary text-white\"><div class=\"card-header\"><center><h2><i class=\"fa fa-eye\"></i> Adicionar anúncios</h2></center></div><div class=\"card-body\"><form method=\"post\" enctype=\"multipart/form-data\"><div class=\"form-group\"><input class=\"form-control\" type=\"text\" name=\"title\"><label>Nome</label></div><div class=\"form-group\"><input class=\"form-control\" type=\"file\" name=\"image\"><label>Imagem (GIF, PNG, JPG, SVG)</label></div><div class=\"form-group\"><select class=\"form-control\" name=\"device\"><option value=\"default\">Predeterminado</option><option value=\"mobile\">Móvil (9:16)</option><option value=\"tv\">TV (16:9)</option></select><label>Dispositivo</label></div><div class=\"col-12\"><button type=\"submit\" name=\"submit\" class=\"btn btn-info\">Enviar</button></div></form></div></div></div>";
} else {
    if (isset($_GET["update"])) {
        // Muestra el formulario para editar anuncios
        echo "<div class=\"col-md-8 mx-auto\"><center><h1 class=\"colorboard\"></i>Editar Anúncios</h1></center><div class=\"card bg-primary text-white\"><div class=\"card-header\"><center><h2><i class=\"fa fa-file-image-o\"></i> Editar Ad</h2></center></div><div class=\"card-body\"><form method=\"post\" enctype=\"multipart/form-data\"><input type=\"hidden\" name=\"id\" value=\"" . $_GET["update"] . "\"><div class=\"user-box\"><input type=\"text\" name=\"title\" class=\"form-control\" value=\"" . $rowU["title"] . "\"><label>Titulo</label></div><div class=\"user-box\"><input type=\"text\" class=\"form-control\" name=\"url\" value=\"" . $rowU["url"] . "\"><label>URL IMAGE (GIF,PNG,JPG,SVG)</label></div><div class=\"form-group\"><label>Preview</label><br><img src=\"" . $rowU["url"] . "\" width=\"100px\"></div><div class=\"col-12\"><button type=\"submit\" name=\"submitU\" class=\"btn btn-info\">Enviar</button></div></form></div></div></div>";
    } else {
        // Mostrar los anuncios dentro de una sola tarjeta con una tabla
        echo "<div class=\"col-md-12 mx-auto\"><center><h1 class=\"colorboard\"></i> Anúncios</h1><a href=\"?create\" class=\"btn btn-primary\">Agregar</a></center><br><div class=\"card\">";
        echo "<div class=\"card-header\"><h2 class=\"text-center\"><i class=\"fa fa-eye\"></i> Todos los Anuncios</h2></div>";
        echo "<div class=\"card-body\">";
        echo "<table class=\"table table-bordered\">";
        echo "<thead><tr><th>Título</th><th>Imagen</th><th>Acciones</th></tr></thead><tbody>";

        while ($row = $res->fetchArray()) {
            echo "<tr>";
            echo "<td>" . $row['title'] . "</td>";
            echo "<td><img src=\"" . $row['url'] . "\" width=\"50\"></td>";
            echo "<td><a href=\"?delete=" . $row['id'] . "\" class=\"btn btn-danger btn-sm\">Eliminar</a></td>";
            echo "</tr>";
        }

        echo "</tbody></table>";
        echo "</div></div></div>";
    }
}
?>

<?php include 'includes/footer.php'; ?>