* @link http://status.net/
*/
-if (!defined('STATUSNET') && !defined('LACONICA')) {
- exit(1);
-}
+if (!defined('GNUSOCIAL')) { exit(1); }
-require_once INSTALLDIR.'/lib/personalgroupnav.php';
require_once INSTALLDIR.'/lib/noticelist.php';
-require_once INSTALLDIR.'/lib/feedlist.php';
/**
* Show a single notice
$this->notice = $this->getNotice();
- $cur = common_current_user();
-
- if (!empty($cur)) {
- $curProfile = $cur->getProfile();
- } else {
- $curProfile = null;
- }
-
- if (!$this->notice->inScope($curProfile)) {
+ if (!$this->notice->inScope($this->scoped)) {
// TRANS: Client exception thrown when trying a view a notice the user has no access to.
throw new ClientException(_('Not available.'), 403);
}
$this->profile = $this->notice->getProfile();
- if (empty($this->profile)) {
+ if (!$this->profile instanceof Profile) {
// TRANS: Server error displayed trying to show a notice without a connected profile.
$this->serverError(_('Notice has no profile.'), 500);
}
- $this->user = User::getKV('id', $this->profile->id);
+ try {
+ $this->user = $this->profile->getUser();
+ } catch (NoSuchUserException $e) {
+ // FIXME: deprecate $this->user stuff in extended classes
+ $this->user = null;
+ }
try {
$this->avatar = $this->profile->getAvatar(AVATAR_PROFILE_SIZE);
{
parent::handle();
- if ($this->boolean('ajax')) {
+ if (StatusNet::isAjax()) {
$this->showAjax();
} else {
- if ($this->notice->is_local == Notice::REMOTE) {
- try {
- $target = $this->notice->getUrl();
- if ($target != $this->selfUrl()) {
- common_redirect($target, 301);
- }
- } catch (InvalidUrlException $e) {
- common_debug('ShownoticeAction could not redirect to remote notice with id='.$this->notice->id . '. Falling back to showPage().');
- }
- }
$this->showPage();
}
}
* @link http://status.net/
*/
-if (!defined('STATUSNET')) {
- // This check helps protect against security problems;
- // your code file can't be executed directly from the web.
- exit(1);
-}
+if (!defined('GNUSOCIAL')) { exit(1); }
/**
* widget for displaying a single notice
/**
* show the link to the main page for the notice
*
- * Displays a link to the page for a notice, with "relative" time. Tries to
- * get remote notice URLs correct, but doesn't always succeed.
+ * Displays a local link to the rendered notice, with "relative" time.
*
* @return void
*/
function showNoticeLink()
{
- $noticeurl = $this->notice->getUrl();
-
- // above should always return an URL
-
- assert(!empty($noticeurl));
-
$this->out->elementStart('a', array('rel' => 'bookmark',
'class' => 'timestamp',
- 'href' => $noticeurl));
+ 'href' => $this->notice->getLocalUrl()));
$this->out->element('time', array('class' => 'dt-published',
'datetime' => common_date_iso8601($this->notice->created),
// TRANS: Timestamp title (tooltip text) for NoticeListItem