aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB
diff options
context:
space:
mode:
authorTristan Darricau <tristan.darricau@sensiolabs.com>2016-03-25 11:48:29 +0100
committerTristan Darricau <tristan.darricau@sensiolabs.com>2016-03-25 11:48:29 +0100
commit7f9ba9849b2bd3c97fd9a828ddb46c83199b9c55 (patch)
tree19de4f59168c5d5045aba760784dad9cbe0836e5 /phpBB
parent6774c5077ddf82eb2f31e92d327ce6905b73c3df (diff)
parent3d7d0c40b8e7f1897fc4a323d4edee6db2a7f452 (diff)
downloadforums-7f9ba9849b2bd3c97fd9a828ddb46c83199b9c55.tar
forums-7f9ba9849b2bd3c97fd9a828ddb46c83199b9c55.tar.gz
forums-7f9ba9849b2bd3c97fd9a828ddb46c83199b9c55.tar.bz2
forums-7f9ba9849b2bd3c97fd9a828ddb46c83199b9c55.tar.xz
forums-7f9ba9849b2bd3c97fd9a828ddb46c83199b9c55.zip
Merge pull request #4190 from marc1706/ticket/14437
[ticket/14437] Correctly assume index from attachment display order * marc1706/ticket/14437: [ticket/14437] Make sure attachments array is properly ordered before processing [ticket/14437] Preserve attachment ID order by ordering by attach_id [ticket/14437] Sort attachments after assigning inline attachments [ticket/14437] Correctly assume index from attachment display order
Diffstat (limited to 'phpBB')
-rw-r--r--phpBB/includes/functions_content.php30
-rw-r--r--phpBB/posting.php2
-rw-r--r--phpBB/viewtopic.php2
3 files changed, 17 insertions, 17 deletions
diff --git a/phpBB/includes/functions_content.php b/phpBB/includes/functions_content.php
index 36d7dfc03c..e05fcb0586 100644
--- a/phpBB/includes/functions_content.php
+++ b/phpBB/includes/functions_content.php
@@ -1036,17 +1036,8 @@ function parse_attachments($forum_id, &$message, &$attachments, &$update_count,
unset($new_attachment_data);
}
- // Sort correctly
- if ($config['display_order'])
- {
- // Ascending sort
- krsort($attachments);
- }
- else
- {
- // Descending sort
- ksort($attachments);
- }
+ // Make sure attachments are properly ordered
+ ksort($attachments);
foreach ($attachments as $attachment)
{
@@ -1285,8 +1276,6 @@ function parse_attachments($forum_id, &$message, &$attachments, &$update_count,
$attachments = $compiled_attachments;
unset($compiled_attachments);
- $tpl_size = sizeof($attachments);
-
$unset_tpl = array();
preg_match_all('#<!\-\- ia([0-9]+) \-\->(.*?)<!\-\- ia\1 \-\->#', $message, $matches, PREG_PATTERN_ORDER);
@@ -1294,8 +1283,7 @@ function parse_attachments($forum_id, &$message, &$attachments, &$update_count,
$replace = array();
foreach ($matches[0] as $num => $capture)
{
- // Flip index if we are displaying the reverse way
- $index = ($config['display_order']) ? ($tpl_size-($matches[1][$num] + 1)) : $matches[1][$num];
+ $index = $matches[1][$num];
$replace['from'][] = $matches[0][$num];
$replace['to'][] = (isset($attachments[$index])) ? $attachments[$index] : sprintf($user->lang['MISSING_INLINE_ATTACHMENT'], $matches[2][array_search($index, $matches[1])]);
@@ -1310,6 +1298,18 @@ function parse_attachments($forum_id, &$message, &$attachments, &$update_count,
$unset_tpl = array_unique($unset_tpl);
+ // Sort correctly
+ if ($config['display_order'])
+ {
+ // Ascending sort
+ krsort($attachments);
+ }
+ else
+ {
+ // Descending sort
+ ksort($attachments);
+ }
+
// Needed to let not display the inlined attachments at the end of the post again
foreach ($unset_tpl as $index)
{
diff --git a/phpBB/posting.php b/phpBB/posting.php
index a7df1a018e..263809e998 100644
--- a/phpBB/posting.php
+++ b/phpBB/posting.php
@@ -599,7 +599,7 @@ if ($post_data['post_attachment'] && !$submit && !$refresh && !$preview && $mode
WHERE post_msg_id = $post_id
AND in_message = 0
AND is_orphan = 0
- ORDER BY filetime DESC";
+ ORDER BY attach_id DESC";
$result = $db->sql_query($sql);
$message_parser->attachment_data = array_merge($message_parser->attachment_data, $db->sql_fetchrowset($result));
$db->sql_freeresult($result);
diff --git a/phpBB/viewtopic.php b/phpBB/viewtopic.php
index eeb6444ceb..780e43e09b 100644
--- a/phpBB/viewtopic.php
+++ b/phpBB/viewtopic.php
@@ -1479,7 +1479,7 @@ if (sizeof($attach_list))
FROM ' . ATTACHMENTS_TABLE . '
WHERE ' . $db->sql_in_set('post_msg_id', $attach_list) . '
AND in_message = 0
- ORDER BY filetime DESC, post_msg_id ASC';
+ ORDER BY attach_id DESC, post_msg_id ASC';
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))