prepare("SELECT * FROM blog_posts WHERE id = ?"); $stmt->execute([$_GET['id']]); $post = $stmt->fetch(); if (!$post) { die('Artículo no encontrado'); } $modo_edicion = true; } // Procesar formulario if ($_SERVER['REQUEST_METHOD'] === 'POST') { $titulo = trim($_POST['titulo']); $slug = strtolower(trim(preg_replace('/[^A-Za-z0-9-]+/', '-', $titulo))); $extracto = trim($_POST['extracto']); $contenido = $_POST['contenido']; $categoria = $_POST['categoria']; $tags = trim($_POST['tags']); $destacado = isset($_POST['destacado']) ? 1 : 0; $estado = $_POST['estado']; $tiempo_lectura = (int)$_POST['tiempo_lectura']; $autor_id = $admin['id']; // Subida de imagen $imagen = $post['imagen'] ?? ''; if (isset($_FILES['imagen']) && $_FILES['imagen']['error'] === UPLOAD_ERR_OK) { $allowed = ['image/jpeg', 'image/png', 'image/webp']; $max_size = 5 * 1024 * 1024; // 5MB if (!in_array($_FILES['imagen']['type'], $allowed)) { $error = 'Solo se permiten imágenes JPG, PNG o WebP'; } elseif ($_FILES['imagen']['size'] > $max_size) { $error = 'La imagen no puede superar los 5MB'; } else { $extension = pathinfo($_FILES['imagen']['name'], PATHINFO_EXTENSION); $nombre_imagen = $slug . '-' . time() . '.' . $extension; $ruta_destino = '../assets/blog/' . $nombre_imagen; if (!is_dir('../assets/blog')) { mkdir('../assets/blog', 0755, true); } if (move_uploaded_file($_FILES['imagen']['tmp_name'], $ruta_destino)) { $imagen = 'assets/blog/' . $nombre_imagen; } else { $error = 'Error al subir la imagen'; } } } if (!isset($error)) { if ($modo_edicion) { $stmt = $pdo->prepare(" UPDATE blog_posts SET titulo = ?, slug = ?, extracto = ?, contenido = ?, categoria = ?, tags = ?, imagen = ?, destacado = ?, estado = ?, tiempo_lectura = ? WHERE id = ? "); $stmt->execute([ $titulo, $slug, $extracto, $contenido, $categoria, $tags, $imagen, $destacado, $estado, $tiempo_lectura, $post['id'] ]); } else { $stmt = $pdo->prepare(" INSERT INTO blog_posts (titulo, slug, extracto, contenido, categoria, tags, imagen, autor_id, destacado, estado, tiempo_lectura) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) "); $stmt->execute([ $titulo, $slug, $extracto, $contenido, $categoria, $tags, $imagen, $autor_id, $destacado, $estado, $tiempo_lectura ]); } header('Location: dashboard.php'); exit; } } ?> <?= $modo_edicion ? 'Editar' : 'Nuevo' ?> Artículo - Amor y Roma

Artículo

← Volver al dashboard
>
Imagen actual

Imagen actual:

>
Cancelar