X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Freplies.php;h=ecf737eb1280e5fefe0bcc87ed800e33c6a0fea6;hb=912e9b3f4ff3e43838e44e9ab804765e9573206f;hp=9b9da8cbe603a52a01d09d10d9f1f0db23a5c5b1;hpb=b9eedf6195d64f8c8904fdfd99ae528f1063af4b;p=quix0rs-gnu-social.git diff --git a/actions/replies.php b/actions/replies.php index 9b9da8cbe6..ecf737eb12 100644 --- a/actions/replies.php +++ b/actions/replies.php @@ -38,51 +38,68 @@ class RepliesAction extends StreamAction { $profile = $user->getProfile(); if (!$profile) { - common_server_error(_t('User record exists without profile.')); + common_server_error(_('User has no profile.')); return; } # Looks like we're good; show the header - common_show_header(_t("Replies to ") . $profile->nickname, + common_show_header(sprintf(_("Replies to %s"), $profile->nickname), array($this, 'show_header'), $user, array($this, 'show_top')); - + $this->show_replies($profile); - + common_show_footer(); } - + + function no_such_user() { + common_user_error(_('No such user.')); + } + function show_header($user) { common_element('link', array('rel' => 'alternate', 'href' => common_local_url('repliesrss', array('nickname' => $user->nickname)), 'type' => 'application/rss+xml', - 'title' => _t('Feed for replies to ') . $user->nickname)); + 'title' => sprintf(_('Feed for replies to %s'), $user->nickname))); } function show_top($user) { + $cur = common_current_user(); + + if ($cur && $cur->id == $user->id) { + common_notice_form('replies'); + } + $this->views_menu(); } - + function show_replies($profile) { $reply = new Reply(); - $notice = new Notice(); $reply->profile_id = $profile->id; + $reply->orderBy('modified DESC'); + $page = ($this->arg('page')) ? ($this->arg('page')+0) : 1; + $reply->limit((($page-1)*NOTICES_PER_PAGE), NOTICES_PER_PAGE + 1); - $reply->joinAdd($notice, 'INNER', NULL, 'notice_id'); - + $cnt = $reply->find(); if ($cnt > 0) { common_element_start('ul', array('id' => 'notices')); for ($i = 0; $i < min($cnt, NOTICES_PER_PAGE); $i++) { if ($reply->fetch()) { - $this->show_notice($notice, $reply->replied_id); + $notice = new Notice(); + $notice->id = $reply->notice_id; + $result = $notice->find(true); + if (!$result) { + continue; + } + $this->show_notice($notice); } else { // shouldn't happen! break; @@ -90,7 +107,7 @@ class RepliesAction extends StreamAction { } common_element_end('ul'); } - + common_pagination($page > 1, $cnt > NOTICES_PER_PAGE, $page, 'replies', array('nickname' => $profile->nickname)); }