hash = md5(openssl_random_pseudo_bytes(5)); $this->_struct = ' { "origin" : {"type":"string", "size":64, "mandatory":true, "key":true }, "node" : {"type":"string", "size":96, "mandatory":true, "key":true }, "nodeid" : {"type":"string", "size":96, "mandatory":true, "key":true }, "aname" : {"type":"string", "size":128 }, "aid" : {"type":"string", "size":128 }, "aemail" : {"type":"string", "size":64 }, "title" : {"type":"text" }, "content" : {"type":"text" }, "contentcleaned" : {"type":"text" }, "commentplace" : {"type":"string", "size":128 }, "published" : {"type":"date" }, "updated" : {"type":"date" }, "delay" : {"type":"date" }, "lat" : {"type":"string", "size":128 }, "lon" : {"type":"string", "size":128 }, "links" : {"type":"text" }, "picture" : {"type":"int", "size":4 }, "tags" : {"type":"text" }, "hash" : {"type":"string", "size":128 } }'; parent::__construct(); } private function getContent($contents) { $content = ''; foreach($contents as $c) { switch($c->attributes()->type) { case 'html': case 'xhtml': $dom = new \DOMDocument('1.0', 'utf-8'); $import = dom_import_simplexml($c->children()); if($import == null) { $import = dom_import_simplexml($c); } $element = $dom->importNode($import, true); $dom->appendChild($element); return (string)$dom->saveHTML(); break; case 'text': default : $content = (string)$c; break; } } return $content; } public function set($item, $from, $delay = false, $node = false) { if($item->item) $entry = $item->item; else $entry = $item; $this->__set('origin', $from); if($node) $this->__set('node', $node); else $this->__set('node', (string)$item->attributes()->node); $this->__set('nodeid', (string)$entry->attributes()->id); if($entry->entry->id) $this->__set('nodeid', (string)$entry->entry->id); // Get some informations on the author if($entry->entry->author->name) $this->__set('aname', (string)$entry->entry->author->name); if($entry->entry->author->uri) $this->__set('aid', substr((string)$entry->entry->author->uri, 5)); if($entry->entry->author->email) $this->__set('aemail', (string)$entry->entry->author->email); // Non standard support if($entry->entry->source && $entry->entry->source->author->name) $this->__set('aname', (string)$entry->entry->source->author->name); if($entry->entry->source && $entry->entry->source->author->uri) $this->__set('aid', substr((string)$entry->entry->source->author->uri, 5)); $this->__set('title', (string)$entry->entry->title); // Content if($entry->entry->summary && (string)$entry->entry->summary != '') $summary = '
'.(string)$entry->entry->summary.'
'; else $summary = ''; if($entry->entry && $entry->entry->content) { $content = $this->getContent($entry->entry->content); } elseif($summary == '') $content = __(''); else $content = ''; $content = $summary.$content; if($entry->entry->updated) $this->__set('updated', (string)$entry->entry->updated); else $this->__set('updated', gmdate(DATE_ISO8601)); if($entry->entry->published) $this->__set('published', (string)$entry->entry->published); elseif($entry->entry->updated) $this->__set('published', (string)$entry->entry->updated); else $this->__set('published', gmdate(DATE_ISO8601)); if($delay) $this->__set('delay', $delay); $contentimg = $this->setAttachements($entry->entry->link); // Tags parsing if($entry->entry->category) { $this->tags = array(); if($entry->entry->category->count() == 1 && isset($entry->entry->category->attributes()->term)) array_push($this->tags, (string)$entry->entry->category->attributes()->term); else foreach($entry->entry->category as $cat) array_push($this->tags, (string)$cat->attributes()->term); } if(!empty($this->tags)) $this->__set('tags', serialize($this->tags)); if($contentimg != '') $content .= '