-
Notifications
You must be signed in to change notification settings - Fork 0
/
blog-side-bar.inc
132 lines (92 loc) · 4.49 KB
/
blog-side-bar.inc
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<?php namespace ProcessWire;
// side-bar.inc - <!-- RIGHT COLUMN - SIDEBAR -->
/* #################### - recent posts widget - #################### */
// adapted selector to blog style
$out = '';
if ($page->template->name !=='blog') {
//$out = '<div id="recent-posts"><!-- #recent-posts -->';
$p = $pages->get("template=blog-recent-posts");//adapt to blog styles for this demo
//if widget is enabled output it
if($p->id) {
$limit = $p->blog_quantity;
$posts = $pages->find("template=blog-post, sort=-blog_date, start=0, limit=$limit");
$parent = null;
$t = '';
foreach($posts as $item) {
$date = $blog->formatDate($item->blog_date);
$t .= "<li><span class='date'>" . $date. "</span><br> <a href='{$item->url}'>{$item->title}</a></li>";
$parent = $item->parent;
}
if($t) {
// if blog style is 2 or 4, rss on recent posts will not work since the template blog-posts allows url segments but it is not present on such blog style installs.
$tpl = wire('templates')->get('blog-posts');
$rss = $tpl ? "<a class='rss' href='{$parent->url}rss/'>" . __('RSS') . "</a>" : '';
$out = "<div id='recent-posts'><!-- #recent-posts --><h4>{$p->title}</h4>" .
"<ul class='recent-posts links'>$t</ul>" .
"<p>" .
"<a class='more' href='{$parent->url}'>" . __('More') . "</a> " .
$rss .
"</p></div><!-- end #recent-posts -->";
}
else {
$out = "<div id='recent-posts'><!-- #recent-posts --><h4>{$p->title}</h4><p>No recent posts</p></div><!-- end #recent-posts -->";
}
}
}
echo $out;
/* #################### - recent comments widget - #################### */
/*
if comments feature installed, show recent comments widget if it is enabled
for this demo, findRecentComments() has to adapt to whether blog commenting feature was installed or not whilst remaining blog structure/style-agnostic
in your own blog install, you would know if you enabled the feature so there would be no need for such a check
in addition, our 'check' code is not code you would normally use in a template file.
we use such code here to be both foolproof that the commenting feature is installed and blog structure-agnostic
*/
$blogConfigs = $modules->getModuleConfigData('ProcessBlog');
// if commenting feature is installed
if($blogConfigs['commentsUse'] == 1) {
// if widget is enabled output it
$c = $pages->get("template=blog-recent-comments");
if($c->id) {
$out = '<div id="recent-comments"><!-- #recent comments -->';
$url = $pages->get('template=blog-comments')->url;//we adapt selector to blog style
$out .= "<h4>" . $c->title . "</h4>";
$limit = $c->blog_quantity;
$comments = $blog->findRecentComments($limit, 0, false);//false = in the sidebar, do not show pending or spam comments whether admin is logged in or not
if(count($comments)) {
$out .= "<ul class='links'>";
foreach($comments as $comment) {
$cite = htmlentities($comment->cite, ENT_QUOTES, "UTF-8");
$date = $blog->formatDate($comment->created, 2);
$out .= "<li><span class='date'>$date</span><br />" .
"<a href='{$comment->page->url}#comment{$comment->id}'>$cite » {$comment->page->title}</a>" .
"</li>";
}
$out .= "</ul>";
$out .= "<p>" .
"<a class='more' href='$url'>" . __('More') . "</a> " .
"<a class='rss' href='{$url}rss/'>" . __('RSS') . "</a>" .
"</p>";
}// if count comments
else $out .= "<p>" . __('No comments yet') . "</p>";
$out .= '</div><!-- end #recent-comments -->';
echo $out;
}// end if recent-comments widget is enabled
}// end if comments feature enabled
/* #################### - blog roll widget - #################### */
$br = $pages->get("template=blog-links");// adapt selector to blog styles for this demo
// if widget is enabled output it
if ($br->id) {
$out = '<div id="blogroll"><!-- #blogroll -->';
$out .= "<h4>{$br->title}</h4>";
if(count($br->blog_links)) {
$out .= "<ul class='links'>";
foreach($br->blog_links as $link) {
$out .= "<li><a target='_blank' href='{$link->blog_href}'>{$link->blog_headline}</a></li>";
}
$out .= "</ul>";
}
else $out .= "<p>" . __('No links yet.') . "</p>";
$out .= '</div><!-- end #blogroll -->';
echo $out;
}