Go to the documentation of this file.00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00015 final class AtomItemWorker extends Singleton implements FeedItemWorker
00016 {
00020 public static function me()
00021 {
00022 return Singleton::getInstance(__CLASS__);
00023 }
00024
00025 public function makeItems(SimpleXMLElement $xmlFeed)
00026 {
00027 $result = array();
00028
00029 foreach ($xmlFeed->entry as $entry) {
00030 $feedItem = FeedItem::create((string) $entry->title);
00031
00032 if (isset($entry->content))
00033 $feedItem->setContent(
00034 $this->makeFeedItemContent(
00035 $entry->content
00036 )
00037 );
00038
00039 if (isset($entry->summary))
00040 $feedItem->setSummary(
00041 $this->makeFeedItemContent(
00042 $entry->summary
00043 )
00044 );
00045
00046 if (isset($entry->id))
00047 $feedItem->setId(
00048 $entry->id
00049 );
00050
00051 $result[] =
00052 $feedItem->setPublished(
00053 Timestamp::create(
00054 strtotime((string) $entry->updated)
00055 )
00056 )->
00057 setLink((string) $entry->link);
00058 }
00059
00060 return $result;
00061 }
00062
00063 public function toXml(FeedItem $item)
00064 {
00065 throw new UnimplementedFeatureException('implement me!');
00066 }
00067
00068 private function makeFeedItemContent($content)
00069 {
00070 $feedItemContent = FeedItemContent::create();
00071
00072 if (isset($content->attributes()->type)) {
00073 switch ((string) $content->attributes()->type) {
00074
00075 case 'text':
00076
00077 $feedItemContent->
00078 setType(
00079 new FeedItemContentType(
00080 FeedItemContentType::TEXT
00081 )
00082 );
00083
00084 break;
00085
00086 case 'html':
00087
00088 $feedItemContent->
00089 setType(
00090 new FeedItemContentType(
00091 FeedItemContentType::HTML
00092 )
00093 );
00094
00095 break;
00096
00097 case 'xhtml':
00098
00099 $feedItemContent->
00100 setType(
00101 new FeedItemContentType(
00102 FeedItemContentType::XHTML
00103 )
00104 );
00105
00106 break;
00107 }
00108 }
00109
00110 return $feedItemContent->setBody((string) $content);
00111 }
00112 }
00113 ?>