diff options
author | Brion Vibber <brion@pobox.com> | 2010-02-12 15:32:12 -0800 |
---|---|---|
committer | Brion Vibber <brion@pobox.com> | 2010-02-12 15:32:12 -0800 |
commit | f8a459a88adbdfc07b3fbf40c73dacc5b39ddbd9 (patch) | |
tree | 17aca874063515cffca802a0d411cc4ba98d2aae /lib | |
parent | 122c8677b7004bae4cfe7e2bd49fc1bc3187c72c (diff) | |
parent | d6f1df8b76259acfc0d0566e8bf3610172b27884 (diff) |
Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x
Diffstat (limited to 'lib')
-rw-r--r-- | lib/api.php | 2 | ||||
-rw-r--r-- | lib/atom10feed.php | 70 | ||||
-rw-r--r-- | lib/util.php | 3 |
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) { |