Skip to content

Commit 6f2dc10

Browse files
authored
Override home.php to only get blog posts
1 parent 36d7b12 commit 6f2dc10

File tree

1 file changed

+78
-0
lines changed

1 file changed

+78
-0
lines changed

site-root/home.php

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
<?php
2+
3+
// compile home page data
4+
$now = new DateTime();
5+
$pageData = array();
6+
7+
8+
// meetups
9+
try {
10+
$meetups = Emergence\Meetup\Connector::getUpcomingEvents();
11+
$nextMeetup = array_shift($meetups);
12+
13+
// detect if meetup is happening right now
14+
// - use ?next_meetup_now=1 to test feature before any event
15+
if(
16+
($nextMeetup && $nextMeetup['time_start'] < $now)
17+
|| !empty($_GET['next_meetup_now'])
18+
) {
19+
$currentMeetup = $nextMeetup;
20+
$nextMeetup = array_shift($meetups);
21+
}
22+
23+
if($currentMeetup) {
24+
$currentMeetup['checkins'] = Laddr\MemberCheckin::getAllForMeetupByProject($currentMeetup['id']);
25+
}
26+
27+
$pageData['currentMeetup'] = $currentMeetup;
28+
$pageData['nextMeetup'] = $nextMeetup;
29+
$pageData['futureMeetups'] = $meetups;
30+
} catch (Exception $e) {
31+
// just omit meetup data
32+
}
33+
34+
35+
// build activity stream
36+
if (!$pageData['activity'] = Cache::fetch('home-activity')) {
37+
$existingTables = \DB::allValues('table_name', 'SELECT table_name FROM information_schema.TABLES WHERE TABLE_SCHEMA = SCHEMA()');
38+
$activityQueries = [];
39+
40+
if (in_array(Emergence\CMS\AbstractContent::$tableName, $existingTables)) {
41+
$activityQueries[] = sprintf(
42+
'SELECT'
43+
.' ID, Class, Published AS Timestamp'
44+
.' FROM `%s`'
45+
.' WHERE'
46+
.' Class = "%s" AND'
47+
.' Visibility = "Public" AND'
48+
.' Status = "Published" AND'
49+
.' (Published IS NULL OR Published <= CURRENT_TIMESTAMP)',
50+
Emergence\CMS\AbstractContent::$tableName,
51+
DB::escape(Emergence\CMS\BlogPost::class)
52+
);
53+
}
54+
/*
55+
if (in_array(Laddr\ProjectUpdate::$tableName, $existingTables)) {
56+
$activityQueries[] = sprintf('SELECT ID, Class, Created AS Timestamp FROM `%s`', Laddr\ProjectUpdate::$tableName);
57+
}
58+
59+
if (in_array(Laddr\ProjectBuzz::$tableName, $existingTables)) {
60+
$activityQueries[] = sprintf('SELECT ID, Class, Published AS Timestamp FROM `%s`', Laddr\ProjectBuzz::$tableName);
61+
}
62+
*/
63+
if (count($activityQueries)) {
64+
$pageData['activity'] = array_map(
65+
function($result) {
66+
return $result['Class']::getByID($result['ID']);
67+
}
68+
,DB::allRecords(implode(' UNION ', $activityQueries).' ORDER BY Timestamp DESC LIMIT 10')
69+
);
70+
} else {
71+
$pageData['activity'] = [];
72+
}
73+
Cache::store('home-activity', $pageData['activity'], 30);
74+
}
75+
76+
77+
// render data against home template
78+
RequestHandler::respond('home', $pageData);

0 commit comments

Comments
 (0)