[ticket/12171] Split post and pm download links

PHPBB3-12171
PHPBB3-12172
This commit is contained in:
Joas Schilling 2014-02-08 15:56:52 +01:00
parent 8744b0da6d
commit e4129687cb
3 changed files with 23 additions and 20 deletions

View file

@ -144,7 +144,8 @@ require($phpbb_root_path . 'includes/functions_download' . '.' . $phpEx);
$download_id = request_var('id', 0); $download_id = request_var('id', 0);
$topic_id = $request->variable('topic_id', 0); $topic_id = $request->variable('topic_id', 0);
$post_msg_id = $request->variable('post_msg_id', 0); $post_id = $request->variable('post_id', 0);
$msg_id = $request->variable('msg_id', 0);
$archive = $request->variable('archive', '.tar'); $archive = $request->variable('archive', '.tar');
$mode = request_var('mode', ''); $mode = request_var('mode', '');
$thumbnail = request_var('t', false); $thumbnail = request_var('t', false);
@ -165,10 +166,15 @@ if ($download_id)
// Attachment id (only 1 attachment) // Attachment id (only 1 attachment)
$sql_where = 'attach_id = ' . $download_id; $sql_where = 'attach_id = ' . $download_id;
} }
else if ($post_msg_id) else if ($msg_id)
{ {
// Post id or private message id (multiple attachments) // Private message id (multiple attachments)
$sql_where = 'is_orphan = 0 AND post_msg_id = ' . $post_msg_id; $sql_where = 'is_orphan = 0 AND in_message = 1 AND post_msg_id = ' . $msg_id;
}
else if ($post_id)
{
// Post id (multiple attachments)
$sql_where = 'is_orphan = 0 AND in_message = 0 AND post_msg_id = ' . $post_id;
} }
else if ($topic_id) else if ($topic_id)
{ {
@ -328,20 +334,17 @@ else
$archive = '.tar'; $archive = '.tar';
} }
if ($post_msg_id) if ($msg_id)
{ {
if ($attachment['in_message']) $sql = 'SELECT message_subject AS attach_subject
{ FROM ' . PRIVMSGS_TABLE . "
$sql = 'SELECT message_subject AS attach_subject WHERE msg_id = $msg_id";
FROM ' . PRIVMSGS_TABLE . " }
WHERE msg_id = $post_msg_id"; else if ($post_id)
} {
else $sql = 'SELECT post_subject AS attach_subject, forum_id
{ FROM ' . POSTS_TABLE . "
$sql = 'SELECT post_subject AS attach_subject, forum_id WHERE post_id = $post_id";
FROM ' . POSTS_TABLE . "
WHERE post_id = $post_msg_id";
}
} }
else else
{ {
@ -361,7 +364,7 @@ else
} }
$clean_name = phpbb_download_clean_filename($row['attach_subject']); $clean_name = phpbb_download_clean_filename($row['attach_subject']);
$suffix = '_' . (($post_msg_id) ? $post_msg_id : $topic_id) . '_' . $clean_name; $suffix = '_' . (($msg_id) ? 'm' . $msg_id : (($post_id) ? 'p' . $post_id : 't' . $topic_id)) . '_' . $clean_name;
$archive_name = 'attachments' . $suffix; $archive_name = 'attachments' . $suffix;
$store_name = 'att_' . time() . '_' . unique_id(); $store_name = 'att_' . time() . '_' . unique_id();

View file

@ -275,7 +275,7 @@ function view_message($id, $mode, $folder_id, $msg_id, $folder, $message_row)
// Display not already displayed Attachments for this post, we already parsed them. ;) // Display not already displayed Attachments for this post, we already parsed them. ;)
if (isset($attachments) && sizeof($attachments)) if (isset($attachments) && sizeof($attachments))
{ {
$methods = phpbb_gen_download_links('post_msg_id', $msg_id, $phpbb_root_path, $phpEx); $methods = phpbb_gen_download_links('msg_id', $msg_id, $phpbb_root_path, $phpEx);
foreach ($methods as $method) foreach ($methods as $method)
{ {
$template->assign_block_vars('dl_method', $method); $template->assign_block_vars('dl_method', $method);

View file

@ -1740,7 +1740,7 @@ for ($i = 0, $end = sizeof($post_list); $i < $end; ++$i)
); );
} }
$methods = phpbb_gen_download_links('post_msg_id', $row['post_id'], $phpbb_root_path, $phpEx); $methods = phpbb_gen_download_links('post_id', $row['post_id'], $phpbb_root_path, $phpEx);
foreach ($methods as $method) foreach ($methods as $method)
{ {
$template->assign_block_vars('postrow.dl_method', $method); $template->assign_block_vars('postrow.dl_method', $method);