1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-08-08 17:56:52 +02:00

added: download notice for people unable to see files attached to posts

changed: put attachment display into a function now called by posting preview and viewtopic (functions_display.php)
fixed: small fix in posting routines, cleanups...


git-svn-id: file:///svn/phpbb/trunk@4139 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
Meik Sievertsen
2003-06-17 19:34:17 +00:00
parent 86e67daaaa
commit 8107f14852
9 changed files with 398 additions and 407 deletions

View File

@@ -635,6 +635,7 @@ if (!$row = $db->sql_fetchrow($result))
// and the global bbcode_bitfield are built
do
{
$display_notice = FALSE;
$poster_id = $row['poster_id'];
$poster = ($poster_id == ANONYMOUS) ? ((!empty($row['post_username'])) ? $row['post_username'] : $user->lang['GUEST']) : $row['username'];
@@ -649,6 +650,24 @@ do
continue;
}
// Does post have an attachment? If so, add it to the list
if ($row['post_attachment'] && $config['allow_attachments'])
{
if ($auth->acl_get('f_download', $forum_id))
{
$attach_list[] = $row['post_id'];
if ($row['post_approved'])
{
$has_attachments = TRUE;
}
}
else
{
$display_notice = TRUE;
}
}
$rowset[] = array(
'post_id' => $row['post_id'],
'post_time' => $row['post_time'],
@@ -668,21 +687,11 @@ do
'bbcode_bitfield' => $row['bbcode_bitfield'],
'enable_html' => $row['enable_html'],
'enable_smilies' => $row['enable_smilies'],
'enable_sig' => $row['enable_sig']
'enable_sig' => $row['enable_sig'],
'display_notice' => $display_notice
);
// Does post have an attachment? If so, add it to the list
if ($row['post_attachment'] && $config['allow_attachments'] && $auth->acl_get('f_download', $forum_id))
{
$attach_list[] = $row['post_id'];
if ($row['post_approved'])
{
$has_attachments = TRUE;
}
}
// Define the global bbcode bitfield, will be used to load bbcodes
$bbcode_bitfield |= $row['bbcode_bitfield'];
@@ -815,6 +824,8 @@ $db->sql_freeresult($result);
// Pull attachment data
if (count($attach_list))
{
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
$sql = 'SELECT a.post_id, d.*
FROM ' . ATTACHMENTS_TABLE . ' a, ' . ATTACHMENTS_DESC_TABLE . ' d
WHERE a.post_id IN (' . implode(', ', $attach_list) . ')
@@ -1045,200 +1056,14 @@ foreach ($rowset as $key => $row)
'S_ROW_COUNT' => $i++,
'S_HAS_ATTACHMENTS' => (!empty($attachments[$row['post_id']])) ? TRUE : FALSE,
'S_POST_UNAPPROVED' => ($row['post_approved']) ? FALSE : TRUE,
'S_POST_REPORTED' => ($row['post_reported'] && $auth->acl_get('m_', $forum_id)) ? TRUE : FALSE)
'S_POST_REPORTED' => ($row['post_reported'] && $auth->acl_get('m_', $forum_id)) ? TRUE : FALSE,
'S_DISPLAY_NOTICE' => $row['display_notice'])
);
// Process Attachments for this post
if (sizeof($attachments[$row['post_id']]))
{
foreach ($attachments[$row['post_id']] as $attachment)
{
// Some basics...
$attachment['extension'] = strtolower(trim($attachment['extension']));
$filename = $config['upload_dir'] . '/' . $attachment['physical_filename'];
$thumbnail_filename = $config['upload_dir'] . '/thumbs/t_' . $attachment['physical_filename'];
$upload_image = '';
if (($user->img('icon_attach', '') != '') && (trim($extensions[$attachment['extension']]['upload_icon']) == ''))
{
$upload_image = $user->img('icon_attach', '');
}
else if (trim($extensions[$attachment['extension']]['upload_icon']) != '')
{
$upload_image = '<img src="' . $phpbb_root_path . 'images/upload_icons/' . trim($extensions[$attachment['extension']]['upload_icon']) . '" alt="" border="0" />';
}
$filesize = $attachment['filesize'];
$size_lang = ($filesize >= 1048576) ? $user->lang['MB'] : ( ($filesize >= 1024) ? $user->lang['KB'] : $user->lang['BYTES'] );
if ($filesize >= 1048576)
{
$filesize = (round((round($filesize / 1048576 * 100) / 100), 2));
}
else if ($filesize >= 1024)
{
$filesize = (round((round($filesize / 1024 * 100) / 100), 2));
}
$display_name = $attachment['real_filename'];
$comment = stripslashes(trim(str_replace("\n", '<br />', $attachment['comment'])));
$denied = false;
if ((!in_array($attachment['extension'], $extensions['_allowed_'])))
{
$denied = true;
$template->assign_block_vars('postrow.attachment', array(
'IS_DENIED' => true,
'L_DENIED' => sprintf($user->lang['EXTENSION_DISABLED_AFTER_POSTING'], $attachment['extension']))
);
}
if (!$denied)
{
$l_downloaded_viewed = '';
$download_link = '';
$additional_array = array();
$display_cat = $extensions[$attachment['extension']]['display_cat'];
if ($display_cat == IMAGE_CAT)
{
if ($attachment['thumbnail'])
{
$display_cat = THUMB_CAT;
}
else
{
$display_cat = NONE_CAT;
if ($config['img_display_inlined'])
{
if ($config['img_link_width'] || $config['img_link_height'])
{
list($width, $height) = image_getdimension($filename);
$display_cat = (!$width && !$height) ? IMAGE_CAT : (($width <= $config['img_link_width'] && $height <=$config['img_link_height']) ? IMAGE_CAT : NONE_CAT);
}
}
else
{
$display_cat = IMAGE_CAT;
}
}
}
switch ($display_cat)
{
case IMAGE_CAT:
// Images
// NOTE: If you want to use the download.php everytime an image is displayed inlined, use this line:
// $img_source = $phpbb_root_path . 'download.' . $phpEx . $SID . '&amp;id=' . $attachment['attach_id'];
if (!empty($config['ftp_upload']) && trim($config['upload_dir']) == '')
{
$img_source = $phpbb_root_path . "download.$phpEx$SID&amp;id=" . $attachment['attach_id'];
}
else
{
$img_source = $filename;
$update_count[] = $attachment['attach_id'];
}
$l_downloaded_viewed = $user->lang['VIEWED'];
$download_link = $img_source;
break;
case THUMB_CAT:
// Images, but display Thumbnail
// NOTE: If you want to use the download.php everytime an thumnmail is displayed inlined, use this line:
// $thumb_source = $phpbb_root_path . 'download.' . $phpEx . $SID . '&amp;id=' . $attachment['attach_id'] . '&amp;thumb=1';
if (!empty($config['use_ftp_upload']) && trim($config['upload_dir']) == '')
{
$thumb_source = $phpbb_root_path . "download.$phpEx$SID&amp;id=" . $attachment['attach_id'] . '&thumb=1';
}
else
{
$thumb_source = $thumbnail_filename;
}
$l_downloaded_viewed = $user->lang['VIEWED'];
$download_link = $phpbb_root_path . "download.$phpEx$SID&amp;id=" . $attachment['attach_id'];
$additional_array = array(
'THUMB_IMG' => $thumb_source
);
break;
case WM_CAT:
// Windows Media Streams
$l_downloaded_viewed = $user->lang['VIEWED'];
$download_link = $filename;
// Viewed/Heared File ... update the download count (download.php is not called here)
$update_count[] = $attachment['attach_id'];
break;
case RM_CAT:
// Real Media Streams
$l_downloaded_viewed = $user->lang['VIEWED'];
$download_link = $filename;
$additional_array = array(
'FORUM_URL' => generate_board_url(), // should be U_FORUM or similar
'ATTACH_ID' => $attachment['attach_id']
);
// Viewed/Heared File ... update the download count (download.php is not called here)
$update_count[] = $attachment['attach_id'];
break;
/*
case SWF_CAT:
// Macromedia Flash Files
list($width, $height) = swf_getdimension($filename);
$l_downloaded_viewed = $user->lang['VIEWED'];
$download_link = $filename;
$additional_array = array(
'WIDTH' => $width,
'HEIGHT' => $height
);
// Viewed/Heared File ... update the download count (download.php is not called here)
$update_count[] = $attachment['attach_id'];
break;
*/
default:
$l_downloaded_viewed = $user->lang['DOWNLOADED'];
$download_link = $phpbb_root_path . 'download.' . $phpEx . $SID . '&amp;id=' . $attachment['attach_id'];
break;
}
$template_array = array_merge($additional_array, array(
// 'IS_FLASH' => ($display_cat == SWF_CAT) ? true : false,
'IS_WM_STREAM' => ($display_cat == WM_CAT) ? true : false,
'IS_RM_STREAM' => ($display_cat == RM_CAT) ? true : false,
'IS_THUMBNAIL' => ($display_cat == THUMB_CAT) ? true : false,
'IS_IMAGE' => ($display_cat == IMAGE_CAT) ? true : false,
'DOWNLOAD_NAME' => $display_name,
'FILESIZE' => $filesize,
'SIZE_VAR' => $size_lang,
'COMMENT' => $comment,
'U_DOWNLOAD_LINK' => $download_link,
'UPLOAD_IMG' => $upload_image,
'L_DOWNLOADED_VIEWED' => $l_downloaded_viewed,
'L_DOWNLOAD_COUNT' => sprintf($user->lang['DOWNLOAD_NUMBER'], $attachment['download_count']))
);
$template->assign_block_vars('postrow.attachment', $template_array);
}
}
display_attachments($attachments[$row['post_id']], $update_count);
}
unset($rowset[$key]);