From ef7556194cfeac6fd52a115a9162e611f322aaa4 Mon Sep 17 00:00:00 2001 From: 8chan Date: Sat, 19 Jul 2014 18:41:48 +0000 Subject: [PATCH 1/3] Fix 55ch cancer; can now see next page of posts, ?/recent uses templating system --- inc/mod/pages.php | 33 +++++++++++++-------------------- templates/mod/recent_posts.html | 12 ++++++++++-- 2 files changed, 23 insertions(+), 22 deletions(-) diff --git a/inc/mod/pages.php b/inc/mod/pages.php index 801ad9eb..292d36a2 100644 --- a/inc/mod/pages.php +++ b/inc/mod/pages.php @@ -2236,6 +2236,7 @@ function mod_recent_posts($lim) { error($config['error']['noaccess']); $limit = (is_numeric($lim))? $lim : 25; + $last_time = (isset($_GET['last']) && is_numeric($_GET['last'])) ? $_GET['last'] : 0; $mod_boards = array(); $boards = listBoards(); @@ -2256,37 +2257,29 @@ function mod_recent_posts($lim) { $query .= sprintf('SELECT *, %s AS `board` FROM ``posts_%s`` UNION ALL ', $pdo->quote($board['uri']), $board['uri']); } // Remove the last "UNION ALL" seperator and complete the query - $query = preg_replace('/UNION ALL $/', ') AS `all_posts` ORDER BY `time` DESC LIMIT ' . $limit, $query); - $query = query($query) or error(db_error()); + $query = preg_replace('/UNION ALL $/', ') AS `all_posts` WHERE (`time` < :last_time OR NOT :last_time) ORDER BY `time` DESC LIMIT ' . $limit, $query); + $query = prepare($query); + $query->bindValue(':last_time', $last_time); + $query->execute() or error(db_error($query)); $posts = $query->fetchAll(PDO::FETCH_ASSOC); - $body = '

Viewing last '.$limit.' posts

-

View 25 | 50 | 100

- Erase local data'; - foreach ($posts as $post) { + foreach ($posts as &$post) { openBoard($post['board']); if (!$post['thread']) { // Still need to fix this: $po = new Thread($post, '?/', $mod, false); - $string = $po->build(true); - $string = '

/'.$post['board'].'/'.$post['id'].'
' . $string; + $post['built'] = $po->build(true); } else { $po = new Post($post, '?/', $mod); - $string = $po->build(true); - $string = '

/'.$post['board'].'/'.$post['id'].'
' . $string; + $post['built'] = $po->build(true); } - $body .= $string . '
'; + $last_time = $post['time']; } - echo Element('page.html', array( - 'config' => $config, - 'mod' => $mod, - 'hide_dashboard_link' => true, - 'title' => _('Recent posts'), - 'subtitle' => '', - 'nojavascript' => false, - 'is_recent_posts' => true, - 'body' => $body + echo mod_page(_('Recent posts'), 'mod/recent_posts.html', array( + 'posts' => $posts, + 'limit' => $limit, + 'last_time' => $last_time ) ); diff --git a/templates/mod/recent_posts.html b/templates/mod/recent_posts.html index 4a2f9baa..7e38881b 100644 --- a/templates/mod/recent_posts.html +++ b/templates/mod/recent_posts.html @@ -1,6 +1,14 @@ -{% if posts|count %} +{% if not posts|count %}

({% trans 'There are no active posts.' %})

{% else %} - +

Viewing last {{ limit|e }} posts

+

View 25 | 50 | 100

+ Erase local data
+ {% for post in posts %} +

/{{ post.board }}/{{ post.id }}
+ {{ post.built }} +
+ {% endfor %} {% endif %} +Next {{ limit }} posts From 18f158e2d57cb91f0675654975536b446afee64b Mon Sep 17 00:00:00 2001 From: Fredrick Brennan Date: Sat, 19 Jul 2014 18:47:34 +0000 Subject: [PATCH 2/3] Forgot some |e --- templates/mod/recent_posts.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/mod/recent_posts.html b/templates/mod/recent_posts.html index 7e38881b..7ed80f21 100644 --- a/templates/mod/recent_posts.html +++ b/templates/mod/recent_posts.html @@ -11,4 +11,4 @@ {% endfor %} {% endif %} -Next {{ limit }} posts +Next {{ limit }} posts From 48f99deaa56cd7a4af9eeac3b5c981e342816f95 Mon Sep 17 00:00:00 2001 From: 8chan Date: Mon, 21 Jul 2014 16:54:51 +0000 Subject: [PATCH 3/3] Fix post linking bug in ?/recent --- templates/mod/recent_posts.html | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/templates/mod/recent_posts.html b/templates/mod/recent_posts.html index 7ed80f21..b9c2c0cc 100644 --- a/templates/mod/recent_posts.html +++ b/templates/mod/recent_posts.html @@ -6,7 +6,12 @@

View 25 | 50 | 100

Erase local data {% for post in posts %} -

/{{ post.board }}/{{ post.id }}
+ {% if not post.thread %} + {% set thread = post.id %} + {% else %} + {% set thread = post.thread %} + {% endif %} +

/{{ post.board }}/{{ post.id }}
{{ post.built }}
{% endfor %}