function WriteStdEntryLinks(FeedEntry $entry, $indent) { $indent = $this->Indent($indent); $result = ''; $href = $this->Quote($entry->Permalink()); if ($href) { $result .= $indent . '<link rel="alternate" type="text/html" href="' . $href . "\" />\n"; } $href = $this->Quote($entry->CommentsURL()); if ($href) { $result .= $indent . '<link rel="related" type="text/html" title="Comments" href="' . $href . "\" />\n"; } return $result; }
static function import(SimpleXMLElement $el) { $fd = new AtomFeedData(); if (isset($el->link)) { $fd->link = (string) $el->link['href']; } foreach ($el->children() as $v) { if ($v->getName() == 'entry') { $fe = new FeedEntry((string) $v->title, (string) $v->link['href'], (string) $v->content); foreach ($v->children() as $e) { if ($e->getName() == "updated") { $fe->last_update = (string) $e; } elseif ($e->getName() == "category") { $fe->addCategory((string) $e['term'], (string) $e['scheme']); } elseif ($e->getName() == "source") { $fe->setSource((string) $e['title'], (string) $e['url']); } elseif ($e->getName() == "link") { $fe->addEnclosure($e['href'], $e['type'], $e['length']); } elseif ($e->getName() == "id") { $fe->guid = (string) $e; } elseif ($e->getName() == "author") { $fe->author = (string) $e->name; } elseif ($e->getName() == "link") { $fe->line = (string) $el['href']; } elseif ($e->getName() == "summary") { $fe->description = (string) $e; } elseif (!in_array($e->getName(), array("published"))) { $fe->{$e->getName()} = (string) $e; } } if (!$fe->isReady()) { throw new FeedException('Not all required fields are filled-in'); } $fd->addEntry($fe); unset($fe); } else { $fd->{(string) $v->getName()} = (string) $v; } } if (!$fd->isReady()) { throw new Exception('Not all required feilds of FeedData are filled-in'); } return $fd; }
static function import(SimpleXMLElement $el) { $fd = new RSSFeedData(); if (isset($el->image) && isset($el->image->url)) { $fd->image = (string) $el->image->url; } if (isset($el->cloud)) { $fd->cloud = array('domain' => (string) $el->cloud['domain'], 'port' => $el->cloud['port'], 'path' => $el->cloud['path'], 'procedure' => $el->cloud['registerProcedure'], 'protocol' => $el->cloud['protocol']); } if (isset($el->textInput)) { $fd->setTextInput($el->textInput->title, $el->textInput->description, $el->textInput->name, $el->textInput->link); } if (isset($el->skipHours)) { foreach ($el->skipHours->children() as $v) { if ($v->getName() == "hour") { $fd->addSkipHours((string) $v); } } } if (isset($el->skipDays)) { foreach ($el->skipDays->children() as $v) { if ($v->getName() == "day") { $df->addSkipDays((string) $v); } } } foreach ($el->children() as $v) { if ($v->getName() == 'item') { if (isset($v->description)) { $_content = (string) $v->description; } else { $_c = $v->children('content', true); $_content = (string) $_c->encoded; unset($_c); } $fe = new FeedEntry((string) $v->title, (string) $v->link, $_content); unset($_content); foreach ($v->children() as $e) { if ($e->getName() == "pubDate") { $fe->last_update = (string) $e; } elseif ($e->getName() == "category") { $fe->addCategory((string) $e, $e['domain']); } elseif ($e->getName() == "source") { $fe->setSource((string) $e, $e['url']); } elseif ($e->getName() == "enclosure") { $fe->addEnclosure($e['url'], $e['type'], $e['length']); } else { $fe->{$e->getName()} = (string) $e; } } if (!$fe->isReady()) { throw new FeedException('Not all required fields are filled-in'); } $fd->addEntry($fe); unset($fe); } elseif (in_array($v->getName(), array('image', 'cloud', 'textInput', 'skipHours', 'skipDays'))) { continue; } else { $fd->{(string) $v->getName()} = (string) $v; } } if (!$fd->isReady()) { throw new Exception('Not all required feilds of FeedData are filled-in'); } return $fd; }
<?php require_once 'feeder.php'; $proger = new FeedPerson(); $proger->Name('Proger_XP'); $proger->EMail('*****@*****.**'); $proger->URL('http://proger.i-forge.net'); $camilo = new FeedPerson(); $camilo->Name('Camilo'); $camilo->URL('http://camilomm.deviantart.com'); $feeder = new Feeder(); $feeder->Channel()->Title()->Add('text', 'My Feed'); $feeder->Channel()->Author(0, $proger); $feeder->Channel()->Description()->Add('text', 'Just another PHP Feed'); $feeder->Channel()->BaseURL('http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['REQUEST_URI']) . '/'); $entry = new FeedEntry(); $entry->Title()->Add('text', 'My first post'); $entry->Updated(strtotime('22 Jan 2011')); $entry->Author(0, $proger); $entry->Content()->Add('text', 'Thinking about something to write...'); $entry->Content()->Add('html', 'Thinking about <em>something</em> to write…'); $feeder->Entry(0, $entry); $entry = new FeedEntry(); $entry->Title()->Add('text', 'Another filler'); $entry->Updated(strtotime('23 May 2012')); $entry->Author(0, $proger); $entry->Contributor(0, $camilo); $entry->Content()->Add('html', 'Why? Because he\'s my friend <img src="smile.png" />'); $feeder->Entry(1, $entry); $output = new AtomFeed(); $output->Output($feeder);
$s->AddWhere("coalesce(cb.Blocked,0)", 1, "<>"); } // Make sure whispers don't come through if ($Context->Session->UserID > 0) { $s->AddWhere("d.AuthUserID = " . $Context->Session->UserID . " or d.WhisperUserID = " . $Context->Session->UserID . " or d.WhisperUserID", 0, "=", "and", "", 1, 1); $s->EndWhereGroup(); } else { $s->AddWhere("d.WhisperUserID", 0, "=", "and", "", 1, 1); $s->AddWhere("d.WhisperUserID", 0, "=", "or", "", 0); $s->AddWhere("d.WhisperUserID", "null", "is", "or", "", 0); $s->EndWhereGroup(); } $s->AddOrderBy("d.DateLastActive", "", "desc"); $s->AddLimit(0, agDISCUSSIONS_PER_FEED); $FeedData = $Context->Database->Select($Context, $s, "Feed", "GetData", "An error occurred while retrieving the feed."); $FeedEntry = new FeedEntry(); if ($FeedData) { $WritePage = 0; // Set the content-type so it delivers properly header("Content-type: text/xml\n"); $FirstRow = 1; if ($Context->Database->RowCount($FeedData) == 0) { if ($Type == "atom") { // Begin writing the feed if ($Type == "atom") { echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n <feed xmlns=\"http://www.w3.org/2005/Atom\">\r\n <title type=\"text\">" . agAPPLICATION_TITLE . "</title>\r\n <updated>" . FixDate() . "</updated>\r\n <id>http://" . agDOMAIN . "</id>\r\n <link rel=\"alternate\" type=\"text/html\" hreflang=\"en\" href=\"" . agDOMAIN . "\"/>\r\n <link rel=\"self\" type=\"application/atom+xml\" href=\"" . AppendFolder(agDOMAIN, "feeds/?Type=atom") . "\"/>\r\n <generator uri=\"http://getvanilla.com/\" version=\"" . agVANILLA_VERSION . "\">\r\n Lussumo Vanilla\r\n </generator>"; } } } else { // Loop through entries while ($row = $Context->Database->GetRow($FeedData)) {