-
Notifications
You must be signed in to change notification settings - Fork 0
/
include.blog.php
105 lines (99 loc) · 3.03 KB
/
include.blog.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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<?php
function isNewBlogPost($post)
{
$weekAgo = strtotime('-1 week');
return $post['created_at'] > $weekAgo;
}
function retrieveBlogPost($postId)
{
$post = array();
if ($postId != null)
{
$postId = basename($postId);
include(K_WEB_ROOT . "/blog_posts/$postId.php");
if ($generate_blog_post != null)
{
$res = $generate_blog_post;
$post['text'] = formatMarkdown(file_get_contents(K_WEB_ROOT. "/blog_posts/$postId.md"));
$post['subject'] = $res['subject'];
$post['description'] = isset($res['description']) ? $res['description'] : "";
$post['created_at'] = $res['created_at'];
if (isset($res['updated_at']))
{
$post['updated_at'] = $res['updated_at'];
}
$post['tags'] = array();
if (isset($res['tags'])) {
$post['tags'] = $res['tags'];
}
// 0: show
// 1: pretend it doesn't exist
// 2: hide in listing
$post['hide_state'] = isset($res['hide_state']) ? $res['hide_state'] : 0;
if (isset($post['created_at']))
{
$post['created_at_f'] = date('F j, Y', $post['created_at']);
$post['created_at_fl'] = date('c', $post['created_at']);
}
if (isset($post['updated_at']))
{
$post['updated_at_f'] = date('F j, Y', $post['updated_at']);
$post['updated_at_fl'] = date('c', $post['updated_at']);
}
if (isset($res['meta']))
{
if (isset($_META))
{
// concat post meta before current meta to override things
$_META = array_merge($res['meta'], $_META);
}
else
{
$_META = $res['meta'];
}
}
}
}
return $post;
}
function getAllBlogPosts()
{
$files = scandir(K_WEB_ROOT . "/blog_posts/");
$result = array();
foreach ($files as $f)
{
if (str_ends_with($f, '.php'))
{
$pn = preg_replace('/\.\w+$/', '', $f);
$p = retrieveBlogPost($pn);
if ($p != null)
{
$pm = array_merge($p,
array(
'id' => $pn
));
array_push($result, $pm);
}
}
}
usort( $result, function( $a, $b )
{
if ( $a['created_at'] === $b['created_at'] ) return 0;
if ( strpos( $b['created_at'], '0000' ) !== false ) return 1;
return ( $a['created_at'] < $b['created_at'] ) ? 1 : -1;
});
return $result;
}
function doesPostHaveTag($post, $filterTag) {
if (!isset($filterTag) || strlen($filterTag) < 1) {
return True;
}
$state = False;
foreach ($post['tags'] as $tag) {
if (strtolower($tag) == strtolower($filterTag)) {
$state = True;
break;
}
}
return $state;
}