paginas publicas restantes

This commit is contained in:
Brisa
2026-06-30 14:58:51 -03:00
parent 9f7ccf208b
commit 47ef868129
4 changed files with 394 additions and 0 deletions
+83
View File
@@ -0,0 +1,83 @@
<?php
include("db.php");
$nombre_archivo = "productos.csv";
$archivo = fopen($nombre_archivo, "r");
if ($archivo !== FALSE) {
fgetcsv($archivo, 1000, ";");
$importados = 0;
$errores = 0;
$fila = 1;
while (($datos = fgetcsv($archivo, 1000, ";")) !== FALSE) {
$fila++;
//CAPTURA DE DATOS
$id = trim($datos[0]);
$nombre = trim($datos[1]);
$precio = trim($datos[2]);
$categoria = trim($datos[3]);
$imagen = trim($datos[4]);
$activo = isset($datos[5]) ? trim($datos[5]) : 1;
$stock = (isset($datos[6]) && trim($datos[6]) !== '') ? trim($datos[6]) : 0;
// --- VALIDACIONES DE DATOS ---
if (empty($nombre) || empty($categoria)) {
echo "Error en fila $fila: El nombre o la categoría están vacíos.<br>";
$errores++;
continue;
}
if (!is_numeric($precio) || (float)$precio <= 0) {
echo "Error en fila $fila: El precio '$precio' no es un número válido.<br>";
$errores++;
continue;
}
if (!is_numeric($stock) || (int)$stock < 0) {
echo "Error en fila $fila: El stock '$stock' debe ser un número entero mayor o igual a cero.<br>";
$errores++;
continue;
}
$stock = (int)$stock;
$stmt = $conexion->prepare("
INSERT INTO productos (id, nombre, precio, categoria, imagen, activo, stock)
VALUES (?, ?, ?, ?, ?, ?, ?)
ON DUPLICATE KEY UPDATE
nombre = VALUES(nombre),
precio = VALUES(precio),
categoria = VALUES(categoria),
imagen = VALUES(imagen),
activo = VALUES(activo),
stock = VALUES(stock)
");
$stmt->bind_param("isdssii", $id, $nombre, $precio, $categoria, $imagen, $activo, $stock);
if ($stmt->execute()) {
$importados++;
} else {
echo "Error de BD en fila $fila: " . $conexion->error . "<br>";
$errores++;
}
}
fclose($archivo);
echo "<hr>";
echo "<h3>Resumen del proceso:</h3>";
echo "Productos procesados (Nuevos o Actualizados): $importados <br>";
if ($errores > 0) {
echo "Filas con errores: $errores <br>";
}
echo "<br><a href='productos.php'>Ver catálogo en la web</a>";
} else {
echo "No se pudo encontrar el archivo $nombre_archivo";
}
?>
+234
View File
@@ -0,0 +1,234 @@
<?php
session_start();
if (isset($_SESSION['rol']) && $_SESSION['rol'] === 'admin') {
header("Location: admin/dashboard.php");
exit();
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>La Pecosa - Rotisería</title>
<link rel="stylesheet" href="diseño.css">
<link rel="stylesheet" href="css/all.min.css">
<link rel="icon" href="imagenes/favicon.png" type="image/png">
<meta name="theme-color" content="#e02828">
<meta property="og:title" content="La Pecosa - Rotisería">
<meta property="og:image" content="imagenes/logo-pecosa.png">
</head>
<body>
<header>
<nav class="navbar">
<div class="info-contacto">
<a href="https://www.google.com/maps/search/?api=1&query=México+571+Paraná" target="_blank" style="color:white; text-decoration:none;">
<i class="fa-solid fa-location-dot"></i> México 571
</a>
<a href="tel:+543434231400" style="color:white; text-decoration:none;">
<i class="fa-solid fa-phone"></i> 0343 423-1400
</a>
</div>
<ul class="nav-links">
<?php if(isset($_SESSION['usuario'])): ?>
<li>
<span class="user-name-nav">
<i class="fa-solid fa-user"></i> <?php echo htmlspecialchars($_SESSION['usuario']); ?>
</span>
</li>
<li><a href="logout.php">SALIR</a></li>
<?php else: ?>
<li><a href="login.php">LOGIN</a></li>
<?php endif; ?>
<li class="dropdown">
<a href="javascript:void(0);" class="dropbtn" onclick="toggleDropdown(event)">
CATEGORÍAS <i class="fa-solid fa-chevron-down" style="font-size:0.75rem; margin-left:4px;"></i>
</a>
<div class="dropdown-content" id="myDropdown">
<a href="productos.php?cat=Todos">Todos los productos</a>
<a href="productos.php?cat=Carne">Carne</a>
<a href="productos.php?cat=Verdura">Verdura</a>
<a href="productos.php?cat=Vinoteca">Vinoteca</a>
<a href="productos.php?cat=Bebidas">Bebidas</a>
<a href="productos.php?cat=Lacteos">Lácteos</a>
<a href="productos.php?cat=Panaderia">Panadería</a>
<a href="productos.php?cat=Limpieza">Limpieza</a>
<a href="productos.php?cat=Almacen">Almacén</a>
</div>
</li>
<li><a href="#nosotros">NOSOTROS</a></li>
<li><a href="ayuda.php">AYUDA</a></li>
<li><a href="#" onclick="toggleMapa(); return false;">UBICACIÓN</a></li>
</ul>
</nav>
</header>
<main>
<?php if (isset($_GET['exito']) && $_GET['exito'] == 1): ?>
<div style="background:#f0fdf4; color:#166534; border:1px solid #bbf7d0; padding:14px 20px; margin:20px 5%; border-radius:10px; font-weight:600; font-size:0.9rem; display:flex; align-items:center; gap:8px;">
<i class="fa-solid fa-circle-check"></i> ¡Pedido realizado con éxito! Ya estamos preparándolo.
</div>
<?php endif; ?>
<!-- HERO -->
<section class="hero"></section>
<!-- SLIDER -->
<div class="product-banner-slider">
<div class="product-slider-wrapper" id="slider">
<div class="product-slide"><img src="imagenes/imagen1.jpg" alt="Producto"></div>
<div class="product-slide"><img src="imagenes/imagen2.jpg" alt="Producto"></div>
<div class="product-slide"><img src="imagenes/imagen3.jpg" alt="Producto"></div>
<div class="product-slide"><img src="imagenes/imagen19.jpg" alt="Producto"></div>
<div class="product-slide"><img src="imagenes/imagen25.jpg" alt="Producto"></div>
<div class="product-slide"><img src="imagenes/imagen23.jpg" alt="Producto"></div>
<div class="product-slide"><img src="imagenes/imagen55.jpg" alt="Producto"></div>
<div class="product-slide"><img src="imagenes/imagen56.jpg" alt="Producto"></div>
<div class="product-slide"><img src="imagenes/imagen57.jpg" alt="Producto"></div>
<div class="product-slide"><img src="imagenes/imagen54.jpg" alt="Producto"></div>
<div class="product-slide"><img src="imagenes/imagen53.jpg" alt="Producto"></div>
<div class="product-slide"><img src="imagenes/imagen52.jpg" alt="Producto"></div>
<div class="product-slide"><img src="imagenes/imagen51.jpg" alt="Producto"></div>
<div class="product-slide"><img src="imagenes/imagen50.jpg" alt="Producto"></div>
<div class="product-slide"><img src="imagenes/imagen49.jpg" alt="Producto"></div>
<div class="product-slide"><img src="imagenes/imagen24.jpg" alt="Producto"></div>
<div class="product-slide"><img src="imagenes/imagen25.jpg" alt="Producto"></div>
<div class="product-slide"><img src="imagenes/imagen10.jpg" alt="Producto"></div>
<div class="product-slide"><img src="imagenes/imagen8.jpg" alt="Producto"></div>
<div class="product-slide"><img src="imagenes/imagen30.jpg" alt="Producto"></div>
<div class="product-slide"><img src="imagenes/imagen14.jpg" alt="Producto"></div>
<div class="product-slide"><img src="imagenes/imagen9.jpg" alt="Producto"></div>
<div class="product-slide"><img src="imagenes/imagen47.jpg" alt="Producto"></div>
</div>
</div>
<!-- NOSOTROS + HORARIOS -->
<section class="seccion-info">
<div id="nosotros" class="clean-card">
<div class="clean-card-icon">
<i class="fa-solid fa-store"></i>
</div>
<h2>Nosotros</h2>
<div class="clean-card-body">
<p>Nació como una pequeña verdulería de barrio. Con el pasar de los años, en <span class="highlight-red">1971</span> fue fundada y bautizada como</p>
<p style="font-size:1.15rem; font-weight:700; color:#e02828;">"La Pecosa"</p>
<p>Convirtiéndose en una rotisería familiar, con recetas caseras, con el objetivo de llevar comida rica y abundante a cada mesa.</p>
<p style="margin-top:18px;"><span class="highlight-red">Dueños:</span> Edgardo y Daniel Picarella.</p>
</div>
</div>
<div id="horarios" class="clean-card">
<div class="clean-card-icon">
<i class="fa-solid fa-clock"></i>
</div>
<h2>Horarios</h2>
<div class="clean-card-body">
<p><span class="highlight-red">Lunes a Sábado</span></p>
<p style="font-size:1.1rem; font-weight:600; color:#333;">08:30 13:30 · 17:30 21:00</p>
<p style="margin-top:18px;"><span class="highlight-red">Domingos</span></p>
<p style="font-size:1.1rem; font-weight:600; color:#333;">08:30 13:30</p>
</div>
</div>
</section>
<!-- MODAL MAPA -->
<div id="modal-mapa" class="modal">
<div class="modal-content">
<span onclick="toggleMapa()" style="position:absolute; top:14px; right:18px; font-size:22px; cursor:pointer; color:#aaa; line-height:1;">&times;</span>
<h2 style="margin-bottom:20px; color:#222; font-size:1.3rem;">Nuestra ubicación</h2>
<div style="border-radius:12px; overflow:hidden; margin-bottom:18px; border:1px solid #eee;">
<iframe
src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3392.235941865985!2d-60.5255476!3d-31.7367851!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x95b45262fbc9ca09%3A0x61de87bb770beff1!2sM%C3%A9xico%20571%2C%20E3100%20Paran%C3%A1%2C%20Entre%20R%C3%ADos!5e0!3m2!1ses-419!2sar!4v1710795000000!5m2!1ses-419!2sar"
width="100%" height="320" style="border:0;" allowfullscreen="" loading="lazy">
</iframe>
</div>
<p style="font-size:14px; color:#666;">
<i class="fa-solid fa-location-dot" style="color:#e02828;"></i> México 571, Paraná.
</p>
</div>
</div>
<!-- MODAL HORARIOS VISUAL (nuevo) -->
<div id="modal-horarios-visual" class="modal">
<div class="modal-content" style="max-width:400px; text-align:center;">
<span onclick="cerrarModal('modal-horarios-visual')" style="position:absolute; top:14px; right:18px; font-size:22px; cursor:pointer; color:#aaa; line-height:1;">&times;</span>
<h2 style="margin-bottom:16px; color:#222; font-size:1.3rem;">Nuestros Horarios</h2>
<img src="imagenes/im4.jpg" alt="Horarios" style="width:100%; border-radius:10px; margin-bottom:14px;">
<p style="font-size:14px; color:#666;">¡Te esperamos en México 571!</p>
</div>
</div>
<!-- MODAL NOVEDADES (nuevo) -->
<div id="modal-novedades" class="modal">
<div class="modal-content" style="max-width:400px; text-align:center;">
<span onclick="cerrarModal('modal-novedades')" style="position:absolute; top:14px; right:18px; font-size:22px; cursor:pointer; color:#aaa; line-height:1;">&times;</span>
<h2 style="margin-bottom:16px; color:#222; font-size:1.3rem;">🍎 Novedades</h2>
<img src="imagenes/im1.jpg" alt="Novedades de la semana" style="width:100%; border-radius:10px; margin-bottom:14px;">
<p style="font-size:14px; color:#666;">¡No te pierdas nuestras promociones y platos especiales de esta semana!</p>
</div>
</div>
</main>
<!-- BARRA INFERIOR -->
<footer class="bottom-bar">
<div class="footer-text">© LA PECOSA — Paraná, Entre Ríos.</div>
<a href="carrito.php" class="btn-red">
<i class="fa-solid fa-utensils"></i>
<span>PEDIDO</span>
<span id="cart-count">
<?php echo isset($_SESSION['carrito']) ? array_sum($_SESSION['carrito']) : 0; ?>
</span>
</a>
</footer>
<!-- CHATBOT -->
<div id="chat-circle" onclick="toggleChat()">
<i class="fa-solid fa-comments"></i>
</div>
<div class="chat-box" id="chat-box">
<div class="chat-box-header">
<span>La Pecosa Asistente Virtual 🍎</span>
<span onclick="toggleChat()" style="cursor:pointer; font-size:20px; line-height:1;">&times;</span>
</div>
<div class="chat-box-body" id="chat-logs">
<div class="chat-msg">
<div class="cm-msg-text">¡Hola! Soy el asistente de La Pecosa. ¿En qué puedo ayudarte?</div>
</div>
</div>
<!-- Input de texto libre (mejora de la compañera) -->
<div class="chat-input-wrapper">
<input type="text" id="chat-input-text" placeholder="Escribí tu consulta..." autocomplete="off">
<button onclick="enviarMensaje()" class="chat-send-btn" aria-label="Enviar">
<i class="fa-solid fa-paper-plane"></i>
</button>
</div>
<!--<div class="chat-hints">
horarios · ubicación · nosotros · pagos · teléfono · promo · novedades · redes
</div>-->
</div>
<!-- Alerta promo flotante -->
<div id="alerta-flotante-promo">
<button onclick="cerrarAlertaFlotante()" style="position:absolute;top:6px;right:10px;background:none;border:none;font-size:1rem;cursor:pointer;color:#aaa;">&times;</button>
<div style="display:flex; gap:10px; align-items:flex-start; margin-top:4px;">
<span style="font-size:1.4rem;">📢</span>
<div>
<h4 style="margin:0 0 4px 0; color:#e02828; font-size:0.9rem; font-weight:800;">¡MENÚ DEL DÍA!</h4>
<p id="texto-alerta-flotante" style="margin:0; font-size:0.875rem; color:#333; line-height:1.4;"></p>
</div>
</div>
</div>
<script src="script.js"></script>
</body>
</html>
+62
View File
@@ -0,0 +1,62 @@
<?php include("db.php"); ?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Privacidad - La Pecosa</title>
<link rel="stylesheet" href="css/all.min.css">
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: 'Segoe UI', sans-serif;
line-height: 1.6;
background-color: #fffef8;
color: #333;
padding: 40px 20px;
}
.container {
max-width: 800px;
margin: 0 auto;
background: white;
padding: 40px;
border-radius: 20px;
box-shadow: 0 10px 30px rgba(0,0,0,0.02);
}
h1 { color: #e02828; margin-bottom: 20px; text-transform: uppercase; letter-spacing: 1px; }
h2 { color: #444; margin: 25px 0 10px; font-size: 1.2rem; }
p { margin-bottom: 15px; text-align: justify; }
.icon-box { color: #e02828; margin-right: 10px; }
.back-link {
display: inline-block;
margin-top: 30px;
text-decoration: none;
color: #e02828;
font-weight: 700;
text-transform: uppercase;
font-size: 0.9rem;
}
</style>
</head>
<body>
<div class="container">
<h1><i class="fa-solid fa-shield-halved icon-box"></i>Política de Privacidad</h1>
<p>En La Pecosa nos tomamos muy en serio la seguridad de tus datos. Esta política explica cómo tratamos tu información.</p>
<h2>1. Datos que recolectamos</h2>
<p>Al registrarte, solicitamos tu nombre, correo electrónico y contraseña. Estos datos son protegidos mediante técnicas de encriptación (hashing) para asegurar que nadie más pueda acceder a ellos.</p>
<h2>2. Uso de la ubicación</h2>
<p>Si optás por utilizar la función de envío a domicilio, el sistema podrá solicitar acceso a tu ubicación. Esta información se utiliza únicamente para facilitar la entrega de tu pedido en la ciudad de Paraná y no será almacenada de forma permanente ni compartida con terceros ajenos a la logística de La Pecosa.</p>
<h2>3. Consentimiento</h2>
<p>Al tildar la casilla de aceptación en el registro, otorgás tu consentimiento expreso para que tratemos estos datos bajo los lineamientos de la Ley 25.326 de Protección de Datos Personales de la República Argentina.</p>
<h2>4. Tus derechos</h2>
<p>Podés solicitar la eliminación o corrección de tus datos en cualquier momento contactándonos a través de nuestros canales oficiales.</p>
<a href="javascript:history.back()" class="back-link"><i class="fa-solid fa-arrow-left"></i> Volver al registro</a>
</div>
</body>
</html>
+15
View File
@@ -0,0 +1,15 @@
id;nombre;precio;categoria;imagen;activo;stock
1;Asado de Novillo;8500;Carne;img/asado.jpg;1;10
2;Vacio Especial;9200;Carne;img/vacio.jpg;0;10
3;Pechuga de Pollo x kg;4500;Carne;img/pollo.jpg;1;10
4;Tomate Redondo x kg;1200;Verdura;img/tomate.jpg;1;100
5;Lechuga Mantecosa;1500;Verdura;img/lechuga.jpg;1;30
6;Papa Blanca x kg;800;Verdura;img/papa.jpg;1;100
7;Leche Entera 1L;1100;Lacteos;img/leche.jpg;1;30
8;Yogur con Cereales;950;Lacteos;img/yogur.jpg;1;2
9;Queso Cremoso x kg;6800;Lacteos;img/queso.jpg;1;10
10;Malbec;5400;Vinoteca;img/vino1.jpg;1;10
11;Fernet 750ml;8200;Bebidas;img/fernet.jpg;0;10
12;Pan x kg;1800;Panaderia;img/pan.jpg;1;20
13;Detergente 500ml;1200;Limpieza;img/detergente.jpg;1;30
14;Arroz Largo Fino;1100;Almacen;img/arroz.jpg;1;30
1 id nombre precio categoria imagen activo stock
2 1 Asado de Novillo 8500 Carne img/asado.jpg 1 10
3 2 Vacio Especial 9200 Carne img/vacio.jpg 0 10
4 3 Pechuga de Pollo x kg 4500 Carne img/pollo.jpg 1 10
5 4 Tomate Redondo x kg 1200 Verdura img/tomate.jpg 1 100
6 5 Lechuga Mantecosa 1500 Verdura img/lechuga.jpg 1 30
7 6 Papa Blanca x kg 800 Verdura img/papa.jpg 1 100
8 7 Leche Entera 1L 1100 Lacteos img/leche.jpg 1 30
9 8 Yogur con Cereales 950 Lacteos img/yogur.jpg 1 2
10 9 Queso Cremoso x kg 6800 Lacteos img/queso.jpg 1 10
11 10 Malbec 5400 Vinoteca img/vino1.jpg 1 10
12 11 Fernet 750ml 8200 Bebidas img/fernet.jpg 0 10
13 12 Pan x kg 1800 Panaderia img/pan.jpg 1 20
14 13 Detergente 500ml 1200 Limpieza img/detergente.jpg 1 30
15 14 Arroz Largo Fino 1100 Almacen img/arroz.jpg 1 30