From 7485740d9741021b2016df80b225ae4d82b892d0 Mon Sep 17 00:00:00 2001 From: Jozef Selesi Date: Sun, 23 Nov 2008 12:41:41 +0000 Subject: Changed and extended the Atom library a little so that the code for creating entries and feeds has been considerably simplified and reduced. --- modules/atom/libraries/Atom_Entry.php | 7 +++-- modules/atom/libraries/Atom_Feed.php | 11 +++---- modules/atom/libraries/Gallery_Atom_Entry.php | 39 +++++++++++++++++++++++ modules/atom/libraries/Gallery_Atom_Feed.php | 39 +++++++++++++++++++++++ modules/atom/libraries/Gallery_Atom_Link.php | 45 +++++++++++++++++++++++++++ 5 files changed, 131 insertions(+), 10 deletions(-) create mode 100644 modules/atom/libraries/Gallery_Atom_Entry.php create mode 100644 modules/atom/libraries/Gallery_Atom_Feed.php create mode 100644 modules/atom/libraries/Gallery_Atom_Link.php (limited to 'modules/atom/libraries') diff --git a/modules/atom/libraries/Atom_Entry.php b/modules/atom/libraries/Atom_Entry.php index 345755c2..70bc6e3a 100644 --- a/modules/atom/libraries/Atom_Entry.php +++ b/modules/atom/libraries/Atom_Entry.php @@ -24,8 +24,9 @@ class Atom_Entry_Core extends Atom_Base { return $this; } - public function updated($updated) { - $this->element->appendChild($this->dom->createElement("updated", $updated)); + public function updated($timestamp) { + $this->element->appendChild( + $this->dom->createElement("updated", atom::unix_to_internet_timestamp($timestamp))); return $this; } @@ -35,7 +36,7 @@ class Atom_Entry_Core extends Atom_Base { } public function content($text, $type="html") { - $content = $this->dom->createElement("content", $text); + $content = $this->dom->createElement("content", html::specialchars($text)); $content->setAttribute("type", $type); $this->element->appendChild($content); return $this; diff --git a/modules/atom/libraries/Atom_Feed.php b/modules/atom/libraries/Atom_Feed.php index 8efeb4f2..9625f951 100644 --- a/modules/atom/libraries/Atom_Feed.php +++ b/modules/atom/libraries/Atom_Feed.php @@ -25,12 +25,14 @@ class Atom_Feed_Core extends Atom_Base { } public function title($title) { + /* @todo Add optional type argument that defaults to "text" */ $this->element->appendChild($this->dom->createElement("title", $title)); return $this; } - public function updated($updated) { - $this->element->appendChild($this->dom->createElement("updated", $updated)); + public function updated($timestamp) { + $this->element->appendChild( + $this->dom->createElement("updated", atom::unix_to_internet_timestamp($timestamp))); return $this; } @@ -42,9 +44,4 @@ class Atom_Feed_Core extends Atom_Base { /* Create new empty entry. */ return $this->add_child("Atom_Entry", "entry"); } - - public function append_entry($atom_entry) { - /* Append an exising entry. */ - $this->element->appendChild($atom_entry->get_element()); - } } diff --git a/modules/atom/libraries/Gallery_Atom_Entry.php b/modules/atom/libraries/Gallery_Atom_Entry.php new file mode 100644 index 00000000..4b035eed --- /dev/null +++ b/modules/atom/libraries/Gallery_Atom_Entry.php @@ -0,0 +1,39 @@ +id(atom::get_absolute_url()); + $this->link() + ->rel("self") + ->href(atom::get_absolute_url()); + } + + public function link() { + return $this->add_child("Gallery_Atom_Link", "link"); + } +} diff --git a/modules/atom/libraries/Gallery_Atom_Feed.php b/modules/atom/libraries/Gallery_Atom_Feed.php new file mode 100644 index 00000000..31f93ec6 --- /dev/null +++ b/modules/atom/libraries/Gallery_Atom_Feed.php @@ -0,0 +1,39 @@ +id(atom::get_absolute_url()); + $this->link() + ->rel("self") + ->href(atom::get_absolute_url()); + } + + public function link() { + return $this->add_child("Gallery_Atom_Link", "link"); + } +} diff --git a/modules/atom/libraries/Gallery_Atom_Link.php b/modules/atom/libraries/Gallery_Atom_Link.php new file mode 100644 index 00000000..abcd3bc9 --- /dev/null +++ b/modules/atom/libraries/Gallery_Atom_Link.php @@ -0,0 +1,45 @@ +rel("related") + ->type(rest::ATOM) + ->title($title) + ->href(sprintf("%s%s", atom::get_base_url(), $relative_uri)); + return $this; + } + + public function related_image($relative_uri, $title="", $image_type="jpeg") { + if (empty($title)) { + $title = _("Get related image"); + } + + $this->rel("related") + ->type("image/" . $image_type) + ->title($title) + ->href(sprintf("%s%s", atom::get_base_url(), $relative_uri)); + return $this; + } +} -- cgit v1.2.3