<?php
include 'sesion.php';
include 'concha.php';

if (!isset($conn) || !($conn instanceof mysqli)) {
    die('Error: la conexión $conn no está disponible en concha.php');
}

$conn->set_charset('utf8');

/**
 * Escapa para salida HTML, pero si en base viene como entidad (&aacute;),
 * primero la decodifica para que no se vea &amp;aacute; en pantalla.
 */
function e($valor): string
{
    $valor = (string)$valor;
    $valor = html_entity_decode($valor, ENT_QUOTES | ENT_HTML5, 'UTF-8');
    return htmlspecialchars($valor, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8');
}

/**
 * Normaliza texto para guardar en base:
 * - si ya viene como entidad, lo unifica
 * - si viene con acentos UTF-8 normales, los pasa a entidades HTML
 * - deja consistente el guardado
 */
function normalizarTextoParaGuardar($valor): string
{
    $valor = (string)$valor;

    if ($valor === '') {
        return '';
    }

    // Primero decodifica por si ya viene como entidad
    $valor = html_entity_decode($valor, ENT_QUOTES | ENT_HTML5, 'UTF-8');

    // Normaliza espacios raros invisibles
    $valor = str_replace(
        array("\r\n", "\r", "\xC2\xA0"),
        array("\n", "\n", ' '),
        $valor
    );

    // Convierte caracteres españoles frecuentes a entidades HTML
    $mapa = array(
        'á' => '&aacute;',
        'é' => '&eacute;',
        'í' => '&iacute;',
        'ó' => '&oacute;',
        'ú' => '&uacute;',
        'Á' => '&Aacute;',
        'É' => '&Eacute;',
        'Í' => '&Iacute;',
        'Ó' => '&Oacute;',
        'Ú' => '&Uacute;',
        'ñ' => '&ntilde;',
        'Ñ' => '&Ntilde;',
        'ü' => '&uuml;',
        'Ü' => '&Uuml;',
        '¿' => '&iquest;',
        '¡' => '&iexcl;'
    );

    $valor = strtr($valor, $mapa);

    return $valor;
}

$IDboton = isset($_POST['IDboton']) ? trim((string)$_POST['IDboton']) : '';
$IDsub   = isset($_POST['IDsub']) ? trim((string)$_POST['IDsub']) : '';
$titulo  = isset($_POST['titulo']) ? trim((string)$_POST['titulo']) : '';
$tipo    = isset($_POST['tipo']) ? trim((string)$_POST['tipo']) : '';
$link    = isset($_POST['link']) ? trim((string)$_POST['link']) : '';

if ($IDboton === '' || $IDboton === '0') {
    $IDboton = (string) random_int(999999, 999999999);
}

// Normalizar antes de guardar
$IDbotonDB = normalizarTextoParaGuardar($IDboton);
$IDsubDB   = normalizarTextoParaGuardar($IDsub);
$tituloDB  = normalizarTextoParaGuardar($titulo);
$tipoDB    = normalizarTextoParaGuardar($tipo);
$linkDB    = normalizarTextoParaGuardar($link);

$mensaje = '';
$inserto = false;

if ($tituloDB !== '' && $tipoDB !== '') {
    $stmt = $conn->prepare("INSERT INTO `menu` (`ID`, `nombre`, `tipo`, `link`, `IDsub`) VALUES (?, ?, ?, ?, ?)");
    if ($stmt) {
        $stmt->bind_param('sssss', $IDbotonDB, $tituloDB, $tipoDB, $linkDB, $IDsubDB);

        if ($stmt->execute()) {
            $mensaje = isset($idioma_100825) && $idioma_100825 !== '' ? $idioma_100825 : 'Botón guardado correctamente.';
            $inserto = true;
        } else {
            $mensaje = 'Error al guardar: ' . $stmt->error;
        }

        $stmt->close();
    } else {
        $mensaje = 'Error al preparar la consulta: ' . $conn->error;
    }
} else {
    $mensaje = 'Faltan datos obligatorios para guardar el botón.';
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="utf-8">
    <meta name="description" content="Panel de Administracion">
    <meta name="author" content="<?php echo e($nombresitio ?? ''); ?>">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <title><?php echo e($nombresitio ?? ''); ?> - Panel de Administracion</title>

    <link href="http://fonts.googleapis.com/css?family=Oswald" rel="stylesheet" type="text/css">
    <link rel="shortcut icon" href="" type="image/x-icon">
    <link rel="apple-touch-icon" href="">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" crossorigin="anonymous">
    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" crossorigin="anonymous"></script>

    <style type="text/css">
        *{
            border-radius: 0 !important;
        }

        body {
            background-image: url(../fondeux.jpg);
        }

        .navbar {
            position: relative;
            min-height: 50px;
            padding-bottom: 20px;
        }

        .btn-primary {
            color: #fff !important;
            background-color: #0066FF;
            border-color: #0066FF;
        }

        .page-header{
            margin: 0;
            padding: 1em;
            background-color: #0066FF;
            border: 0;
            text-align:center;
        }

        .page-header h2{
            color: #ffffff;
            font-weight: bold;
        }

        .bloqueAzul{
            text-align: center;
        }

        .bloqueAzul .div {
            border: 1px solid #e4e4e4;
            background-color: #fff;
        }

        ul{
            list-style: none;
            padding: 0;
        }

        .far{
            color:#0066FF;
        }

        .faso {
            color:#0066FF;
        }

        .colorAzul h3{
            color:#0066FF;
        }
    </style>

    <script type="text/javascript" src="http://radioshosting.com/recursos/ckeditor/ckeditor.js"></script>
    <script src="http://radioshosting.com/recursos/ckeditor/sample.js"></script>

    <script type="text/javascript">
        function ventanaSecundaria(URL){
            window.open(URL, "ventana1", "width=550,height=450,scrollbars=NO");
        }
    </script>
</head>

<body>
<div class="container" style="background-color:#F1F2ED;">
    <?php include 'menu.php'; ?>
</div>

<div role="main" style="background-color:#fff;" class="container pt-3">

    <div class="page-header" style="text-align:center;">
        <h2><?php echo e($idioma_100824 ?? ''); ?></h2>
    </div>

    <div class="col-12 my-3 text-center">

        <div class="col-12 text-center">
            <h4><?php echo e($mensaje); ?></h4>
        </div>

        <div class="col-12 mb-4">
            <div class="grid">
                <?php
                $sql = "SELECT * FROM menu ORDER BY ID";
                $consulta = $conn->query($sql);

                if ($consulta instanceof mysqli_result) {
                    while ($row = $consulta->fetch_assoc()) {
                        $ID     = $row['ID'] ?? '';
                        $nombre = $row['nombre'] ?? '';
                        $tipoDBFila = $row['tipo'] ?? '';
                        $linkDBFila = $row['link'] ?? '';
                        ?>
                        <div class="grid-item col-12 col-sm-6 col-md-4 mb-2 px-3">
                            <div class="border">
                                <b><?php echo e($nombre); ?></b>

                                <ul class="p-0 m-0 d-flex justify-content-center">
                                    <li>
                                        <a class="btn" href="eliminar_boton_menu.php?ID=<?php echo urlencode((string)$ID); ?>">
                                            <i class="far fa-window-close"></i>
                                        </a>
                                    </li>
                                    <li>
                                        <a class="btn" href="agregar_boton_menu.php?ID=<?php echo urlencode((string)((int)$ID + 100)); ?>">
                                            <i class="far fa-plus-square"></i>
                                        </a>
                                    </li>
                                </ul>
                            </div>
                        </div>
                        <?php
                    }
                    $consulta->free();
                }
                ?>
            </div>
        </div>

        <div class="col-12 text-center mb-3">
            <a class="btn btn-primary mb-3" href="config_menu.php"><?php echo e($idioma_volver ?? 'Volver'); ?></a>
        </div>

    </div>
</div>

<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" crossorigin="anonymous"></script>
<script src="https://unpkg.com/isotope-layout@3/dist/isotope.pkgd.js"></script>

<script type="text/javascript">
window.setInterval(function(){
    $('.grid').isotope({
        itemSelector: '.grid-item'
    });
}, 500);
</script>

<script defer src="https://use.fontawesome.com/releases/v5.8.1/js/all.js" crossorigin="anonymous"></script>
</body>
</html>