More generalized method for calculating Atom rel="self" links

This commit is contained in:
Zach Copley 2010-03-12 01:40:52 +00:00
parent 78f0d6bbd2
commit e1537d8387
3 changed files with 17 additions and 15 deletions

View File

@ -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':

View File

@ -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

View File

@ -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)) {