diff options
-rw-r--r-- | classes/Notice.php | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/classes/Notice.php b/classes/Notice.php index 676e4cb54..90ea811b6 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -1615,15 +1615,30 @@ class Notice extends Memcached_DataObject // @fixme check this logic - if ($this->isLocal() && !empty($cur) && $cur->id == $this->profile_id) { - $relEditUrl = common_local_url('ApiStatusesShow', array('id' => $this->id, - 'format' => 'atom')); + if ($this->isLocal()) { - if (Event::handle('StartActivityRelEdit', array(&$this, &$xs, &$relEditUrl))) { - $xs->element('link', array('rel' => 'edit', + $selfUrl = common_local_url('ApiStatusesShow', array('id' => $this->id, + 'format' => 'atom')); + + if (Event::handle('StartActivityRelSelf', array(&$this, &$xs, &$selfUrl))) { + $xs->element('link', array('rel' => 'self', 'type' => 'application/atom+xml', - 'href' => $relEditUrl)); - Event::handle('EndActivityRelEdit', array(&$this, &$xs, $relEditUrl)); + 'href' => $selfUrl)); + Event::handle('EndActivityRelSelf', array(&$this, &$xs, $selfUrl)); + } + + if (!empty($cur) && $cur->id == $this->profile_id) { + + // note: $selfUrl may have been changed by a plugin + $relEditUrl = common_local_url('ApiStatusesShow', array('id' => $this->id, + 'format' => 'atom')); + + if (Event::handle('StartActivityRelEdit', array(&$this, &$xs, &$relEditUrl))) { + $xs->element('link', array('rel' => 'edit', + 'type' => 'application/atom+xml', + 'href' => $relEditUrl)); + Event::handle('EndActivityRelEdit', array(&$this, &$xs, $relEditUrl)); + } } } |