Fix 55ch cancer; can now see next page of posts, ?/recent uses templating system
This commit is contained in:
parent
8d0f1bf4ad
commit
ef7556194c
@ -2236,6 +2236,7 @@ function mod_recent_posts($lim) {
|
|||||||
error($config['error']['noaccess']);
|
error($config['error']['noaccess']);
|
||||||
|
|
||||||
$limit = (is_numeric($lim))? $lim : 25;
|
$limit = (is_numeric($lim))? $lim : 25;
|
||||||
|
$last_time = (isset($_GET['last']) && is_numeric($_GET['last'])) ? $_GET['last'] : 0;
|
||||||
|
|
||||||
$mod_boards = array();
|
$mod_boards = array();
|
||||||
$boards = listBoards();
|
$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']);
|
$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
|
// 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 = preg_replace('/UNION ALL $/', ') AS `all_posts` WHERE (`time` < :last_time OR NOT :last_time) ORDER BY `time` DESC LIMIT ' . $limit, $query);
|
||||||
$query = query($query) or error(db_error());
|
$query = prepare($query);
|
||||||
|
$query->bindValue(':last_time', $last_time);
|
||||||
|
$query->execute() or error(db_error($query));
|
||||||
$posts = $query->fetchAll(PDO::FETCH_ASSOC);
|
$posts = $query->fetchAll(PDO::FETCH_ASSOC);
|
||||||
|
|
||||||
$body = '<h4>Viewing last '.$limit.' posts</h4>
|
foreach ($posts as &$post) {
|
||||||
<p>View <a href="?/recent/25"> 25 </a>|<a href="?/recent/50"> 50 </a>|<a href="?/recent/100"> 100 </a></p>
|
|
||||||
<a href="javascript:void(0)" id="erase-local-data" style="float:right; clear:both">Erase local data</a></div>';
|
|
||||||
foreach ($posts as $post) {
|
|
||||||
openBoard($post['board']);
|
openBoard($post['board']);
|
||||||
if (!$post['thread']) {
|
if (!$post['thread']) {
|
||||||
// Still need to fix this:
|
// Still need to fix this:
|
||||||
$po = new Thread($post, '?/', $mod, false);
|
$po = new Thread($post, '?/', $mod, false);
|
||||||
$string = $po->build(true);
|
$post['built'] = $po->build(true);
|
||||||
$string = '<div class="post-wrapper" data-board="'.$post['board'].'"><hr/><a class="eita-link" id="eita-'.$post['board'].'-'.$post['id'].'" href="?/'.$post['board'].'/res/'.$post['id'].'.html#'.$post['id'].'">/'.$post['board'].'/'.$post['id'].'</a><br>' . $string;
|
|
||||||
} else {
|
} else {
|
||||||
$po = new Post($post, '?/', $mod);
|
$po = new Post($post, '?/', $mod);
|
||||||
$string = $po->build(true);
|
$post['built'] = $po->build(true);
|
||||||
$string = '<div class="post-wrapper" data-board="'.$post['board'].'"><hr/><a class="eita-link" id="eita-'.$post['board'].'-'.$post['id'].'" href="?/'.$post['board'].'/res/'.$post['thread'].'.html#'.$post['id'].'">/'.$post['board'].'/'.$post['id'].'</a><br>' . $string;
|
|
||||||
}
|
}
|
||||||
$body .= $string . '</div>';
|
$last_time = $post['time'];
|
||||||
}
|
}
|
||||||
|
|
||||||
echo Element('page.html', array(
|
echo mod_page(_('Recent posts'), 'mod/recent_posts.html', array(
|
||||||
'config' => $config,
|
'posts' => $posts,
|
||||||
'mod' => $mod,
|
'limit' => $limit,
|
||||||
'hide_dashboard_link' => true,
|
'last_time' => $last_time
|
||||||
'title' => _('Recent posts'),
|
|
||||||
'subtitle' => '',
|
|
||||||
'nojavascript' => false,
|
|
||||||
'is_recent_posts' => true,
|
|
||||||
'body' => $body
|
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -1,6 +1,14 @@
|
|||||||
<script src="{{ config.additional_javascript_url }}js/mod/recent_posts.js"></script>
|
<script src="{{ config.additional_javascript_url }}js/mod/recent_posts.js"></script>
|
||||||
{% if posts|count %}
|
{% if not posts|count %}
|
||||||
<p style="text-align:center" class="unimportant">({% trans 'There are no active posts.' %})</p>
|
<p style="text-align:center" class="unimportant">({% trans 'There are no active posts.' %})</p>
|
||||||
{% else %}
|
{% else %}
|
||||||
|
<h4>Viewing last {{ limit|e }} posts</h4>
|
||||||
|
<p>View <a href="?/recent/25"> 25 </a>|<a href="?/recent/50"> 50 </a>|<a href="?/recent/100"> 100 </a></p>
|
||||||
|
<a href="javascript:void(0)" id="erase-local-data" style="float:right; clear:both">Erase local data</a></div>
|
||||||
|
{% for post in posts %}
|
||||||
|
<div class="post-wrapper" data-board="{{ post.board }}"><hr/><a class="eita-link" id="eita-{{ post.board }}-{{ post.id or post.thread }}" href="?/{{ post.board }}/res/{{ post.id or post.thread }}.html#{{ post.id or post.thread }}">/{{ post.board }}/{{ post.id }}</a><br>
|
||||||
|
{{ post.built }}
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
<a href="/mod.php?/recent/{{ limit }}&last={{ last_time }}">Next {{ limit }} posts</a>
|
||||||
|
Loading…
Reference in New Issue
Block a user