protected function __add__($arg) { if ($arg instanceof AtomEntry) { $this->entry[] = $arg; } else { if ($arg instanceof self) { foreach ($arg->arEntry() as $entry) { $this->entry[] = $entry; } } else { if (is_implements_of($arg, "AtomInterface")) { $entry = new AtomEntry(); $entry->id($arg->atom_id()); $entry->title($arg->atom_title()); $entry->published($arg->atom_published()); $entry->updated($arg->atom_updated()); $entry->issued($arg->atom_issued()); $content = new AtomContent(); $content->value($arg->atom_content()); $entry->content($content); $summary = new AtomSummary(); $summary->value($arg->atom_summary()); $entry->summary($summary); $entry->link(new AtomLink("href=" . $arg->atom_href())); $entry->author(new AtomAuthor("name=" . $arg->atom_author())); $this->entry[] = $entry; } } } }
public function atom() { Rhaco::import("net.feed.atom.Atom"); $atom = new Atom(); $atom->title($this->title()); $atom->subtitle($this->description()); $atom->generator($this->webMaster()); $atom->updated($this->lastBuildDate()); $link = new AtomLink(); $link->href($this->link()); $atom->link($link); foreach ($this->arItem() as $item) { $entry = new AtomEntry(); $entry->title($item->title()); $entry->published($item->pubDate()); $author = new AtomAuthor(); $author->name($item->author()); $entry->author($author); $link = new AtomLink(); $link->href($item->link()); $entry->link($link); $content = new AtomContent(); $content->value($item->description()); $entry->content($content); $summary = new AtomSummary(); $summary->value($item->comments()); $entry->summary($summary); $atom->add($entry); } return $atom; /*** $src = text(' <rss version="2.0"> <channel> <title>rhaco</title> <link>http://rhaco.org</link> <description>php</description> <language>ja</language> <copyright>rhaco.org</copyright> <docs>hogehoge</docs> <lastBuildDate>2007-10-10T10:10:10+09:00</lastBuildDate> <managingEditor>tokushima</managingEditor> <pubDate>2007-10-10T10:10:10+09:00</pubDate> <webMaster>kazutaka</webMaster> <item> <title>rhaco</title> <link>http://rhaco.org</link> <description>rhaco desc</description> </item> <item> <title>everes</title> <link>http://www.everes.net</link> <description>everes desc</description> </item> </channel> </rss> '); $xml = Rss::parse($src); eq("2.0",$xml->version()); eq("rhaco",$xml->title()); eq("http://rhaco.org",$xml->link()); eq("php",$xml->description()); eq("ja",$xml->language()); eq("rhaco.org",$xml->copyright()); eq("hogehoge",$xml->docs()); eq(1191978610,$xml->lastBuildDate()); eq("Wed, 10 Oct 2007 10:10:10 +0900",$xml->fmLastBuildDate()); eq("tokushima",$xml->managingEditor()); eq(1191978610,$xml->pubDate()); eq("Wed, 10 Oct 2007 10:10:10 +0900",$xml->fmPubDate()); eq("kazutaka",$xml->webMaster()); eq(2,sizeof($xml->item())); $atom = $xml->atom(); eq(true,$atom instanceof Atom); eq("rhaco",$atom->title()); eq("php",$atom->subtitle()); eq(1191978610,$atom->updated()); eq("kazutaka",$atom->generator()); eq(2,sizeof($atom->entry())); */ }
} ///////////////////////////////////////////////////////////////////////////////////////////////////// $contents2 = dbSortedContents(array()); extract($contents2[0]); global $blog; // $atom = new AtomFeed(array('xml:lang' => 'ja')); $atom->title($blog); $atom->link("{$_SERVER['SCRIPT_NAME']}"); $atom->link("{$_SERVER['REQUEST_URI']}", 'self'); $atom->id("{$_SERVER['SCRIPT_NAME']}/feed"); $atom->updated($moddate); $atom->author(array('name' => 'nyankoPress')); $cnt = 0; foreach ($contents2 as $value) { extract($value); $entry = new AtomEntry(); $entry->title($title); $entry->link("{$_SERVER['SCRIPT_NAME']}?p={$page}"); $entry->id("{$_SERVER['SCRIPT_NAME']}/p{$page}"); $entry->summary(mb_strimwidth(strip_tags($contents), 0, 80, '…', 'utf-8')); $entry->updated($moddate); $entry->author(array('name' => $author)); $atom->addEntry($entry); $cnt++; if ($cnt >= 10) { break; } } header('Content-Type: application/atom+xml'); echo $atom->saveXml();