Flatlogic Bot c3b14ca86e v1
2025-09-19 14:28:17 +00:00

209 lines
11 KiB
PHP

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>John Doe - Personal Portfolio</title>
<meta name="description" content="A one-page personal site to showcase work and receive contact requests.">
<meta name="author" content="John Doe">
<!-- Open Graph / Facebook -->
<meta property="og:type" content="website">
<meta property="og:url" content="https://your-domain.com/">
<meta property="og:title" content="John Doe - Personal Portfolio">
<meta property="og:description" content="Showcasing my work and projects.">
<meta property="og:image" content="https://picsum.photos/seed/og-image/1200/630">
<!-- Twitter -->
<meta property="twitter:card" content="summary_large_image">
<meta property="twitter:url" content="https://your-domain.com/">
<meta property="twitter:title" content="John Doe - Personal Portfolio">
<meta property="twitter:description" content="Showcasing my work and projects.">
<meta property="twitter:image" content="https://picsum.photos/seed/og-image/1200/630">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="assets/css/custom.css?v=<?php echo time(); ?>">
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-dark fixed-top">
<div class="container">
<a class="navbar-brand fw-bold" href="#">MyPortfolio</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav ms-auto">
<li class="nav-item"><a class="nav-link" href="#home">Home</a></li>
<li class="nav-item"><a class="nav-link" href="#about">About</a></li>
<li class="nav-item"><a class="nav-link" href="#portfolio">Portfolio</a></li>
<li class="nav-item"><a class="nav-link" href="#gallery">Gallery</a></li>
<li class="nav-item"><a class="nav-link" href="#contact">Contact</a></li>
</ul>
</div>
</div>
</nav>
<header id="home" class="hero">
<div class="container">
<h1 class="display-4">Welcome to My Digital Space</h1>
<p class="lead">I build modern, responsive, and beautiful web applications.</p>
<a href="#portfolio" class="btn btn-primary btn-lg mt-3">View My Work</a>
</div>
</header>
<main>
<section id="about" class="section">
<div class="container">
<h2 class="section-title">About Me</h2>
<div class="row justify-content-center">
<div class="col-lg-8 text-center">
<p class="lead">I am a passionate web developer with a love for clean code and user-centric design. With a background in computer science and several years of experience, I specialize in creating dynamic and engaging websites. When I'm not coding, I enjoy hiking and photography.</p>
</div>
</div>
</div>
</section>
<section id="portfolio" class="section bg-light">
<div class="container">
<h2 class="section-title">Portfolio</h2>
<div class="row g-4">
<div class="col-md-6 col-lg-4">
<div class="card portfolio-card">
<img src="assets/images/kitten-7778873.jpg" class="card-img-top" alt="A computer screen with code on it.">
<div class="card-body">
<h5 class="card-title">Project One</h5>
<p class="card-text">A brief description of the project, its purpose, and the technologies used. This is a placeholder.</p>
</div>
</div>
</div>
<div class="col-md-6 col-lg-4">
<div class="card portfolio-card">
<img src="assets/images/kitten-7778872.jpg" class="card-img-top" alt="A person's hands typing on a laptop.">
<div class="card-body">
<h5 class="card-title">Project Two</h5>
<p class="card-text">A brief description of the project, its purpose, and the technologies used. This is a placeholder.</p>
</div>
</div>
</div>
<div class="col-md-6 col-lg-4">
<div class="card portfolio-card">
<img src="assets/images/kitten-4450241.jpg" class="card-img-top" alt="Code on a screen with a blurry background.">
<div class="card-body">
<h5 class="card-title">Project Three</h5>
<p class="card-text">A brief description of the project, its purpose, and the technologies used. This is a placeholder.</p>
</div>
</div>
</div>
</div>
</div>
</section>
<?php
require_once __DIR__ . '/includes/pexels.php';
function get_mushroom_images($count = 6) {
$query = 'mushroom';
$url = 'https://api.pexels.com/v1/search?query=' . urlencode($query) . '&per_page=' . $count . '&page=1';
$data = pexels_get($url);
$images = [];
if ($data && !empty($data['photos'])) {
foreach ($data['photos'] as $photo) {
$src_url = $photo['src']['large'] ?? $photo['src']['original'];
$filename = 'pexels-mushroom-' . $photo['id'] . '.jpg';
$local_path = __DIR__ . '/assets/images/' . $filename;
$web_path = 'assets/images/' . $filename;
if (!file_exists($local_path)) {
download_to($src_url, $local_path);
}
if (file_exists($local_path)) {
$images[] = [
'src' => $web_path,
'alt' => $photo['alt'] ?? 'Mushroom image',
'photographer' => $photo['photographer'] ?? 'Unknown',
'photographer_url' => $photo['photographer_url'] ?? '#',
];
}
}
}
return $images;
}
$mushroom_images = get_mushroom_images(6);
?>
<section id="gallery" class="section bg-light">
<div class="container">
<h2 class="section-title">Mushroom Gallery</h2>
<div class="row g-4">
<?php if (!empty($mushroom_images)): ?>
<?php foreach ($mushroom_images as $image): ?>
<div class="col-md-6 col-lg-4">
<div class="card gallery-card h-100">
<img src="<?php echo htmlspecialchars($image['src']); ?>" class="card-img-top" alt="<?php echo htmlspecialchars($image['alt']); ?>">
<div class="card-body">
<p class="card-text small text-muted">
Photo by <a href="<?php echo htmlspecialchars($image['photographer_url']); ?>" target="_blank" rel="noopener noreferrer"><?php echo htmlspecialchars($image['photographer']); ?></a>
</p>
</div>
</div>
</div>
<?php endforeach; ?>
<?php else: ?>
<div class="col">
<p class="text-center">Could not load mushroom images. Please try again later.</p>
</div>
<?php endif; ?>
</div>
</div>
</section>
<section id="contact" class="section">
<div class="container">
<h2 class="section-title">Get In Touch</h2>
<div class="row justify-content-center">
<div class="col-lg-6">
<form id="contactForm" novalidate>
<div class="mb-3">
<label for="name" class="form-label">Name</label>
<input type="text" class="form-control" id="name" name="name" required>
</div>
<div class="mb-3">
<label for="email" class="form-label">Email</label>
<input type="email" class="form-control" id="email" name="email" required>
</div>
<div class="mb-3">
<label for="message" class="form-label">Message</label>
<textarea class="form-control" id="message" name="message" rows="5" required></textarea>
</div>
<div class="text-center">
<button type="submit" class="btn btn-primary">Send Message</button>
</div>
</form>
<div class="mt-3 text-center">
<small class="text-muted">For testing purposes, emails may be sent to a default address. Please configure your own SMTP settings in the <code>.env</code> file for production use.</small>
</div>
</div>
</div>
</div>
</section>
</main>
<footer class="text-center">
<div class="container">
<p class="mb-0">&copy; <?php echo date("Y"); ?> John Doe. All Rights Reserved.</p>
</div>
</footer>
<!-- Alert Toast -->
<div id="contact-alert" class="alert" role="alert"></div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
<script src="assets/js/main.js?v=<?php echo time(); ?>"></script>
</body>
</html>