From 57f5b1e61bb3d8bc7adc67637082798f4a48e351 Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Tue, 11 Nov 2025 12:11:36 +0000 Subject: [PATCH] Auto commit: 2025-11-11T12:11:36.163Z --- assets/css/custom.css | 41 ++++ assets/js/main.js | 2 + assets/pasted-20251111-120920-c48f73c0.jpg | Bin 0 -> 17342 bytes assets/vm-shot-2025-11-11T12-09-17-858Z.jpg | Bin 0 -> 17342 bytes db/setup.php | 112 ++++++++++ index.php | 227 ++++++++------------ speaker.php | 77 +++++++ 7 files changed, 317 insertions(+), 142 deletions(-) create mode 100644 assets/css/custom.css create mode 100644 assets/js/main.js create mode 100644 assets/pasted-20251111-120920-c48f73c0.jpg create mode 100644 assets/vm-shot-2025-11-11T12-09-17-858Z.jpg create mode 100644 db/setup.php create mode 100644 speaker.php diff --git a/assets/css/custom.css b/assets/css/custom.css new file mode 100644 index 0000000..bfbd492 --- /dev/null +++ b/assets/css/custom.css @@ -0,0 +1,41 @@ + +body { + background-color: #F4F7F6; + color: #333333; + font-family: 'Roboto', sans-serif; +} + +h1, h2, h3, h4, h5, h6 { + font-family: 'Poppins', sans-serif; +} + +.hero { + background: linear-gradient(45deg, #4A90E2, #50E3C2); + color: white; + padding: 4rem 2rem; + border-radius: 0 0 1rem 1rem; +} + +.schedule-item { + background-color: #FFFFFF; + border-radius: 0.5rem; + padding: 1.5rem; + margin-bottom: 1rem; + border-left: 5px solid #4A90E2; + transition: transform 0.2s ease-in-out; +} + +.schedule-item:hover { + transform: translateY(-5px); +} + +.schedule-time { + font-weight: bold; + color: #4A90E2; +} + +.footer { + padding: 2rem 0; + margin-top: 2rem; + background-color: #FFFFFF; +} diff --git a/assets/js/main.js b/assets/js/main.js new file mode 100644 index 0000000..20295e0 --- /dev/null +++ b/assets/js/main.js @@ -0,0 +1,2 @@ + +// No custom JS needed for this static page yet. diff --git a/assets/pasted-20251111-120920-c48f73c0.jpg b/assets/pasted-20251111-120920-c48f73c0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..aa77778de9d6a49e5531ca633c3f56efeff96ed1 GIT binary patch literal 17342 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 literal 0 HcmV?d00001 diff --git a/assets/vm-shot-2025-11-11T12-09-17-858Z.jpg b/assets/vm-shot-2025-11-11T12-09-17-858Z.jpg new file mode 100644 index 0000000000000000000000000000000000000000..aa77778de9d6a49e5531ca633c3f56efeff96ed1 GIT binary patch literal 17342 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 literal 0 HcmV?d00001 diff --git a/db/setup.php b/db/setup.php new file mode 100644 index 0000000..d871d3b --- /dev/null +++ b/db/setup.php @@ -0,0 +1,112 @@ +exec("CREATE TABLE IF NOT EXISTS sessions ( + id INT AUTO_INCREMENT PRIMARY KEY, + time VARCHAR(255) NOT NULL, + title VARCHAR(255) NOT NULL, + speaker VARCHAR(255) NOT NULL, + description TEXT + )"); + + // Create speakers table if it doesn't exist + $pdo->exec("CREATE TABLE IF NOT EXISTS speakers ( + id INT AUTO_INCREMENT PRIMARY KEY, + name VARCHAR(255) NOT NULL, + bio TEXT, + photo_url VARCHAR(255), + slug VARCHAR(255) UNIQUE NOT NULL + )"); + + // Check if sessions table is empty + $stmt = $pdo->query("SELECT COUNT(*) FROM sessions"); + $count = $stmt->fetchColumn(); + + if ($count == 0) { + // Schedule data to insert + $seed_schedule = [ + [ + 'time' => '9:00 AM - 10:00 AM', + 'title' => 'Opening Keynote', + 'speaker' => 'Jane Doe', + 'description' => 'A look at the future of web development and the latest trends in the industry.' + ], + [ + 'time' => '10:15 AM - 11:15 AM', + 'title' => 'The Power of Modern PHP', + 'speaker' => 'John Smith', + 'description' => 'Exploring the new features of PHP 8 and how to write more efficient and readable code.' + ], + [ + 'time' => '11:30 AM - 12:30 PM', + 'title' => 'Frontend Magic with Vanilla JS', + 'speaker' => 'Emily White', + 'description' => 'Building interactive and dynamic user interfaces without the need for heavy frameworks.' + ], + [ + 'time' => '1:30 PM - 2:30 PM', + 'title' => 'Securing Your Web Applications', + 'speaker' => 'Michael Brown', + 'description' => 'Best practices for protecting your applications from common vulnerabilities.' + ] + ]; + + $stmt = $pdo->prepare("INSERT INTO sessions (time, title, speaker, description) VALUES (:time, :title, :speaker, :description)"); + foreach ($seed_schedule as $item) { + $stmt->execute($item); + } + } + + // Check if speakers table is empty + $stmt = $pdo->query("SELECT COUNT(*) FROM speakers"); + $count = $stmt->fetchColumn(); + + if ($count == 0) { + // Speaker data to insert + $seed_speakers = [ + [ + 'name' => 'Jane Doe', + 'bio' => 'Jane Doe is a renowned expert in web development with over 15 years of experience. She is a frequent speaker at international conferences and has authored several books on the subject.', + 'photo_url' => 'https://i.pravatar.cc/150?u=jane_doe', + 'slug' => 'jane-doe' + ], + [ + 'name' => 'John Smith', + 'bio' => 'John Smith is a core contributor to the PHP language and has been instrumental in its recent developments. He is passionate about open source and loves to share his knowledge with the community.', + 'photo_url' => 'https://i.pravatar.cc/150?u=john_smith', + 'slug' => 'john-smith' + ], + [ + 'name' => 'Emily White', + 'bio' => 'Emily White is a frontend developer who specializes in creating beautiful and performant user interfaces. She is a strong advocate for web standards and accessibility.', + 'photo_url' => 'https://i.pravatar.cc/150?u=emily_white', + 'slug' => 'emily-white' + ], + [ + 'name' => 'Michael Brown', + 'bio' => 'Michael Brown is a security researcher and ethical hacker. He has helped numerous companies secure their web applications and is a regular trainer at security bootcamps.', + 'photo_url' => 'https://i.pravatar.cc/150?u=michael_brown', + 'slug' => 'michael-brown' + ] + ]; + + $stmt = $pdo->prepare("INSERT INTO speakers (name, bio, photo_url, slug) VALUES (:name, :bio, :photo_url, :slug)"); + foreach ($seed_speakers as $speaker) { + $stmt->execute($speaker); + } + } + + } catch (PDOException $e) { + // In a real app, log this error and show a generic message + die('DB Setup Error: ' . $e->getMessage()); + } +} + +setup_database(); diff --git a/index.php b/index.php index 7205f3d..5a72383 100644 --- a/index.php +++ b/index.php @@ -1,150 +1,93 @@ query("SELECT time, title, speaker, description FROM sessions ORDER BY id"); + $schedule = $stmt->fetchAll(); + + // Fetch speakers from the database to create a lookup table for slugs + $stmt = $pdo->query("SELECT name, slug FROM speakers"); + $speakers = $stmt->fetchAll(PDO::FETCH_KEY_PAIR); + +} catch (PDOException $e) { + $schedule = []; + $speakers = []; + $db_error = "Database error: " . $e->getMessage(); +} ?> - + - - - New Style - - - - - - - - - - - - - - - - - - - + + + Web App Summit + + + + + + + + + + + + + -
-
-

Analyzing your requirements and generating your website…

-
- Loading… -
-

AI is collecting your requirements and applying the first changes.

-

This page will update automatically as the plan is implemented.

-

Runtime: PHP — UTC

-
-
-
- Page updated: (UTC) -
+ +
+ +
+ +
+
+

Welcome to the Web App Summit

+

The premier event for web application developers and enthusiasts.

+
+ +

Event Schedule

+ +
+ +
+ + +
The schedule is not available at the moment. Please check back later.
+ + +
+
+
+
+
+

Speaker:

+

+
+
+
+ + +
+
+ +
+
+ © Web App Summit. All Rights Reserved. +
+
+ + + - + \ No newline at end of file diff --git a/speaker.php b/speaker.php new file mode 100644 index 0000000..0b79376 --- /dev/null +++ b/speaker.php @@ -0,0 +1,77 @@ +prepare("SELECT name, bio, photo_url FROM speakers WHERE slug = ?"); + $stmt->execute([$speaker_slug]); + $speaker = $stmt->fetch(); + + if (!$speaker) { + $error = 'Speaker not found.'; + } + } catch (PDOException $e) { + $error = 'Database error: ' . $e->getMessage(); + } +} +?> + + + + + + <?php echo $speaker ? htmlspecialchars($speaker['name']) : 'Speaker Details'; ?> - Web App Summit + + + + + + + + + +
+ +
+ +
+ + Back to Schedule + +
+ <?php echo htmlspecialchars($speaker['name']); ?> +
+ + + +
+ +
+
+ © Web App Summit. All Rights Reserved. +
+
+ + + + + \ No newline at end of file