From: Zach Copley Date: Fri, 12 Mar 2010 01:40:52 +0000 (+0000) Subject: More generalized method for calculating Atom rel="self" links X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=e1537d83871811cf3446a592e44f56d26e961afe;p=quix0rs-gnu-social.git More generalized method for calculating Atom rel="self" links --- diff --git a/actions/apitimelinegroup.php b/actions/apitimelinegroup.php index c4f8cbc653..da816c40a9 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 5c4bcace47..11431a82ca 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 cef5d1c1e8..a01809ed98 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)) {