diff options
author | Jozef Selesi <jozefs@users.sourceforge.net> | 2008-11-23 12:41:41 +0000 |
---|---|---|
committer | Jozef Selesi <jozefs@users.sourceforge.net> | 2008-11-23 12:41:41 +0000 |
commit | 7485740d9741021b2016df80b225ae4d82b892d0 (patch) | |
tree | 9363326a831141fde66c31665af4fb2bacdec3db /modules/atom/libraries | |
parent | bdbb115296f4002186ee3a99fadc13988dd1509f (diff) |
Changed and extended the Atom library a little so that the code for creating entries and feeds has been considerably simplified and reduced.
Diffstat (limited to 'modules/atom/libraries')
-rw-r--r-- | modules/atom/libraries/Atom_Entry.php | 7 | ||||
-rw-r--r-- | modules/atom/libraries/Atom_Feed.php | 11 | ||||
-rw-r--r-- | modules/atom/libraries/Gallery_Atom_Entry.php | 39 | ||||
-rw-r--r-- | modules/atom/libraries/Gallery_Atom_Feed.php | 39 | ||||
-rw-r--r-- | modules/atom/libraries/Gallery_Atom_Link.php | 45 |
5 files changed, 131 insertions, 10 deletions
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 @@ +<?php defined("SYSPATH") or die("No direct script access."); +/** + * Gallery - a web based photo album viewer and editor + * Copyright (C) 2000-2008 Bharat Mediratta + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/** + * This class implements Gallery's specific needs for Atom entries. + * + */ +class Gallery_Atom_Entry_Core extends Atom_Entry { + function __construct() { + parent::__construct("entry"); + + /* Set feed ID and self link. */ + $this->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 @@ +<?php defined("SYSPATH") or die("No direct script access."); +/** + * Gallery - a web based photo album viewer and editor + * Copyright (C) 2000-2008 Bharat Mediratta + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/** + * This class implements Gallery's specific needs for Atom feeds. + * + */ +class Gallery_Atom_Feed_Core extends Atom_Feed { + function __construct() { + parent::__construct("feed"); + + /* Set feed ID and self link. */ + $this->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 @@ +<?php defined("SYSPATH") or die("No direct script access."); +/** + * Gallery - a web based photo album viewer and editor + * Copyright (C) 2000-2008 Bharat Mediratta + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. + */ + +class Gallery_Atom_Link_Core extends Atom_Link { + public function related_atom($relative_uri, $title="") { + if (empty($title)) { + $title = _("Get related meta data"); + } + + $this->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; + } +} |