diff --git a/bridges/KilledbyGoogleBridge.php b/bridges/KilledbyGoogleBridge.php new file mode 100644 index 00000000000..217f6095236 --- /dev/null +++ b/bridges/KilledbyGoogleBridge.php @@ -0,0 +1,77 @@ +handleJson($json); + $this->orderItems(); + $this->limitItems(); + } + + /** + * Handle JSON + */ + private function handleJson($json) { + + $graveyard = json_decode($json, true); + + foreach($graveyard as $tombstone) { + $item = array(); + + $openDate = new DateTime($tombstone['dateOpen']); + $closeDate = new DateTime($tombstone['dateClose']); + $currentDate = new DateTime(); + + $yearOpened = $openDate->format('Y'); + $yearClosed = $closeDate->format('Y'); + + if ($closeDate > $currentDate) { + continue; + } + + $item['title'] = $tombstone['name'] . ' (' . $yearOpened . ' - ' . $yearClosed . ')'; + $item['uid'] = $tombstone['slug']; + $item['timestamp'] = strtotime($tombstone['dateClose']); + + $item['content'] = <<{$tombstone['description']}

{$tombstone['link']}

+EOD; + + $item['enclosures'][] = self::URI . '/assets/tombstone.svg'; + + $this->items[] = $item; + } + } + + /** + * Order items by timestamp + */ + private function orderItems() { + + $sort = array(); + + foreach ($this->items as $key => $item) { + $sort[$key] = $item['timestamp']; + } + + array_multisort($sort, SORT_DESC, $this->items); + $this->items = array_slice($this->items, 0, 15); + } + + /** + * Limit items to 15 + */ + private function limitItems() { + $this->items = array_slice($this->items, 0, 15); + } +}