35845-vm/projects.php
Flatlogic Bot f2fd1d30f2 second
2025-11-19 14:11:32 +00:00

118 lines
5.8 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Проекты | Личное Портфолио</title>
<meta name="description" content="Галерея проектов в личном портфолио.">
<!-- Open Graph / Facebook -->
<meta property="og:title" content="Проекты | Личное Портфолио">
<meta property="og:description" content="Галерея проектов в личном портфолио.">
<meta property="og:image" content="<?php echo htmlspecialchars($_SERVER['PROJECT_IMAGE_URL'] ?? ''); ?>">
<!-- Twitter -->
<meta name="twitter:title" content="Проекты | Личное Портфолио">
<meta name="twitter:description" content="Галерея проектов в личном портфолио.">
<meta name="twitter:image" content="<?php echo htmlspecialchars($_SERVER['PROJECT_IMAGE_URL'] ?? ''); ?>">
<!-- Google Fonts: Poppins -->
<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=Poppins:wght@300;400;600;700&display=swap" rel="stylesheet">
<!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
<!-- Bootstrap Icons -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">
<!-- Custom CSS -->
<link rel="stylesheet" href="assets/css/custom.css?v=<?php echo time(); ?>">
</head>
<body class="dark-theme">
<!-- Particles.js container -->
<div id="particles-js"></div>
<!-- Header -->
<header class="sticky-top">
<nav class="navbar navbar-expand-lg">
<div class="container">
<a class="navbar-brand fw-bold" href="index.php">Имя Фамилия</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="index.php#about">Обо мне</a></li>
<li class="nav-item"><a class="nav-link active" href="projects.php">Портфолио</a></li>
<li class="nav-item"><a class="nav-link" href="index.php#contact">Контакт</a></li>
<li class="nav-item"><a class="nav-link" href="/admin">Админка</a></li>
<li class="nav-item"><a class="nav-link" href="tools.php">Инструменты</a></li>
</ul>
</div>
</div>
</nav>
</header>
<main class="container py-5">
<?php
require_once __DIR__ . '/db/config.php';
$projects = [];
try {
$pdo = db();
if ($pdo) {
$stmt = $pdo->query("SELECT * FROM projects ORDER BY created_at DESC");
if ($stmt) {
$projects = $stmt->fetchAll(PDO::FETCH_ASSOC);
}
}
} catch (PDOException $e) {
error_log("Database error: " . $e->getMessage());
}
?>
<!-- Portfolio Section -->
<section id="portfolio" class="section">
<div class="container">
<h2 class="text-center section-title mb-5">Мои работы</h2>
<div class="row g-4">
<?php if (empty($projects)): ?>
<div class="col">
<p class="text-center">Пока нет проектов для отображения. Зайдите позже!</p>
</div>
<?php else: ?>
<?php foreach ($projects as $project): ?>
<div class="col-md-6 col-lg-4">
<div class="card portfolio-item h-100">
<img src="<?php echo htmlspecialchars($project['image_url'] ?: 'https://picsum.photos/seed/'.htmlspecialchars($project['id']).'/400/300'); ?>" class="card-img-top" alt="<?php echo htmlspecialchars($project['title']); ?>">
<div class="card-body d-flex flex-column">
<h5 class="card-title"><?php echo htmlspecialchars($project['title']); ?></h5>
<p class="card-text flex-grow-1"><?php echo htmlspecialchars($project['description']); ?></p>
<a href="project.php?id=<?php echo $project['id']; ?>" class="btn btn-sm btn-outline-accent mt-auto">Подробнее</a>
</div>
</div>
</div>
<?php endforeach; ?>
<?php endif; ?>
</div>
</div>
</section>
</main>
<!-- Footer -->
<footer class="text-center p-4 mt-auto">
<div class="container">
<p class="mb-0">&copy; <?php echo date("Y"); ?> Имя Фамилия. Все права защищены.</p>
</div>
</footer>
<!-- Bootstrap JS Bundle -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
<!-- Particles.js -->
<script src="https://cdn.jsdelivr.net/particles.js/2.0.0/particles.min.js"></script>
<!-- Custom JS -->
<script src="assets/js/main.js?v=<?php echo time(); ?>"></script>
</body>
</html>