prepare('SELECT valor FROM configuracion WHERE clave = ?'); $stmt_banner->execute(['banner_text']); $banner_text = $stmt_banner->fetchColumn(); if (empty($banner_text)) { $banner_text = '¡Define tu frase motivacional en la sección de Información de Producto!'; } // Fetch Kanban columns $stmt_columns = $pdo->query('SELECT id, nombre FROM kanban_columns ORDER BY orden ASC'); $columns = $stmt_columns->fetchAll(PDO::FETCH_ASSOC); // If no columns exist, create default ones if (empty($columns)) { $default_columns = ['Backlog', 'En Proceso', 'Hecho']; $stmt_insert = $pdo->prepare('INSERT INTO kanban_columns (nombre, orden) VALUES (?, ?)'); foreach ($default_columns as $index => $name) { $stmt_insert->execute([$name, $index + 1]); } // Re-fetch columns $stmt_columns = $pdo->query('SELECT id, nombre FROM kanban_columns ORDER BY orden ASC'); $columns = $stmt_columns->fetchAll(PDO::FETCH_ASSOC); } // Fetch info cards and group them by column $stmt_cards = $pdo->query(' SELECT ip.id, ip.texto_informativo, ip.imagen_url, ip.column_id, p.nombre as producto_nombre FROM info_productos ip LEFT JOIN products p ON ip.producto_id = p.id ORDER BY ip.id ASC '); $cards = $stmt_cards->fetchAll(PDO::FETCH_ASSOC); $cards_by_column = []; foreach ($cards as $card) { $column_id = $card['column_id'] ?: 'unassigned'; $cards_by_column[$column_id][] = $card; } ?>

Tablero Kanban

Visualiza el flujo de trabajo de la información de tus productos.

Imagen del producto

Sin Asignar
Imagen del producto