X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Freplies.php;h=529ce7e980eee6ca0c8eaddab5472568ac1198bf;hb=ed440c734e45de01183d885e8750c173fc20a726;hp=29d01c4c9d9fff6209cc85a592f3db223c88c927;hpb=8d3ec9c92076e172e5871e3603c143333d73ac3c;p=quix0rs-gnu-social.git diff --git a/actions/replies.php b/actions/replies.php index 29d01c4c9d..529ce7e980 100644 --- a/actions/replies.php +++ b/actions/replies.php @@ -38,67 +38,69 @@ 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); - + + $this->show_replies($user); + 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) { - $this->views_menu(); - } - - function show_replies($profile) { + $cur = common_current_user(); - $reply = new Reply(); + if ($cur && $cur->id == $user->id) { + common_notice_form('replies'); + } + + $this->views_menu(); - $reply->profile_id = $profile->id; + $this->show_feeds_list(array(0=>array('href'=>common_local_url('repliesrss', array('nickname' => $user->nickname)), + 'type' => 'rss', + 'version' => 'RSS 1.0', + 'item' => 'repliesrss'))); + } - $reply->orderBy('created DESC'); + function show_replies($user) { $page = ($this->arg('page')) ? ($this->arg('page')+0) : 1; - $reply->limit((($page-1)*NOTICES_PER_PAGE), NOTICES_PER_PAGE + 1); - - $cnt = $reply->find(); - - if ($cnt > 0) { - common_element_start('ul', array('id' => 'replies')); - for ($i = 0; $i < min($cnt, NOTICES_PER_PAGE); $i++) { - if ($reply->fetch()) { - $notice = new Notice(); - $notice->id = $reply->notice_id; - $result = $notice->find(true); - if (!$result) { - continue; - } - $this->show_reply($notice, $reply->replied_id); - } else { - // shouldn't happen! + $notice = $user->getReplies(($page-1) * NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1); + + $cnt = 0; + + if ($notice) { + common_element_start('ul', array('id' => 'notices')); + while ($notice->fetch()) { + $cnt++; + if ($cnt > NOTICES_PER_PAGE) { break; } + $this->show_notice($notice); } common_element_end('ul'); } - + common_pagination($page > 1, $cnt > NOTICES_PER_PAGE, - $page, 'all', array('nickname' => $profile->nickname)); + $page, 'replies', array('nickname' => $user->nickname)); } }