summaryrefslogtreecommitdiff
path: root/modules/atom
diff options
context:
space:
mode:
Diffstat (limited to 'modules/atom')
-rw-r--r--modules/atom/libraries/Atom_Entry.php7
-rw-r--r--modules/atom/libraries/Atom_Feed.php11
-rw-r--r--modules/atom/libraries/Gallery_Atom_Entry.php39
-rw-r--r--modules/atom/libraries/Gallery_Atom_Feed.php39
-rw-r--r--modules/atom/libraries/Gallery_Atom_Link.php45
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;
+ }
+}