diff options
| -rw-r--r-- | config/wp-json.json | bin | 0 -> 191 bytes | |||
| -rw-r--r-- | providers/Wpjson.php | 54 |
2 files changed, 54 insertions, 0 deletions
diff --git a/config/wp-json.json b/config/wp-json.json Binary files differnew file mode 100644 index 0000000..e511d12 --- /dev/null +++ b/config/wp-json.json diff --git a/providers/Wpjson.php b/providers/Wpjson.php new file mode 100644 index 0000000..94fd6d7 --- /dev/null +++ b/providers/Wpjson.php @@ -0,0 +1,54 @@ +<?php + +namespace Providers; + +require_once('JsonFeed.php'); +require_once('Item.php'); + +class Wpjson extends \Providers\JsonFeed { + + protected function _getFeedUrl($feed) { + $config = json_decode(file_get_contents('../config/wp-json.json'), TRUE); + if (isset($config[$feed])) { + return $config[$feed]; + } + return NULL; + } + + protected function _getCachePath() { + return '../cache/wpjson.%s'; + } + + protected function _parseFeedContent($feed) { + return $feed; + } + + private function _getRenderedProperty($prop) { + if (is_object($prop)) { + return strval($prop->rendered); + } + return strval($prop); + } + + protected function _mapItems($content) { + $items = []; + foreach ($content as $item) { + $itemObject = new Item(); + $itemObject->ID = $this->_getRenderedProperty($item->guid); + $itemObject->Title = $this->_getRenderedProperty($item->title); + $itemObject->Time = strtotime($this->_getRenderedProperty($item->date_gmt)); + $itemObject->Text = $this->_getRenderedProperty($item->content); + $itemObject->Link = $this->_getRenderedProperty($item->link); + $itemObject->Author = $this->_getRenderedProperty($this->_feed); + $items[] = $itemObject; + } + return $items; + } + + public function title() { + return sprintf('%s Wordpress posts', $this->_feed); + } + +} + +?> |
