summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZach Copley <zach@status.net>2010-03-12 01:40:52 +0000
committerZach Copley <zach@status.net>2010-03-12 01:40:52 +0000
commite1537d83871811cf3446a592e44f56d26e961afe (patch)
tree52e0cec4556352d04d71b1fc441087c8863a284e
parent78f0d6bbd21ed84733e960201c4652e69c565450 (diff)
More generalized method for calculating Atom rel="self" links
-rw-r--r--actions/apitimelinegroup.php8
-rw-r--r--actions/apitimelineuser.php8
-rw-r--r--lib/apiaction.php16
3 files changed, 17 insertions, 15 deletions
diff --git a/actions/apitimelinegroup.php b/actions/apitimelinegroup.php
index c4f8cbc65..da816c40a 100644
--- a/actions/apitimelinegroup.php
+++ b/actions/apitimelinegroup.php
@@ -107,13 +107,7 @@ class ApiTimelineGroupAction extends ApiPrivateAuthAction
// We'll pull common formatting out of this for other formats
$atom = new AtomGroupNoticeFeed($this->group);
- // Calculate self link
- $id = $this->arg('id');
- $aargs = array('format' => $this->format);
- if (!empty($id)) {
- $aargs['id'] = $id;
- }
- $self = $this->getSelfUri('ApiTimelineGroup', $aargs);
+ $self = $this->getSelfUri();
switch($this->format) {
case 'xml':
diff --git a/actions/apitimelineuser.php b/actions/apitimelineuser.php
index 5c4bcace4..11431a82c 100644
--- a/actions/apitimelineuser.php
+++ b/actions/apitimelineuser.php
@@ -122,13 +122,7 @@ class ApiTimelineUserAction extends ApiBareAuthAction
array('nickname' => $this->user->nickname)
);
- // Calculate self link
- $id = $this->arg('id');
- $aargs = array('format' => $this->format);
- if (!empty($id)) {
- $aargs['id'] = $id;
- }
- $self = $this->getSelfUri('ApiTimelineUser', $aargs);
+ $self = $this->getSelfUri();
// FriendFeed's SUP protocol
// Also added RSS and Atom feeds
diff --git a/lib/apiaction.php b/lib/apiaction.php
index cef5d1c1e..a01809ed9 100644
--- a/lib/apiaction.php
+++ b/lib/apiaction.php
@@ -1358,8 +1358,22 @@ class ApiAction extends Action
}
}
- function getSelfUri($action, $aargs)
+ /**
+ * Calculate the complete URI that called up this action. Used for
+ * Atom rel="self" links. Warning: this is funky.
+ *
+ * @return string URL a URL suitable for rel="self" Atom links
+ */
+ function getSelfUri()
{
+ $action = mb_substr(get_class($this), 0, -6); // remove 'Action'
+
+ $id = $this->arg('id');
+ $aargs = array('format' => $this->format);
+ if (!empty($id)) {
+ $aargs['id'] = $id;
+ }
+
parse_str($_SERVER['QUERY_STRING'], $params);
$pstring = '';
if (!empty($params)) {