summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorBrion Vibber <brion@pobox.com>2010-02-12 15:32:12 -0800
committerBrion Vibber <brion@pobox.com>2010-02-12 15:32:12 -0800
commitf8a459a88adbdfc07b3fbf40c73dacc5b39ddbd9 (patch)
tree17aca874063515cffca802a0d411cc4ba98d2aae /lib
parent122c8677b7004bae4cfe7e2bd49fc1bc3187c72c (diff)
parentd6f1df8b76259acfc0d0566e8bf3610172b27884 (diff)
Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x
Diffstat (limited to 'lib')
-rw-r--r--lib/api.php2
-rw-r--r--lib/atom10feed.php70
-rw-r--r--lib/util.php3
3 files changed, 71 insertions, 4 deletions
diff --git a/lib/api.php b/lib/api.php
index 5758cc874..7a99f48e8 100644
--- a/lib/api.php
+++ b/lib/api.php
@@ -1104,7 +1104,7 @@ class ApiAction extends Action
}
}
- function serverError($msg, $code = 500, $content_type = 'json')
+ function serverError($msg, $code = 500, $content_type = 'xml')
{
$action = $this->trimmed('action');
diff --git a/lib/atom10feed.php b/lib/atom10feed.php
index ccca76a09..806a9684b 100644
--- a/lib/atom10feed.php
+++ b/lib/atom10feed.php
@@ -51,6 +51,7 @@ class Atom10Feed extends XMLStringer
public $xw;
private $namespaces;
private $authors;
+ private $subject;
private $categories;
private $contributors;
private $generator;
@@ -74,6 +75,7 @@ class Atom10Feed extends XMLStringer
function __construct($indent = true) {
parent::__construct($indent);
$this->namespaces = array();
+ $this->authors = array();
$this->links = array();
$this->entries = array();
$this->addNamespace('xmlns', 'http://www.w3.org/2005/Atom');
@@ -93,6 +95,64 @@ class Atom10Feed extends XMLStringer
$this->namespaces = array_merge($this->namespaces, $ns);
}
+ function addAuthor($name, $uri = null, $email = null)
+ {
+ $xs = new XMLStringer(true);
+
+ $xs->elementStart('author');
+
+ if (!empty($name)) {
+ $xs->element('name', null, $name);
+ } else {
+ throw new Atom10FeedException(
+ 'author element must contain a name element.'
+ );
+ }
+
+ if (!is_null($uri)) {
+ $xs->element('uri', null, $uri);
+ }
+
+ if (!is_null(email)) {
+ $xs->element('email', null, $email);
+ }
+
+ $xs->elementEnd('author');
+
+ array_push($this->authors, $xs->getString());
+ }
+
+ /**
+ * Add an Author to the feed via raw XML string
+ *
+ * @param string $xmlAuthor An XML string representation author
+ *
+ * @return void
+ */
+ function addAuthorRaw($xmlAuthor)
+ {
+ array_push($this->authors, $xmlAuthor);
+ }
+
+ function renderAuthors()
+ {
+ foreach ($this->authors as $author) {
+ $this->raw($author);
+ }
+ }
+
+ /**
+ * Add a activity feed subject via raw XML string
+ *
+ * @param string $xmlSubject An XML string representation of the subject
+ *
+ * @return void
+ */
+ function setActivitySubject($xmlSubject)
+ {
+ $this->subject = $xmlSubject;
+ }
+
function getNamespaces()
{
return $this->namespaces;
@@ -136,9 +196,9 @@ class Atom10Feed extends XMLStringer
}
}
- function addEntryRaw($entry)
+ function addEntryRaw($xmlEntry)
{
- array_push($this->entries, $entry);
+ array_push($this->entries, $xmlEntry);
}
function addEntry($entry)
@@ -164,6 +224,12 @@ class Atom10Feed extends XMLStringer
$this->validate();
$this->initFeed();
+ $this->renderAuthors();
+
+ if (!empty($this->subject)) {
+ $this->raw($this->subject);
+ }
+
$this->renderEntries();
$this->endFeed();
diff --git a/lib/util.php b/lib/util.php
index e255c5fe0..8c46f5e35 100644
--- a/lib/util.php
+++ b/lib/util.php
@@ -367,7 +367,8 @@ function common_current_user()
if ($_cur === false) {
- if (isset($_REQUEST[session_name()]) || (isset($_SESSION['userid']) && $_SESSION['userid'])) {
+ if (isset($_COOKIE[session_name()]) || isset($_GET[session_name()])
+ || (isset($_SESSION['userid']) && $_SESSION['userid'])) {
common_ensure_session();
$id = isset($_SESSION['userid']) ? $_SESSION['userid'] : false;
if ($id) {