-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.php
75 lines (61 loc) · 2.8 KB
/
index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?php
include('config.php');
$seoTitle = 'Son Yazılar - ' . SITE_NAME;
$seoDescription = 'Blogumuzda son yazılarımızı keşfedin. Teknoloji, yazılım ve hayat üzerine içerikler burada!';
include('includes/header.php');
$posts = array_diff(scandir(POSTS_DIR), array('..', '.')); // posts klasöründeki dosyaları listele
echo '
<div class="alert alert-secondary">' . DEFAULT_DESCRIPTION . '</div>
<h3>Blog Yazıları</h3>';
// URL'den filtre değerini al (case-insensitive)
$filterCategory = isset($_GET['cat']) ? strtolower($_GET['cat']) : null;
$filterTag = isset($_GET['tag']) ? strtolower($_GET['tag']) : null;
// Yazı dosyalarını al
$posts = array_diff(scandir(POSTS_DIR), array('..', '.'));
// Dosyaları son düzenlenme tarihine göre sıralamak için bir yardımcı dizi oluştur
$postFilesWithDates = [];
foreach ($posts as $post) {
$postFile = POSTS_DIR . $post;
$lastModified = filemtime($postFile); // Dosyanın son düzenlenme tarihi
$postFilesWithDates[] = [
'file' => $postFile,
'slug' => pathinfo($post, PATHINFO_FILENAME),
'lastModified' => $lastModified
];
}
// Tarihe göre sıralama (büyükten küçüğe)
usort($postFilesWithDates, function ($a, $b) {
return $b['lastModified'] - $a['lastModified'];
});
// Sıralanan yazıları listeleme
echo "<ul class='list-group list-group-flush list-group-numbered'>";
foreach ($postFilesWithDates as $postData) {
$file = $postData['file'];
$slug = $postData['slug'];
$lastModified = $postData['lastModified'];
$contentData = getPostContent($file);
if ($contentData) {
$title = htmlspecialchars($contentData['meta']['title']);
$category = strtolower(htmlspecialchars($contentData['meta']['category'] ?? 'Genel')); // Category'yi küçük harfe çevir
$tags = array_map('strtolower', $contentData['meta']['tags'] ?? []); // Etiketleri küçük harfe çevir
$date = htmlspecialchars($contentData['meta']['date']);
// Kategori veya etikete göre filtrele (case-insensitive)
if (($filterCategory && $category !== $filterCategory) || ($filterTag && !in_array($filterTag, $tags))) {
continue;
}
$tags = array_map('ucwords', $contentData['meta']['tags'] ?? []); // Etiketleri ucwords harfe çevir
echo "
<li class='list-group-item d-flex justify-content-between align-items-start'>
<div class='ms-2 me-auto'>
<div class='fw-bold'>
<a href='" . $basePath . $slug . "' class='text-dark'>" . $title . "</a></div>
" . $date . " tarihinde <strong>" . ucwords(strtolower($category)) . "</strong> kategorisinde yayınlandı. Etiketler: " . implode(', ', $tags) . "
</div>
<span class='badge text-bg-primary rounded-pill'>" . ucwords(strtolower($category)) . "</span>
</li>
";
}
}
echo '</ul>';
include('includes/footer.php');
?>