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 // We'll pull common formatting out of this for other formats
$atom = new AtomGroupNoticeFeed($this->group); $atom = new AtomGroupNoticeFeed($this->group);
// Calculate self link $self = $this->getSelfUri();
$id = $this->arg('id');
$aargs = array('format' => $this->format);
if (!empty($id)) {
$aargs['id'] = $id;
}
$self = $this->getSelfUri('ApiTimelineGroup', $aargs);
switch($this->format) { switch($this->format) {
case 'xml': case 'xml':

View File

@ -122,13 +122,7 @@ class ApiTimelineUserAction extends ApiBareAuthAction
array('nickname' => $this->user->nickname) array('nickname' => $this->user->nickname)
); );
// Calculate self link $self = $this->getSelfUri();
$id = $this->arg('id');
$aargs = array('format' => $this->format);
if (!empty($id)) {
$aargs['id'] = $id;
}
$self = $this->getSelfUri('ApiTimelineUser', $aargs);
// FriendFeed's SUP protocol // FriendFeed's SUP protocol
// Also added RSS and Atom feeds // 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); parse_str($_SERVER['QUERY_STRING'], $params);
$pstring = ''; $pstring = '';
if (!empty($params)) { if (!empty($params)) {