[ticket/15041] Add pagination to orphaned attachments

PHPBB3-15041
This commit is contained in:
Rubén Calvo 2017-10-17 18:45:56 +02:00
parent ee9eb586dd
commit 3f95d49fee
2 changed files with 56 additions and 3 deletions

View file

@ -329,6 +329,17 @@
<fieldset class="tabulated"> <fieldset class="tabulated">
<legend>{L_TITLE}</legend> <legend>{L_TITLE}</legend>
<div class="pagination top-pagination">
<!-- IF .pagination or TOTAL_FILES -->
{L_NUMBER_FILES}{L_COLON} {TOTAL_FILES} &bull; {L_TOTAL_SIZE}{L_COLON} {TOTAL_SIZE}
<!-- IF .pagination -->
&bull; <!-- INCLUDE pagination.html -->
<!-- ELSE -->
&bull; {PAGE_NUMBER}
<!-- ENDIF -->
<!-- ENDIF -->
</div>
<table class="table1 zebra-table fixed-width-table"> <table class="table1 zebra-table fixed-width-table">
<thead> <thead>
<tr> <tr>
@ -359,7 +370,16 @@
</tbody> </tbody>
</table> </table>
<br /> <!-- IF TOTAL_FILES -->
<div class="pagination">
{L_NUMBER_FILES}{L_COLON} {TOTAL_FILES} &bull; {L_TOTAL_SIZE}{L_COLON} {TOTAL_SIZE}
<!-- IF .pagination -->
&bull; <!-- INCLUDE pagination.html -->
<!-- ELSE -->
&bull; {PAGE_NUMBER}
<!-- ENDIF -->
</div>
<!-- ENDIF -->
<p class="submit-buttons"> <p class="submit-buttons">
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />&nbsp; <input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />&nbsp;
@ -440,7 +460,7 @@
<input class="button2" type="submit" name="submit" value="{L_DELETE_MARKED}" /><br /> <input class="button2" type="submit" name="submit" value="{L_DELETE_MARKED}" /><br />
<p class="small"> <p class="small">
<a href="#" onclick="marklist('attachments', 'delete', true); return false;">{L_MARK_ALL}</a> &bull; <a href="#" onclick="marklist('attachments', 'delete', true); return false;">{L_MARK_ALL}</a> &bull;
<a href="#" onclick="marklist('attachments', 'delete', false); return false;">{L_UNMARK_ALL}</a> <a href="#" onclick="marklist('attachments', 'delete', false); return false;">{L_UNMARK_ALL}</a>
</p> </p>
</fieldset> </fieldset>
<!-- ENDIF --> <!-- ENDIF -->

View file

@ -922,6 +922,9 @@ class acp_attachments
case 'orphan': case 'orphan':
/* @var $pagination \phpbb\pagination */
$pagination = $this->phpbb_container->get('pagination');
if ($submit) if ($submit)
{ {
$delete_files = (isset($_POST['delete'])) ? array_keys($request->variable('delete', array('' => 0))) : array(); $delete_files = (isset($_POST['delete'])) ? array_keys($request->variable('delete', array('' => 0))) : array();
@ -1064,13 +1067,29 @@ class acp_attachments
'S_ORPHAN' => true) 'S_ORPHAN' => true)
); );
$attachments_per_page = (int) $config['topics_per_page'];
// Get total number or orphans older than 3 hours
$sql = 'SELECT COUNT(attach_id) as num_files, SUM(filesize) as total_size
FROM ' . ATTACHMENTS_TABLE . '
WHERE is_orphan = 1
AND filetime < ' . (time() - 3*60*60);
$result = $this->db->sql_query($sql);
$row = $this->db->sql_fetchrow($result);
$num_files = (int) $row['num_files'];
$total_size = (int) $row['total_size'];
$this->db->sql_freeresult($result);
$start = $request->variable('start', 0);
$start = $pagination->validate_start($start, $attachments_per_page, $num_files);
// Just get the files with is_orphan set and older than 3 hours // Just get the files with is_orphan set and older than 3 hours
$sql = 'SELECT * $sql = 'SELECT *
FROM ' . ATTACHMENTS_TABLE . ' FROM ' . ATTACHMENTS_TABLE . '
WHERE is_orphan = 1 WHERE is_orphan = 1
AND filetime < ' . (time() - 3*60*60) . ' AND filetime < ' . (time() - 3*60*60) . '
ORDER BY filetime DESC'; ORDER BY filetime DESC';
$result = $db->sql_query($sql); $result = $db->sql_query_limit($sql, $attachments_per_page, $start);
while ($row = $db->sql_fetchrow($result)) while ($row = $db->sql_fetchrow($result))
{ {
@ -1086,6 +1105,20 @@ class acp_attachments
} }
$db->sql_freeresult($result); $db->sql_freeresult($result);
$pagination->generate_template_pagination(
$this->u_action,
'pagination',
'start',
$num_files,
$attachments_per_page,
$start
);
$template->assign_vars(array(
'TOTAL_FILES' => $num_files,
'TOTAL_SIZE' => get_formatted_filesize($total_size),
));
break; break;
case 'manage': case 'manage':