aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/includes')
-rw-r--r--phpBB/includes/functions_admin.php9
-rw-r--r--phpBB/includes/functions_display.php4
-rw-r--r--phpBB/includes/functions_posting.php42
-rw-r--r--phpBB/includes/message_parser.php19
4 files changed, 42 insertions, 32 deletions
diff --git a/phpBB/includes/functions_admin.php b/phpBB/includes/functions_admin.php
index 40991815a6..78c46bafd0 100644
--- a/phpBB/includes/functions_admin.php
+++ b/phpBB/includes/functions_admin.php
@@ -652,7 +652,8 @@ function delete_attachments($post_id_array = -1, $attach_id_array = -1, $page =
$db->sql_freeresult($result);
}
- // TODO - Return number of deleted attachments
+ // TODO
+ // Return number of deleted attachments
}
function delete_topic_shadows($max_age, $forum_id = '', $auto_sync = TRUE)
@@ -702,9 +703,11 @@ function delete_topic_shadows($max_age, $forum_id = '', $auto_sync = TRUE)
// Delete File
function phpbb_unlink($filename, $mode = 'file')
{
- global $config, $user;
+ global $config, $user, $phpbb_root_path;
- $filename = ($mode == 'thumbnail') ? $config['upload_dir'] . '/thumbs/t_' . $filename : $config['upload_dir'] . '/' . $filename;
+ $upload_dir = ($config['upload_dir'][0] == '/' || ($config['upload_dir'][0] != '/' && $config['upload_dir'][1] == ':')) ? $config['upload_dir'] : $phpbb_root_path . $config['upload_dir'];
+
+ $filename = ($mode == 'thumbnail') ? $upload_dir . '/thumbs/t_' . $filename : $upload_dir . '/' . $filename;
$deleted = @unlink($filename);
if (file_exists($filename))
diff --git a/phpBB/includes/functions_display.php b/phpBB/includes/functions_display.php
index e9bbb0d5b4..17ba765b8f 100644
--- a/phpBB/includes/functions_display.php
+++ b/phpBB/includes/functions_display.php
@@ -445,6 +445,8 @@ function display_attachments($attachment_data, &$update_count, $force_physical =
break;
}
+ $l_download_count = ($attachment['download_count'] == 0) ? $user->lang['DOWNLOAD_NONE'] : (($attachment['download_count'] == 1) ? sprintf($user->lang['DOWNLOAD_COUNT'], $attachment['download_count']) : sprintf($user->lang['DOWNLOAD_COUNTS'], $attachment['download_count']));
+
$template_array = array_merge($additional_array, array(
// 'IS_FLASH' => ($display_cat == SWF_CAT) ? true : false,
'IS_WM_STREAM' => ($display_cat == WM_CAT) ? true : false,
@@ -461,7 +463,7 @@ function display_attachments($attachment_data, &$update_count, $force_physical =
'UPLOAD_IMG' => $upload_image,
'L_DOWNLOADED_VIEWED' => $l_downloaded_viewed,
- 'L_DOWNLOAD_COUNT' => sprintf($user->lang['DOWNLOAD_NUMBER'], $attachment['download_count']))
+ 'L_DOWNLOAD_COUNT' => $l_download_count)
);
$template->assign_block_vars('postrow.attachment', $template_array);
diff --git a/phpBB/includes/functions_posting.php b/phpBB/includes/functions_posting.php
index f63b797373..677bdc08bd 100644
--- a/phpBB/includes/functions_posting.php
+++ b/phpBB/includes/functions_posting.php
@@ -47,7 +47,6 @@ function generate_smilies($mode, $forum_id)
FROM ' . SMILIES_TABLE . '
WHERE display_on_posting = 0';
$result = $db->sql_query_limit($sql, 1, 0, 3600);
- $row = $db->sql_fetchrow($result);
if ($row = $db->sql_fetchrow($result))
{
@@ -194,7 +193,7 @@ function update_last_post_information($type, $id)
}
// Upload Attachment - filedata is generated here
-function upload_attachment($filename)
+function upload_attachment($filename, $local = false, $local_storage = '')
{
global $auth, $user, $config, $db;
@@ -208,8 +207,8 @@ function upload_attachment($filename)
}
$r_file = $filename;
- $file = $_FILES['fileupload']['tmp_name'];
- $filedata['mimetype'] = $_FILES['fileupload']['type'];
+ $file = (!$local) ? $_FILES['fileupload']['tmp_name'] : $local_storage;
+ $filedata['mimetype'] = (!$local) ? $_FILES['fileupload']['type'] : 'application/octet-stream';
// Opera add the name to the mime type
$filedata['mimetype'] = ( strstr($filedata['mimetype'], '; name') ) ? str_replace(strstr($filedata['mimetype'], '; name'), '', $filedata['mimetype']) : $filedata['mimetype'];
@@ -239,7 +238,7 @@ function upload_attachment($filename)
}
// check php upload-size
- if ( ($file == 'none') )
+ if ($file == 'none')
{
$filedata['error'][] = (@ini_get('upload_max_filesize') == '') ? $user->lang['ATTACHMENT_PHP_SIZE_NA'] : sprintf($user->lang['ATTACHMENT_PHP_SIZE_OVERRUN'], @ini_get('upload_max_filesize'));
$filedata['post_attach'] = FALSE;
@@ -304,6 +303,7 @@ function upload_attachment($filename)
// Descide the Upload method
$upload_mode = (@ini_get('open_basedir') || @ini_get('safe_mode')) ? 'move' : 'copy';
+ $upload_mode = ($local) ? 'local' : $upload_mode;
// Ok, upload the File
$result = move_uploaded_attachment($upload_mode, $file, $filedata);
@@ -319,40 +319,50 @@ function upload_attachment($filename)
// Move/Upload File - could be used for Avatars too ?
function move_uploaded_attachment($upload_mode, $source_filename, &$filedata)
{
- global $user, $config;
+ global $user, $config, $phpbb_root_path;
+ $upload_dir = ($config['upload_dir'][0] == '/' || ($config['upload_dir'][0] != '/' && $config['upload_dir'][1] == ':')) ? $config['upload_dir'] : $phpbb_root_path . $config['upload_dir'];
$destination_filename = $filedata['destination_filename'];
$thumbnail = (isset($filedata['thumbnail'])) ? $filedata['thumbnail'] : FALSE;
switch ($upload_mode)
{
case 'copy':
- if ( !@copy($source_filename, $config['upload_dir'] . '/' . $destination_filename) )
+ if ( !@copy($source_filename, $upload_dir . '/' . $destination_filename) )
{
- if ( !@move_uploaded_file($source_filename, $config['upload_dir'] . '/' . $destination_filename) )
+ if ( !@move_uploaded_file($source_filename, $upload_dir . '/' . $destination_filename) )
{
- return sprintf($user->lang['GENERAL_UPLOAD_ERROR'], './' . $config['upload_dir'] . '/' . $destination_filename);
+ return sprintf($user->lang['GENERAL_UPLOAD_ERROR'], $upload_dir . '/' . $destination_filename);
}
}
- @chmod($config['upload_dir'] . '/' . $destination_filename, 0666);
+ @chmod($upload_dir . '/' . $destination_filename, 0666);
break;
case 'move':
- if ( !@move_uploaded_file($source_filename, $config['upload_dir'] . '/' . $destination_filename) )
+ if ( !@move_uploaded_file($source_filename, $upload_dir . '/' . $destination_filename) )
{
- if ( !@copy($source_file, $config['upload_dir'] . '/' . $destination_filename) )
+ if ( !@copy($source_file, $upload_dir . '/' . $destination_filename) )
{
- return sprintf($user->lang['GENERAL_UPLOAD_ERROR'], './' . $config['upload_dir'] . '/' . $destination_filename);
+ return sprintf($user->lang['GENERAL_UPLOAD_ERROR'], $upload_dir . '/' . $destination_filename);
}
}
- @chmod($config['upload_dir'] . '/' . $destination_filename, 0666);
+ @chmod($upload_dir . '/' . $destination_filename, 0666);
+ break;
+
+ case 'local':
+ if (!@copy($source_filename, $upload_dir . '/' . $destination_filename))
+ {
+ return sprintf($user->lang['GENERAL_UPLOAD_ERROR'], $upload_dir . '/' . $destination_filename);
+ }
+ @chmod($upload_dir . '/' . $destination_filename, 0666);
+ @unlink($source_filename);
break;
}
if ($filedata['thumbnail'])
{
- $source = $config['upload_dir'] . '/' . $destination_filename;
- $destination = $config['upload_dir'] . '/thumbs/t_' . $destination_filename;
+ $source = $upload_dir . '/' . $destination_filename;
+ $destination = $upload_dir . '/thumbs/t_' . $destination_filename;
if (!create_thumbnail($source, $destination, $filedata['mimetype']))
{
diff --git a/phpBB/includes/message_parser.php b/phpBB/includes/message_parser.php
index bf1b0f0d53..92557fbb78 100644
--- a/phpBB/includes/message_parser.php
+++ b/phpBB/includes/message_parser.php
@@ -62,9 +62,8 @@ class parse_message
// Do some general 'cleanup' first before processing message,
// e.g. remove excessive newlines(?), smilies(?)
// Transform \r\n and \r into \n
- $match = array('#\r\n?#', '#sid=[a-z0-9]*?&?#', "#([\n][\s]+){3,}#");
+ $match = array('#\r\n?#', '#sid=[a-z0-9]*?&?#', "#([\n][\s]+){3,}#");
$replace = array("\n", '', "\n\n");
-
$this->message = trim(preg_replace($match, $replace, $this->message));
// Message length check
@@ -78,17 +77,13 @@ class parse_message
if ($bbcode)
{
$this->bbcode_init();
- if (!$allow_img)
- {
- $this->bbcodes['img']['disabled'] = TRUE;
- }
- if (!$allow_flash)
+ $disallow = array('allow_img', 'allow_flash', 'allow_quote');
+ foreach ($disallow as $bool)
{
- $this->bbcodes['flash']['disabled'] = TRUE;
- }
- if (!$allow_quote)
- {
- $this->bbcodes['quote']['disabled'] = TRUE;
+ if (!$$bool)
+ {
+ $this->bbcodes[str_replace('allow_', '', $bool)]['disabled'] = TRUE;
+ }
}
$this->bbcode();
}