fixed: smilie parsing in signatures

added: edit notes


git-svn-id: file:///svn/phpbb/trunk@4767 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
Meik Sievertsen 2004-01-25 14:30:15 +00:00
parent 9df94e88f8
commit 0608bc73e6
8 changed files with 278 additions and 236 deletions

View file

@ -31,7 +31,7 @@ function generate_smilies($mode, $forum_id)
$row = $db->sql_fetchrow($result); $row = $db->sql_fetchrow($result);
$db->sql_freeresult($result); $db->sql_freeresult($result);
$user->setup(FALSE, (int) $row['forum_style']); $user->setup(false, (int) $row['forum_style']);
page_header($user->lang['SMILIES']); page_header($user->lang['SMILIES']);
@ -40,7 +40,7 @@ function generate_smilies($mode, $forum_id)
); );
} }
$display_link = FALSE; $display_link = false;
if ($mode == 'inline') if ($mode == 'inline')
{ {
$sql = 'SELECT smile_id $sql = 'SELECT smile_id
@ -50,7 +50,7 @@ function generate_smilies($mode, $forum_id)
if ($row = $db->sql_fetchrow($result)) if ($row = $db->sql_fetchrow($result))
{ {
$display_link = TRUE; $display_link = true;
} }
$db->sql_freeresult($result); $db->sql_freeresult($result);
} }
@ -77,7 +77,7 @@ function generate_smilies($mode, $forum_id)
if ($mode == 'inline' && $display_link) if ($mode == 'inline' && $display_link)
{ {
$template->assign_vars(array( $template->assign_vars(array(
'S_SHOW_EMOTICON_LINK' => TRUE, 'S_SHOW_EMOTICON_LINK' => true,
'U_MORE_SMILIES' => $phpbb_root_path . "posting.$phpEx$SID&mode=smilies&f=$forum_id") 'U_MORE_SMILIES' => $phpbb_root_path . "posting.$phpEx$SID&mode=smilies&f=$forum_id")
); );
} }
@ -98,7 +98,7 @@ function format_display(&$message, &$signature, $uid, $siguid, $html, $bbcode, $
// If we allow users to disable display of emoticons we'll need an appropriate // If we allow users to disable display of emoticons we'll need an appropriate
// check and preg_replace here // check and preg_replace here
$message = (empty($smilies) || empty($config['allow_smilies'])) ? preg_replace('#<!\-\- s(.*?) \-\-><img src="\{SMILE_PATH\}\/.*? \/><!\-\- s\1 \-\->#', '\1', $message) : str_replace('<img src="{SMILE_PATH}', '<img src="' . $phpbb_root_path . $config['smilies_path'], $message); $message = (!$smilies || !$config['allow_smilies']) ? preg_replace('#<!\-\- s(.*?) \-\-><img src="\{SMILE_PATH\}\/.*? \/><!\-\- s\1 \-\->#', '\1', $message) : str_replace('<img src="{SMILE_PATH}', '<img src="' . $phpbb_root_path . $config['smilies_path'], $message);
// Replace naughty words such as farty pants // Replace naughty words such as farty pants
if (sizeof($censors)) if (sizeof($censors))
@ -115,7 +115,7 @@ function format_display(&$message, &$signature, $uid, $siguid, $html, $bbcode, $
$bbcode->bbcode_second_pass($signature, $siguid); $bbcode->bbcode_second_pass($signature, $siguid);
$signature = (!$config['enable_smilies']) ? preg_replace('#<!\-\- s(.*?) \-\-><img src="\{SMILE_PATH\}\/.*? \/><!\-\- s\1 \-\->#', '\1', $signature) : str_replace('<img src="{SMILE_PATH}', '<img src="' . $phpbb_root_path . $config['smilies_path'], $signature); $signature = (!$config['allow_smilies']) ? preg_replace('#<!\-\- s(.*?) \-\-><img src="\{SMILE_PATH\}\/.*? \/><!\-\- s\1 \-\->#', '\1', $signature) : str_replace('<img src="{SMILE_PATH}', '<img src="' . $phpbb_root_path . $config['smilies_path'], $signature);
if (sizeof($censors)) if (sizeof($censors))
{ {
@ -146,7 +146,7 @@ function update_last_post_information($type, $id)
$result = $db->sql_query($sql); $result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result); $row = $db->sql_fetchrow($result);
if (!empty($row['last_post_id'])) if ($row['last_post_id'])
{ {
$sql = 'SELECT p.post_id, p.poster_id, p.post_time, u.username, p.post_username $sql = 'SELECT p.post_id, p.poster_id, p.post_time, u.username, p.post_username
FROM ' . POSTS_TABLE . ' p, ' . USERS_TABLE . ' u FROM ' . POSTS_TABLE . ' p, ' . USERS_TABLE . ' u
@ -179,7 +179,7 @@ function upload_attachment($filename, $local = false, $local_storage = '')
$filedata = array(); $filedata = array();
$filedata['error'] = array(); $filedata['error'] = array();
$filedata['post_attach'] = ($filename != '') ? TRUE : FALSE; $filedata['post_attach'] = ($filename) ? true : false;
if (!$filedata['post_attach']) if (!$filedata['post_attach'])
{ {
@ -202,7 +202,7 @@ function upload_attachment($filename, $local = false, $local_storage = '')
if (!in_array($filedata['extension'], $extensions['_allowed_'])) if (!in_array($filedata['extension'], $extensions['_allowed_']))
{ {
$filedata['error'][] = sprintf($user->lang['DISALLOWED_EXTENSION'], $filedata['extension']); $filedata['error'][] = sprintf($user->lang['DISALLOWED_EXTENSION'], $filedata['extension']);
$filedata['post_attach'] = FALSE; $filedata['post_attach'] = false;
return $filedata; return $filedata;
} }
@ -213,7 +213,7 @@ function upload_attachment($filename, $local = false, $local_storage = '')
if (preg_match("#[\\/:*?\"<>|]#i", $filename)) if (preg_match("#[\\/:*?\"<>|]#i", $filename))
{ {
$filedata['error'][] = sprintf($user->lang['INVALID_FILENAME'], $filename); $filedata['error'][] = sprintf($user->lang['INVALID_FILENAME'], $filename);
$filedata['post_attach'] = FALSE; $filedata['post_attach'] = false;
return $filedata; return $filedata;
} }
@ -221,7 +221,7 @@ function upload_attachment($filename, $local = false, $local_storage = '')
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['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; $filedata['post_attach'] = false;
return $filedata; return $filedata;
} }
@ -235,7 +235,7 @@ function upload_attachment($filename, $local = false, $local_storage = '')
if ($width > $config['img_max_width'] || $height > $config['img_max_height']) if ($width > $config['img_max_width'] || $height > $config['img_max_height'])
{ {
$filedata['error'][] = sprintf($user->lang['ERROR_IMAGESIZE'], $config['img_max_width'], $config['img_max_height']); $filedata['error'][] = sprintf($user->lang['ERROR_IMAGESIZE'], $config['img_max_width'], $config['img_max_height']);
$filedata['post_attach'] = FALSE; $filedata['post_attach'] = false;
return $filedata; return $filedata;
} }
} }
@ -249,7 +249,7 @@ function upload_attachment($filename, $local = false, $local_storage = '')
$allowed_filesize = ($allowed_filesize >= 1048576) ? round($allowed_filesize / 1048576 * 100) / 100 : (($allowed_filesize >= 1024) ? round($allowed_filesize / 1024 * 100) / 100 : $allowed_filesize); $allowed_filesize = ($allowed_filesize >= 1048576) ? round($allowed_filesize / 1048576 * 100) / 100 : (($allowed_filesize >= 1024) ? round($allowed_filesize / 1024 * 100) / 100 : $allowed_filesize);
$filedata['error'][] = sprintf($user->lang['ATTACHMENT_TOO_BIG'], $allowed_filesize, $size_lang); $filedata['error'][] = sprintf($user->lang['ATTACHMENT_TOO_BIG'], $allowed_filesize, $size_lang);
$filedata['post_attach'] = FALSE; $filedata['post_attach'] = false;
return $filedata; return $filedata;
} }
@ -259,7 +259,7 @@ function upload_attachment($filename, $local = false, $local_storage = '')
if ($config['upload_dir_size'] + $filedata['filesize'] > $config['attachment_quota']) if ($config['upload_dir_size'] + $filedata['filesize'] > $config['attachment_quota'])
{ {
$filedata['error'][] = $user->lang['ATTACH_QUOTA_REACHED']; $filedata['error'][] = $user->lang['ATTACH_QUOTA_REACHED'];
$filedata['post_attach'] = FALSE; $filedata['post_attach'] = false;
return $filedata; return $filedata;
} }
} }
@ -272,7 +272,7 @@ function upload_attachment($filename, $local = false, $local_storage = '')
if ($free_space <= $filedata['filesize']) if ($free_space <= $filedata['filesize'])
{ {
$filedata['error'][] = $user->lang['ATTACH_QUOTA_REACHED']; $filedata['error'][] = $user->lang['ATTACH_QUOTA_REACHED'];
$filedata['post_attach'] = FALSE; $filedata['post_attach'] = false;
return $filedata; return $filedata;
} }
} }
@ -302,10 +302,10 @@ function upload_attachment($filename, $local = false, $local_storage = '')
// Ok, upload the File // Ok, upload the File
$result = move_uploaded_attachment($upload_mode, $file, $filedata); $result = move_uploaded_attachment($upload_mode, $file, $filedata);
if ($result != '') if ($result)
{ {
$filedata['error'][] = $result; $filedata['error'][] = $result;
$filedata['post_attach'] = FALSE; $filedata['post_attach'] = false;
} }
return $filedata; return $filedata;
} }
@ -316,7 +316,7 @@ function move_uploaded_attachment($upload_mode, $source_filename, &$filedata)
global $user, $config, $phpbb_root_path; global $user, $config, $phpbb_root_path;
$destination_filename = $filedata['destination_filename']; $destination_filename = $filedata['destination_filename'];
$thumbnail = (isset($filedata['thumbnail'])) ? $filedata['thumbnail'] : FALSE; $thumbnail = (isset($filedata['thumbnail'])) ? $filedata['thumbnail'] : false;
switch ($upload_mode) switch ($upload_mode)
{ {
@ -441,25 +441,25 @@ function create_thumbnail($source, $new_file, $mimetype)
$source = realpath($source); $source = realpath($source);
$min_filesize = (int) $config['img_min_thumb_filesize']; $min_filesize = (int) $config['img_min_thumb_filesize'];
$img_filesize = (file_exists($source)) ? @filesize($source) : FALSE; $img_filesize = (file_exists($source)) ? @filesize($source) : false;
if (!$img_filesize || $img_filesize <= $min_filesize) if (!$img_filesize || $img_filesize <= $min_filesize)
{ {
return FALSE; return false;
} }
$size = getimagesize($source); $size = getimagesize($source);
if ($size[0] == 0 && $size[1] == 0) if ($size[0] == 0 && $size[1] == 0)
{ {
return FALSE; return false;
} }
$new_size = get_img_size_format($size[0], $size[1]); $new_size = get_img_size_format($size[0], $size[1]);
$tmp_path = $old_file = ''; $tmp_path = $old_file = '';
$used_imagick = FALSE; $used_imagick = false;
if ($config['img_imagick']) if ($config['img_imagick'])
{ {
@ -468,7 +468,7 @@ function create_thumbnail($source, $new_file, $mimetype)
passthru($config['img_imagick'] . 'convert' . ((defined('PHP_OS') && preg_match('#win#i', PHP_OS)) ? '.exe' : '') . ' -quality 85 -antialias -sample ' . $new_size[0] . 'x' . $new_size[1] . ' "' . str_replace('\\', '/', $source) . '" +profile "*" "' . str_replace('\\', '/', $new_file) . '"'); passthru($config['img_imagick'] . 'convert' . ((defined('PHP_OS') && preg_match('#win#i', PHP_OS)) ? '.exe' : '') . ' -quality 85 -antialias -sample ' . $new_size[0] . 'x' . $new_size[1] . ' "' . str_replace('\\', '/', $source) . '" +profile "*" "' . str_replace('\\', '/', $new_file) . '"');
if (file_exists($new_file)) if (file_exists($new_file))
{ {
$used_imagick = TRUE; $used_imagick = true;
} }
} }
} }
@ -508,13 +508,13 @@ function create_thumbnail($source, $new_file, $mimetype)
if (!file_exists($new_file)) if (!file_exists($new_file))
{ {
return FALSE; return false;
} }
@chmod($new_file, 0666); @chmod($new_file, 0666);
return TRUE; return true;
} }
// //

View file

@ -28,7 +28,7 @@ if (!function_exists('stripos'))
return strpos($haystack, $m[0]); return strpos($haystack, $m[0]);
} }
return FALSE; return false;
} }
} }
@ -55,7 +55,7 @@ class parse_message
$this->bbcode_uid = substr(md5(time()), 0, BBCODE_UID_LEN); $this->bbcode_uid = substr(md5(time()), 0, BBCODE_UID_LEN);
} }
function parse($html, $bbcode, $url, $smilies, $allow_img = TRUE, $allow_flash = TRUE, $allow_quote = TRUE) function parse($html, $bbcode, $url, $smilies, $allow_img = true, $allow_flash = true, $allow_quote = true)
{ {
global $config, $db, $user; global $config, $db, $user;
@ -74,7 +74,7 @@ class parse_message
} }
$this->html($html); $this->html($html);
if ($bbcode && strpos($this->message, '[') !== FALSE) if ($bbcode && strpos($this->message, '[') !== false)
{ {
$this->bbcode_init(); $this->bbcode_init();
$disallow = array('allow_img', 'allow_flash', 'allow_quote'); $disallow = array('allow_img', 'allow_flash', 'allow_quote');
@ -82,7 +82,7 @@ class parse_message
{ {
if (!${$bool}) if (!${$bool})
{ {
$this->bbcodes[str_replace('allow_', '', $bool)]['disabled'] = TRUE; $this->bbcodes[str_replace('allow_', '', $bool)]['disabled'] = true;
} }
} }
$this->bbcode(); $this->bbcode();
@ -125,7 +125,7 @@ class parse_message
$size = strlen($this->message); $size = strlen($this->message);
foreach ($this->bbcodes as $bbcode_name => $bbcode_data) foreach ($this->bbcodes as $bbcode_name => $bbcode_data)
{ {
if (!empty($bbcode_data['disabled'])) if ($bbcode_data['disabled'])
{ {
foreach ($bbcode_data['regexp'] as $regexp => $replacement) foreach ($bbcode_data['regexp'] as $regexp => $replacement)
{ {
@ -237,14 +237,14 @@ class parse_message
switch (strtolower($stx)) switch (strtolower($stx))
{ {
case 'php': case 'php':
$remove_tags = FALSE; $remove_tags = false;
$str_from = array('&lt;', '&gt;'); $str_from = array('&lt;', '&gt;');
$str_to = array('<', '>'); $str_to = array('<', '>');
$code = str_replace($str_from, $str_to, $code); $code = str_replace($str_from, $str_to, $code);
if (!preg_match('/^\<\?.*?\?\>/is', $code)) if (!preg_match('/^\<\?.*?\?\>/is', $code))
{ {
$remove_tags = TRUE; $remove_tags = true;
$code = "<?php $code ?>"; $code = "<?php $code ?>";
} }
@ -319,7 +319,7 @@ class parse_message
for ($i = 0; $i < strlen($tok); ++$i) for ($i = 0; $i < strlen($tok); ++$i)
{ {
$tmp_pos = strpos($in, $tok{$i}); $tmp_pos = strpos($in, $tok{$i});
if ($tmp_pos !== FALSE && $tmp_pos < $pos) if ($tmp_pos !== false && $tmp_pos < $pos)
{ {
$pos = $tmp_pos; $pos = $tmp_pos;
} }
@ -435,7 +435,7 @@ class parse_message
for ($i = 0; $i < strlen($tok); ++$i) for ($i = 0; $i < strlen($tok); ++$i)
{ {
$tmp_pos = strpos($in, $tok{$i}); $tmp_pos = strpos($in, $tok{$i});
if ($tmp_pos !== FALSE && $tmp_pos < $pos) if ($tmp_pos !== false && $tmp_pos < $pos)
{ {
$pos = $tmp_pos; $pos = $tmp_pos;
} }
@ -472,11 +472,11 @@ class parse_message
array_push($close_tags, '/quote:' . $this->bbcode_uid); array_push($close_tags, '/quote:' . $this->bbcode_uid);
if (!empty($m[1])) if ($m[1])
{ {
$username = preg_replace('#\[(?!b|i|u|color|url|email|/b|/i|/u|/color|/url|/email)#iU', '&#91;$1', $m[1]); $username = preg_replace('#\[(?!b|i|u|color|url|email|/b|/i|/u|/color|/url|/email)#iU', '&#91;$1', $m[1]);
$end_tags = array(); $end_tags = array();
$error = FALSE; $error = false;
preg_match_all('#\[((?:/)?(?:[a-z]+))#i', $username, $tags); preg_match_all('#\[((?:/)?(?:[a-z]+))#i', $username, $tags);
foreach ($tags[1] as $tag) foreach ($tags[1] as $tag)
@ -490,11 +490,11 @@ class parse_message
$end_tag = array_pop($end_tags); $end_tag = array_pop($end_tags);
if ($end_tag != $tag) if ($end_tag != $tag)
{ {
$error = TRUE; $error = true;
} }
else else
{ {
$error = FALSE; $error = false;
} }
} }
} }
@ -550,13 +550,13 @@ class parse_message
function validate_email($var1, $var2) function validate_email($var1, $var2)
{ {
$txt = stripslashes($var2); $txt = stripslashes($var2);
$email = ($var1 != '') ? stripslashes($var1) : stripslashes($var2); $email = ($var1) ? stripslashes($var1) : stripslashes($var2);
$validated = TRUE; $validated = true;
if (!preg_match('!([a-z0-9]+[a-z0-9\-\._]*@(?:(?:[0-9]{1,3}\.){3,5}[0-9]{1,3}|[a-z0-9]+[a-z0-9\-\._]*\.[a-z]+))!i', $email)) if (!preg_match('!([a-z0-9]+[a-z0-9\-\._]*@(?:(?:[0-9]{1,3}\.){3,5}[0-9]{1,3}|[a-z0-9]+[a-z0-9\-\._]*\.[a-z]+))!i', $email))
{ {
$validated = FALSE; $validated = false;
} }
if (!$validated) if (!$validated)
@ -577,19 +577,19 @@ class parse_message
function validate_url($var1, $var2) function validate_url($var1, $var2)
{ {
$url = (!empty($var1)) ? stripslashes($var1) : stripslashes($var2); $url = ($var1) ? stripslashes($var1) : stripslashes($var2);
// Put validation regexps here // Put validation regexps here
$valid = FALSE; $valid = false;
if (preg_match('#^http(s?)://#i', $url)) if (preg_match('#^http(s?)://#i', $url))
{ {
$valid = TRUE; $valid = true;
} }
if ($valid) if ($valid)
{ {
return (empty($url)) ? '[url:' . $this->bbcode_uid . ']' . $url . '[/url:' . $this->bbcode_uid . ']' : "[url=$url:" . $this->bbcode_uid . ']' . stripslashes($var2) . '[/url:' . $this->bbcode_uid . ']'; return (!$url) ? '[url:' . $this->bbcode_uid . ']' . $url . '[/url:' . $this->bbcode_uid . ']' : "[url=$url:" . $this->bbcode_uid . ']' . stripslashes($var2) . '[/url:' . $this->bbcode_uid . ']';
} }
return '[url' . ((!empty($var1)) ? '=' . stripslashes($var1) : '') . ']' . stripslashes($var2) . '[/url]'; return '[url' . (($var1) ? '=' . stripslashes($var1) : '') . ']' . stripslashes($var2) . '[/url]';
} }
// Replace magic urls of form http://xxx.xxx., www.xxx. and xxx@xxx.xxx. // Replace magic urls of form http://xxx.xxx., www.xxx. and xxx@xxx.xxx.
@ -658,7 +658,7 @@ class parse_message
{ {
$num_matches = preg_match_all('#' . str_replace('#', '', implode('|', $match)) . '#', $this->message, $matches); $num_matches = preg_match_all('#' . str_replace('#', '', implode('|', $match)) . '#', $this->message, $matches);
if ($num_matches !== FALSE && $num_matches > intval($config['max_post_smilies'])) if ($num_matches !== false && $num_matches > intval($config['max_post_smilies']))
{ {
$this->message = str_replace("\\n", "\n", $this->message); $this->message = str_replace("\\n", "\n", $this->message);
$this->warn_msg[] = $user->lang['TOO_MANY_SMILIES']; $this->warn_msg[] = $user->lang['TOO_MANY_SMILIES'];
@ -681,11 +681,11 @@ class parse_message
$this->filename_data['filecomment'] = preg_replace('#&amp;(\#[0-9]+;)#', '&\1', request_var('filecomment', '')); $this->filename_data['filecomment'] = preg_replace('#&amp;(\#[0-9]+;)#', '&\1', request_var('filecomment', ''));
$this->filename_data['filename'] = ($_FILES['fileupload']['name'] != 'none') ? trim($_FILES['fileupload']['name']) : ''; $this->filename_data['filename'] = ($_FILES['fileupload']['name'] != 'none') ? trim($_FILES['fileupload']['name']) : '';
$add_file = (isset($_POST['add_file'])) ? TRUE : FALSE; $add_file = (isset($_POST['add_file']));
$delete_file = (isset($_POST['delete_file'])) ? TRUE : FALSE; $delete_file = (isset($_POST['delete_file']));
$edit_comment = (isset($_POST['edit_comment'])) ? TRUE : FALSE; $edit_comment = (isset($_POST['edit_comment']));
if ($submit && in_array($mode, array('post', 'reply', 'quote', 'edit')) && $this->filename_data['filename'] != '') if ($submit && in_array($mode, array('post', 'reply', 'quote', 'edit')) && $this->filename_data['filename'])
{ {
if ($num_attachments < $config['max_attachments'] || $auth->acl_gets('m_', 'a_')) if ($num_attachments < $config['max_attachments'] || $auth->acl_gets('m_', 'a_'))
{ {
@ -710,7 +710,7 @@ class parse_message
$this->attachment_data = array_merge(array(0 => $new_entry), $this->attachment_data); $this->attachment_data = array_merge(array(0 => $new_entry), $this->attachment_data);
$this->filename_data['filecomment'] = ''; $this->filename_data['filecomment'] = '';
// This Variable is set to FALSE here, because Attachments are entered into the // This Variable is set to false here, because Attachments are entered into the
// Database in two modes, one if the id_list is 0 and the second one if post_attach is true // Database in two modes, one if the id_list is 0 and the second one if post_attach is true
// Since post_attach is automatically switched to true if an Attachment got added to the filesystem, // Since post_attach is automatically switched to true if an Attachment got added to the filesystem,
// but we are assigning an id of 0 here, we have to reset the post_attach variable to false. // but we are assigning an id of 0 here, we have to reset the post_attach variable to false.
@ -718,7 +718,7 @@ class parse_message
// This is very relevant, because it could happen that the post got not submitted, but we do not // This is very relevant, because it could happen that the post got not submitted, but we do not
// know this circumstance here. We could be at the posting page or we could be redirected to the entered // know this circumstance here. We could be at the posting page or we could be redirected to the entered
// post. :) // post. :)
$filedata['post_attach'] = FALSE; $filedata['post_attach'] = false;
} }
} }
else else
@ -766,7 +766,7 @@ class parse_message
} }
} }
if (($add_file || $preview) && $this->filename_data['filename'] != '') if (($add_file || $preview) && $this->filename_data['filename'])
{ {
if ($num_attachments < $config['max_attachments'] || $auth->acl_gets('m_', 'a_')) if ($num_attachments < $config['max_attachments'] || $auth->acl_gets('m_', 'a_'))
{ {
@ -812,14 +812,12 @@ class parse_message
global $auth, $forum_id, $user, $config; global $auth, $forum_id, $user, $config;
// Process poll options // Process poll options
if (!empty($poll_data['poll_option_text']) && if ($poll_data['poll_option_text'] && (($auth->acl_get('f_poll', $forum_id) && !$poll_data['poll_last_vote']) || $auth->acl_get('m_edit', $forum_id)))
(($auth->acl_get('f_poll', $forum_id) && !$poll_data['poll_last_vote']) ||
$auth->acl_get('m_edit', $forum_id)))
{ {
$message = $this->message; $message = $this->message;
$this->message = $poll_data['poll_option_text']; $this->message = $poll_data['poll_option_text'];
if (($result = $this->parse($poll_data['enable_html'], $poll_data['enable_bbcode'], $poll_data['bbcode_uid'], $poll_data['enable_urls'], $poll_data['enable_smilies'], FALSE)) != '') if (($result = $this->parse($poll_data['enable_html'], $poll_data['enable_bbcode'], $poll_data['bbcode_uid'], $poll_data['enable_urls'], $poll_data['enable_smilies'], false)) != '')
{ {
$this->warn_msg[] = $result; $this->warn_msg[] = $result;
} }
@ -847,10 +845,10 @@ class parse_message
$this->warn_msg[] = $user->lang['TOO_MANY_USER_OPTIONS']; $this->warn_msg[] = $user->lang['TOO_MANY_USER_OPTIONS'];
} }
$poll['poll_title'] = (!empty($poll_data['poll_title'])) ? $poll_data['poll_title'] : ''; $poll['poll_title'] = ($poll_data['poll_title']) ? $poll_data['poll_title'] : '';
$poll['poll_length'] = (!empty($poll_data['poll_length'])) ? intval($poll_data['poll_length']) : 0; $poll['poll_length'] = ($poll_data['poll_length']) ? intval($poll_data['poll_length']) : 0;
if (empty($poll['poll_title']) && $poll['poll_options_size']) if (!$poll['poll_title'] && $poll['poll_options_size'])
{ {
$this->warn_msg[] = $user->lang['NO_POLL_TITLE']; $this->warn_msg[] = $user->lang['NO_POLL_TITLE'];
} }
@ -872,12 +870,12 @@ class fulltext_search
// Is the fulltext indexer disabled? If yes then we need not // Is the fulltext indexer disabled? If yes then we need not
// carry on ... it's okay ... I know when I'm not wanted boo hoo // carry on ... it's okay ... I know when I'm not wanted boo hoo
if (empty($config['load_search_upd'])) if (!$config['load_search_upd'])
{ {
return; return;
} }
if (empty($drop_char_match)) if (!$drop_char_match)
{ {
$drop_char_match = array('^', '$', '&', '(', ')', '<', '>', '`', '\'', '"', '|', ',', '@', '_', '?', '%', '~', '.', '[', ']', '{', '}', ':', '\\', '/', '=', '#', '\'', ';', '!', '*'); $drop_char_match = array('^', '$', '&', '(', ')', '<', '>', '`', '\'', '"', '|', ',', '@', '_', '?', '%', '~', '.', '[', ']', '{', '}', ':', '\\', '/', '=', '#', '\'', ';', '!', '*');
$drop_char_replace = array(' ', ' ', ' ', ' ', ' ', ' ', ' ', '', '', ' ', ' ', ' ', ' ', '', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '' , ' ', ' ', ' ', ' ', ' ', ' ', ' '); $drop_char_replace = array(' ', ' ', ' ', ' ', ' ', ' ', ' ', '', '', ' ', ' ', ' ', ' ', '', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '' , ' ', ' ', ' ', ' ', ' ', ' ', ' ');
@ -921,13 +919,13 @@ class fulltext_search
// Split words // Split words
$text = explode(' ', preg_replace('#\s+#', ' ', $text)); $text = explode(' ', preg_replace('#\s+#', ' ', $text));
if (!empty($stopwords)) if ($stopwords)
{ {
$stopped_words = array_intersect($text, $stopwords); $stopped_words = array_intersect($text, $stopwords);
$text = array_diff($text, $stopwords); $text = array_diff($text, $stopwords);
} }
if (!empty($replace_synonym)) if ($replace_synonym)
{ {
$text = str_replace($replace_synonym, $match_synonym, $text); $text = str_replace($replace_synonym, $match_synonym, $text);
} }
@ -941,7 +939,7 @@ class fulltext_search
// Is the fulltext indexer disabled? If yes then we need not // Is the fulltext indexer disabled? If yes then we need not
// carry on ... it's okay ... I know when I'm not wanted boo hoo // carry on ... it's okay ... I know when I'm not wanted boo hoo
if (empty($config['load_search_upd'])) if (!$config['load_search_upd'])
{ {
return; return;
} }
@ -1090,7 +1088,7 @@ class fulltext_search
// Is the fulltext indexer disabled? If yes then we need not // Is the fulltext indexer disabled? If yes then we need not
// carry on ... it's okay ... I know when I'm not wanted boo hoo // carry on ... it's okay ... I know when I'm not wanted boo hoo
if (empty($config['load_search_upd'])) if (!$config['load_search_upd'])
{ {
return; return;
} }

View file

@ -368,6 +368,8 @@ CREATE TABLE phpbb_posts (
bbcode_bitfield int(11) UNSIGNED DEFAULT '0' NOT NULL, bbcode_bitfield int(11) UNSIGNED DEFAULT '0' NOT NULL,
bbcode_uid varchar(5) DEFAULT '' NOT NULL, bbcode_uid varchar(5) DEFAULT '' NOT NULL,
post_edit_time int(11) UNSIGNED DEFAULT '0' NOT NULL, post_edit_time int(11) UNSIGNED DEFAULT '0' NOT NULL,
post_edit_reason varchar(100) DEFAULT NULL,
post_edit_user mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
post_edit_count smallint(5) UNSIGNED DEFAULT '0' NOT NULL, post_edit_count smallint(5) UNSIGNED DEFAULT '0' NOT NULL,
post_edit_locked tinyint(1) UNSIGNED DEFAULT '0' NOT NULL, post_edit_locked tinyint(1) UNSIGNED DEFAULT '0' NOT NULL,
PRIMARY KEY (post_id), PRIMARY KEY (post_id),

View file

@ -559,6 +559,7 @@ $lang += array(
'STICKY_ANNOUNCE_TIME_LIMIT' => 'Sticky/Announcement time limit', 'STICKY_ANNOUNCE_TIME_LIMIT' => 'Sticky/Announcement time limit',
'STICK_TOPIC_FOR_EXPLAIN' => 'Enter 0 or leave blank for a never ending Sticky/Announcement', 'STICK_TOPIC_FOR_EXPLAIN' => 'Enter 0 or leave blank for a never ending Sticky/Announcement',
'EDIT_POST' => 'Edit post', 'EDIT_POST' => 'Edit post',
'EDIT_REASON' => 'Reason for editing this post',
'OPTIONS' => 'Options', 'OPTIONS' => 'Options',
'MOD_OPTIONS' => 'Moderator Options', 'MOD_OPTIONS' => 'Moderator Options',
'POST_NORMAL' => 'Normal', 'POST_NORMAL' => 'Normal',

View file

@ -11,7 +11,7 @@
// //
// ------------------------------------------------------------- // -------------------------------------------------------------
define('IN_PHPBB', TRUE); define('IN_PHPBB', true);
$phpbb_root_path = './'; $phpbb_root_path = './';
$phpEx = substr(strrchr(__FILE__, '.'), 1); $phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.'.$phpEx); include($phpbb_root_path . 'common.'.$phpEx);
@ -26,27 +26,23 @@ $auth->acl($user->data);
// Grab only parameters needed here // Grab only parameters needed here
$mode = request_var('mode', '');
$post_id = request_var('p', 0); $post_id = request_var('p', 0);
$topic_id = request_var('t', 0); $topic_id = request_var('t', 0);
$forum_id = request_var('f', 0); $forum_id = request_var('f', 0);
$draft_id = request_var('d', 0); $draft_id = request_var('d', 0);
$lastclick = request_var('lastclick', 0); $lastclick = request_var('lastclick', 0);
$submit = (isset($_POST['post'])) ? TRUE : FALSE; $submit = (isset($_POST['post']));
$preview = (isset($_POST['preview'])) ? TRUE : FALSE; $preview = (isset($_POST['preview']));
$save = (isset($_POST['save'])) ? TRUE : FALSE; $save = (isset($_POST['save']));
$load = (isset($_POST['load'])) ? TRUE : FALSE; $load = (isset($_POST['load']));
$cancel = (isset($_POST['cancel'])) ? TRUE : FALSE; $cancel = (isset($_POST['cancel']));
$confirm = (isset($_POST['confirm'])) ? TRUE : FALSE; $confirm = (isset($_POST['confirm']));
$delete = (isset($_POST['delete'])) ? TRUE : FALSE; $delete = (isset($_POST['delete']));
$refresh = isset($_POST['add_file']) || isset($_POST['delete_file']) || isset($_POST['edit_comment']) || isset($_POST['cancel_unglobalise']) || $save || $load; $refresh = isset($_POST['add_file']) || isset($_POST['delete_file']) || isset($_POST['edit_comment']) || isset($_POST['cancel_unglobalise']) || $save || $load;
if ($delete && !$preview && !$refresh && $submit) $mode = ($delete && !$preview && !$refresh && $submit) ? 'delete' : request_var('mode', '');
{
$mode = 'delete';
}
$error = array(); $error = array();
$current_time = time(); $current_time = time();
@ -124,7 +120,7 @@ if ($sql)
extract($db->sql_fetchrow($result)); extract($db->sql_fetchrow($result));
$db->sql_freeresult($result); $db->sql_freeresult($result);
$quote_username = (!empty($username)) ? $username : ((isset($post_username)) ? $post_username : ''); $quote_username = ($username) ? $username : ((isset($post_username)) ? $post_username : '');
$forum_id = (int) $forum_id; $forum_id = (int) $forum_id;
$topic_id = (int) $topic_id; $topic_id = (int) $topic_id;
@ -132,12 +128,14 @@ if ($sql)
$post_edit_locked = (int) $post_edit_locked; $post_edit_locked = (int) $post_edit_locked;
$user->setup(FALSE, $forum_style); $user->setup(false, $forum_style);
if ($forum_password) if ($forum_password)
{ {
$forum_data = array('forum_id' => $forum_id, 'forum_password' => $forum_password); login_forum_box(array(
login_forum_box($forum_data); 'forum_id' => $forum_id,
'forum_password'=> $forum_password)
);
} }
$post_subject = (in_array($mode, array('quote', 'edit', 'delete'))) ? $post_subject : $topic_title; $post_subject = (in_array($mode, array('quote', 'edit', 'delete'))) ? $post_subject : $topic_title;
@ -174,11 +172,11 @@ if ($sql)
// //
foreach ($message_parser->attachment_data as $pos => $var_ary) foreach ($message_parser->attachment_data as $pos => $var_ary)
{ {
prepare_data($message_parser->attachment_data[$pos]['physical_filename'], TRUE); prepare_data($message_parser->attachment_data[$pos]['physical_filename'], true);
prepare_data($message_parser->attachment_data[$pos]['comment'], TRUE); prepare_data($message_parser->attachment_data[$pos]['comment'], true);
prepare_data($message_parser->attachment_data[$pos]['real_filename'], TRUE); prepare_data($message_parser->attachment_data[$pos]['real_filename'], true);
prepare_data($message_parser->attachment_data[$pos]['extension'], TRUE); prepare_data($message_parser->attachment_data[$pos]['extension'], true);
prepare_data($message_parser->attachment_data[$pos]['mimetype'], TRUE); prepare_data($message_parser->attachment_data[$pos]['mimetype'], true);
$message_parser->attachment_data[$pos]['filesize'] = (int) $message_parser->attachment_data[$pos]['filesize']; $message_parser->attachment_data[$pos]['filesize'] = (int) $message_parser->attachment_data[$pos]['filesize'];
$message_parser->attachment_data[$pos]['filetime'] = (int) $message_parser->attachment_data[$pos]['filetime']; $message_parser->attachment_data[$pos]['filetime'] = (int) $message_parser->attachment_data[$pos]['filetime'];
@ -214,13 +212,13 @@ if ($sql)
if (!in_array($mode, array('quote', 'edit', 'delete'))) if (!in_array($mode, array('quote', 'edit', 'delete')))
{ {
$enable_sig = ($config['allow_sig'] && $user->optionget('attachsig')) ? TRUE : FALSE; $enable_sig = ($config['allow_sig'] && $user->optionget('attachsig'));
$enable_smilies = ($config['allow_smilies'] && $user->optionget('smile')) ? TRUE : FALSE; $enable_smilies = ($config['allow_smilies'] && $user->optionget('smile'));
$enable_bbcode = ($config['allow_bbcode'] && $user->optionget('bbcode')) ? TRUE : FALSE; $enable_bbcode = ($config['allow_bbcode'] && $user->optionget('bbcode'));
$enable_urls = TRUE; $enable_urls = true;
} }
$enable_magic_url = $drafts = FALSE; $enable_magic_url = $drafts = false;
// User own some drafts? // User own some drafts?
if ($user->data['user_id'] != ANONYMOUS && $auth->acl_get('u_savedrafts') && $mode != 'delete') if ($user->data['user_id'] != ANONYMOUS && $auth->acl_get('u_savedrafts') && $mode != 'delete')
@ -234,7 +232,7 @@ if ($sql)
if ($db->sql_fetchrow($result)) if ($db->sql_fetchrow($result))
{ {
$drafts = TRUE; $drafts = true;
} }
} }
} }
@ -358,7 +356,6 @@ if ($mode == 'delete' && $poster_id != $user->data['user_id'] && !$auth->acl_get
trigger_error('DELETE_OWN_POSTS'); trigger_error('DELETE_OWN_POSTS');
} }
if ($mode == 'delete' && $poster_id == $user->data['user_id'] && $auth->acl_get('f_delete', $forum_id) && $post_id != $topic_last_post_id) if ($mode == 'delete' && $poster_id == $user->data['user_id'] && $auth->acl_get('f_delete', $forum_id) && $post_id != $topic_last_post_id)
{ {
trigger_error('CANNOT_DELETE_REPLIED'); trigger_error('CANNOT_DELETE_REPLIED');
@ -371,12 +368,12 @@ if ($mode == 'delete')
// HTML, BBCode, Smilies, Images and Flash status // HTML, BBCode, Smilies, Images and Flash status
$html_status = ($config['allow_html'] && $auth->acl_get('f_html', $forum_id)) ? TRUE : FALSE; $html_status = ($config['allow_html'] && $auth->acl_get('f_html', $forum_id));
$bbcode_status = ($config['allow_bbcode'] && $auth->acl_get('f_bbcode', $forum_id)) ? TRUE : FALSE; $bbcode_status = ($config['allow_bbcode'] && $auth->acl_get('f_bbcode', $forum_id));
$smilies_status = ($config['allow_smilies'] && $auth->acl_get('f_smilies', $forum_id)) ? TRUE : FALSE; $smilies_status = ($config['allow_smilies'] && $auth->acl_get('f_smilies', $forum_id));
$img_status = ($auth->acl_get('f_img', $forum_id)) ? TRUE : FALSE; $img_status = ($auth->acl_get('f_img', $forum_id));
$flash_status = ($auth->acl_get('f_flash', $forum_id)) ? TRUE : FALSE; $flash_status = ($auth->acl_get('f_flash', $forum_id));
$quote_status = ($auth->acl_get('f_quote', $forum_id)) ? TRUE : FALSE; $quote_status = ($auth->acl_get('f_quote', $forum_id));
// Bump Topic // Bump Topic
if ($mode == 'bump' && ($bump_time = bump_topic_allowed($forum_id, $topic_bumped, $topic_last_post_time, $topic_poster, $topic_last_poster_id))) if ($mode == 'bump' && ($bump_time = bump_topic_allowed($forum_id, $topic_bumped, $topic_last_post_time, $topic_poster, $topic_last_poster_id)))
@ -411,6 +408,7 @@ if ($mode == 'bump' && ($bump_time = bump_topic_allowed($forum_id, $topic_bumped
meta_refresh(3, "viewtopic.$phpEx$SID&amp;f=$forum_id&amp;t=$topic_id&amp;p=$topic_last_post_id#$topic_last_post_id"); meta_refresh(3, "viewtopic.$phpEx$SID&amp;f=$forum_id&amp;t=$topic_id&amp;p=$topic_last_post_id#$topic_last_post_id");
$message = $user->lang['TOPIC_BUMPED'] . '<br /><br />' . sprintf($user->lang['VIEW_MESSAGE'], '<a href="viewtopic.' . $phpEx . $SID . "&amp;f=$forum_id&amp;t=$topic_id&amp;p=$topic_last_post_id#$topic_last_post_id\">", '</a>') . '<br /><br />' . sprintf($user->lang['RETURN_FORUM'], '<a href="viewforum.' . $phpEx . $SID .'&amp;f=' . $forum_id . '">', '</a>'); $message = $user->lang['TOPIC_BUMPED'] . '<br /><br />' . sprintf($user->lang['VIEW_MESSAGE'], '<a href="viewtopic.' . $phpEx . $SID . "&amp;f=$forum_id&amp;t=$topic_id&amp;p=$topic_last_post_id#$topic_last_post_id\">", '</a>') . '<br /><br />' . sprintf($user->lang['RETURN_FORUM'], '<a href="viewforum.' . $phpEx . $SID .'&amp;f=' . $forum_id . '">', '</a>');
trigger_error($message); trigger_error($message);
} }
else if ($mode == 'bump') else if ($mode == 'bump')
@ -422,11 +420,11 @@ else if ($mode == 'bump')
if ($save && $user->data['user_id'] != ANONYMOUS && $auth->acl_get('u_savedrafts')) if ($save && $user->data['user_id'] != ANONYMOUS && $auth->acl_get('u_savedrafts'))
{ {
$subject = preg_replace('#&amp;(\#[0-9]+;)#', '&\1', request_var('subject', '')); $subject = preg_replace('#&amp;(\#[0-9]+;)#', '&\1', request_var('subject', ''));
$subject = ($subject == '' && $mode != 'post') ? $topic_title : $subject; $subject = (!$subject && $mode != 'post') ? $topic_title : $subject;
$message = (isset($_POST['message'])) ? htmlspecialchars(trim(str_replace(array('\\\'', '\\"', '\\0', '\\\\'), array('\'', '"', '\0', '\\'), $_POST['message']))) : ''; $message = (isset($_POST['message'])) ? htmlspecialchars(trim(str_replace(array('\\\'', '\\"', '\\0', '\\\\'), array('\'', '"', '\0', '\\'), $_POST['message']))) : '';
$message = preg_replace('#&amp;(\#[0-9]+;)#', '&\1', $message); $message = preg_replace('#&amp;(\#[0-9]+;)#', '&\1', $message);
if ($subject != '' && $message != '') if (!$subject && !$message)
{ {
$sql = 'INSERT INTO ' . DRAFTS_TABLE . ' ' . $db->sql_build_array('INSERT', array( $sql = 'INSERT INTO ' . DRAFTS_TABLE . ' ' . $db->sql_build_array('INSERT', array(
'user_id' => $user->data['user_id'], 'user_id' => $user->data['user_id'],
@ -437,14 +435,7 @@ if ($save && $user->data['user_id'] != ANONYMOUS && $auth->acl_get('u_savedrafts
'draft_message' => $message)); 'draft_message' => $message));
$db->sql_query($sql); $db->sql_query($sql);
if ($mode == 'post') $meta_info = ($mode == 'post') ? "viewforum.$phpEx$SID&amp;f=$forum_id" : "viewtopic.$phpEx$SID&amp;f=$forum_id&amp;t=$topic_id";
{
$meta_info = "viewforum.$phpEx$SID&amp;f=$forum_id";
}
else
{
$meta_info = "viewtopic.$phpEx$SID&amp;f=$forum_id&amp;t=$topic_id";
}
meta_refresh(3, $meta_info); meta_refresh(3, $meta_info);
@ -492,7 +483,7 @@ if ($submit || $preview || $refresh)
$topic_cur_post_id = request_var('topic_cur_post_id', 0); $topic_cur_post_id = request_var('topic_cur_post_id', 0);
$subject = request_var('subject', ''); $subject = request_var('subject', '');
if (strcmp($subject, strtoupper($subject)) == 0 && $subject != '') if (strcmp($subject, strtoupper($subject)) == 0 && $subject)
{ {
$subject = phpbb_strtolower($subject); $subject = phpbb_strtolower($subject);
} }
@ -502,29 +493,31 @@ if ($submit || $preview || $refresh)
$message_parser->message = (isset($_POST['message'])) ? htmlspecialchars(trim(str_replace(array('\\\'', '\\"', '\\0', '\\\\'), array('\'', '"', '\0', '\\'), $_POST['message']))) : ''; $message_parser->message = (isset($_POST['message'])) ? htmlspecialchars(trim(str_replace(array('\\\'', '\\"', '\\0', '\\\\'), array('\'', '"', '\0', '\\'), $_POST['message']))) : '';
$message_parser->message = preg_replace('#&amp;(\#[0-9]+;)#', '&\1', $message_parser->message); $message_parser->message = preg_replace('#&amp;(\#[0-9]+;)#', '&\1', $message_parser->message);
$username = (!empty($_POST['username'])) ? request_var('username', '') : ((!empty($username)) ? $username : ''); $username = ($_POST['username']) ? request_var('username', '') : $username;
$post_edit_reason = ($_POST['edit_reason'] && $mode == 'edit' && $user->data['user_id'] != $poster_id) ? request_var('edit_reason', '') : '';
$topic_type = (isset($_POST['topic_type'])) ? (int) $_POST['topic_type'] : (($mode != 'post') ? $topic_type : POST_NORMAL); $topic_type = (isset($_POST['topic_type'])) ? (int) $_POST['topic_type'] : (($mode != 'post') ? $topic_type : POST_NORMAL);
$topic_time_limit = (isset($_POST['topic_time_limit'])) ? (int) $_POST['topic_time_limit'] : (($mode != 'post') ? $topic_time_limit : 0); $topic_time_limit = (isset($_POST['topic_time_limit'])) ? (int) $_POST['topic_time_limit'] : (($mode != 'post') ? $topic_time_limit : 0);
$icon_id = request_var('icon', 0); $icon_id = request_var('icon', 0);
$enable_html = (!$html_status || !empty($_POST['disable_html'])) ? FALSE : TRUE; $enable_html = (!$html_status || $_POST['disable_html']) ? false : true;
$enable_bbcode = (!$bbcode_status || !empty($_POST['disable_bbcode'])) ? FALSE : TRUE; $enable_bbcode = (!$bbcode_status || $_POST['disable_bbcode']) ? false : true;
$enable_smilies = (!$smilies_status || !empty($_POST['disable_smilies'])) ? FALSE : TRUE; $enable_smilies = (!$smilies_status || $_POST['disable_smilies']) ? false : true;
$enable_urls = (isset($_POST['disable_magic_url'])) ? 0 : 1; $enable_urls = (isset($_POST['disable_magic_url'])) ? 0 : 1;
$enable_sig = (!$config['allow_sig']) ? FALSE : ((!empty($_POST['attach_sig']) && $user->data['user_id'] != ANONYMOUS) ? TRUE : FALSE); $enable_sig = (!$config['allow_sig']) ? false : (($_POST['attach_sig'] && $user->data['user_id'] != ANONYMOUS) ? true : false);
$notify = (!empty($_POST['notify'])) ? TRUE : FALSE; $notify = ($_POST['notify']);
$topic_lock = (isset($_POST['lock_topic'])) ? TRUE : FALSE; $topic_lock = (isset($_POST['lock_topic']));
$post_lock = (isset($_POST['lock_post'])) ? TRUE : FALSE; $post_lock = (isset($_POST['lock_post']));
$poll_delete = (isset($_POST['poll_delete'])) ? TRUE : FALSE; $poll_delete = (isset($_POST['poll_delete']));
// Faster than crc32 // Faster than crc32
$check_value = (($preview || $refresh) && isset($_POST['status_switch'])) ? (int) $_POST['status_switch'] : (($enable_html+1) << 16) + (($enable_bbcode+1) << 8) + (($enable_smilies+1) << 4) + (($enable_urls+1) << 2) + (($enable_sig+1) << 1); $check_value = (($preview || $refresh) && isset($_POST['status_switch'])) ? (int) $_POST['status_switch'] : (($enable_html+1) << 16) + (($enable_bbcode+1) << 8) + (($enable_smilies+1) << 4) + (($enable_urls+1) << 2) + (($enable_sig+1) << 1);
$status_switch = (isset($_POST['status_switch']) && (int) $_POST['status_switch'] != $check_value) ? TRUE : FALSE; $status_switch = (isset($_POST['status_switch']) && (int) $_POST['status_switch'] != $check_value);
if ($poll_delete && (($mode == 'edit' && !empty($poll_options) && empty($poll_last_vote) && $poster_id == $user->data['user_id'] && $auth->acl_get('f_delete', $forum_id)) || $auth->acl_get('m_delete', $forum_id))) if ($poll_delete && (($mode == 'edit' && $poll_options && !$poll_last_vote && $poster_id == $user->data['user_id'] && $auth->acl_get('f_delete', $forum_id)) || $auth->acl_get('m_delete', $forum_id)))
{ {
// Delete Poll // Delete Poll
$sql = 'DELETE FROM ' . POLL_OPTIONS_TABLE . ', ' . POLL_VOTES_TABLE . " $sql = 'DELETE FROM ' . POLL_OPTIONS_TABLE . ', ' . POLL_VOTES_TABLE . "
@ -562,10 +555,10 @@ if ($submit || $preview || $refresh)
{ {
if (topic_review($topic_id, $forum_id, 'post_review', $topic_cur_post_id)) if (topic_review($topic_id, $forum_id, 'post_review', $topic_cur_post_id))
{ {
$template->assign_var('S_POST_REVIEW', TRUE); $template->assign_var('S_POST_REVIEW', true);
} }
$submit = FALSE; $submit = false;
$refresh = TRUE; $refresh = true;
} }
@ -615,19 +608,19 @@ if ($submit || $preview || $refresh)
// Validate username // Validate username
// TODO // TODO
if (($username != '' && $user->data['user_id'] == ANONYMOUS) || ($mode == 'edit' && $post_username != '')) if (($username && $user->data['user_id'] == ANONYMOUS) || ($mode == 'edit' && $post_username))
{ {
include($phpbb_root_path . 'includes/functions_user.' . $phpEx); include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
$username = strip_tags(htmlspecialchars($username)); $username = strip_tags(htmlspecialchars($username));
if (($result = validate_username($username)) != FALSE) if (($result = validate_username($username)) != false)
{ {
$error[] = $result; $error[] = $result;
} }
} }
// Parse subject // Parse subject
if ($subject == '' && ($mode == 'post' || ($mode == 'edit' && $topic_first_post_id == $post_id))) if (!$subject && ($mode == 'post' || ($mode == 'edit' && $topic_first_post_id == $post_id)))
{ {
$error[] = $user->lang['EMPTY_SUBJECT']; $error[] = $user->lang['EMPTY_SUBJECT'];
} }
@ -692,19 +685,19 @@ if ($submit || $preview || $refresh)
$row = $db->sql_fetchrow($result); $row = $db->sql_fetchrow($result);
if ($row && (int)$row['forum_id'] == 0 && $row['topic_type'] == POST_GLOBAL) if ($row && !$row['forum_id'] && $row['topic_type'] == POST_GLOBAL)
{ {
$to_forum_id = request_var('to_forum_id', 0); $to_forum_id = request_var('to_forum_id', 0);
if (!$to_forum_id) if (!$to_forum_id)
{ {
$template->assign_vars(array( $template->assign_vars(array(
'S_FORUM_SELECT' => make_forum_select(FALSE, FALSE, FALSE, TRUE, TRUE), 'S_FORUM_SELECT' => make_forum_select(false, false, false, true, true),
'S_UNGLOBALISE' => TRUE) 'S_UNGLOBALISE' => true)
); );
$submit = FALSE; $submit = false;
$refresh = TRUE; $refresh = true;
} }
else else
{ {
@ -717,7 +710,7 @@ if ($submit || $preview || $refresh)
{ {
// Lock/Unlock Topic // Lock/Unlock Topic
$change_topic_status = $topic_status; $change_topic_status = $topic_status;
$perm_lock_unlock = ($auth->acl_get('m_lock', $forum_id) || ($auth->acl_get('f_user_lock', $forum_id) && $user->data['user_id'] != ANONYMOUS && $user->data['user_id'] == $topic_poster)) ? TRUE : FALSE; $perm_lock_unlock = ($auth->acl_get('m_lock', $forum_id) || ($auth->acl_get('f_user_lock', $forum_id) && $user->data['user_id'] != ANONYMOUS && $user->data['user_id'] == $topic_poster));
if ($topic_status == ITEM_LOCKED && !$topic_lock && $perm_lock_unlock) if ($topic_status == ITEM_LOCKED && !$topic_lock && $perm_lock_unlock)
{ {
@ -737,6 +730,7 @@ if ($submit || $preview || $refresh)
$db->sql_query($sql); $db->sql_query($sql);
$user_lock = ($auth->acl_get('f_user_lock', $forum_id) && $user->data['user_id'] != ANONYMOUS && $user->data['user_id'] == $topic_poster) ? 'USER_' : ''; $user_lock = ($auth->acl_get('f_user_lock', $forum_id) && $user->data['user_id'] != ANONYMOUS && $user->data['user_id'] == $topic_poster) ? 'USER_' : '';
add_log('mod', $forum_id, $topic_id, sprintf($user->lang['LOGM_' . $user_lock . (($change_topic_status == ITEM_LOCKED) ? 'LOCK' : 'UNLOCK')], '<a href="' . generate_board_url() . "/viewtopic.$phpEx$SID&amp;f=$forum_id&amp;t=$topic_id" . '" class="gen" target="_blank">' . $topic_title . '</a>')); add_log('mod', $forum_id, $topic_id, sprintf($user->lang['LOGM_' . $user_lock . (($change_topic_status == ITEM_LOCKED) ? 'LOCK' : 'UNLOCK')], '<a href="' . generate_board_url() . "/viewtopic.$phpEx$SID&amp;f=$forum_id&amp;t=$topic_id" . '" class="gen" target="_blank">' . $topic_title . '</a>'));
} }
@ -751,7 +745,7 @@ if ($submit || $preview || $refresh)
} }
$post_data = array( $post_data = array(
'topic_title' => (empty($topic_title)) ? $subject : $topic_title, 'topic_title' => (!$topic_title) ? $subject : $topic_title,
'topic_first_post_id' => (int) $topic_first_post_id, 'topic_first_post_id' => (int) $topic_first_post_id,
'topic_last_post_id' => (int) $topic_last_post_id, 'topic_last_post_id' => (int) $topic_last_post_id,
'topic_time_limit' => (int) $topic_time_limit, 'topic_time_limit' => (int) $topic_time_limit,
@ -768,6 +762,8 @@ if ($submit || $preview || $refresh)
'enable_indexing' => (bool) $enable_indexing, 'enable_indexing' => (bool) $enable_indexing,
'message_md5' => (int) $message_md5, 'message_md5' => (int) $message_md5,
'post_checksum' => (int) $post_checksum, 'post_checksum' => (int) $post_checksum,
'post_edit_reason' => $post_edit_reason,
'post_edit_user' => ($mode == 'edit') ? $user->data['user_id'] : $post_edit_user,
'forum_parents' => $forum_parents, 'forum_parents' => $forum_parents,
'forum_name' => $forum_name, 'forum_name' => $forum_name,
'notify' => $notify, 'notify' => $notify,
@ -803,20 +799,20 @@ if (!sizeof($error) && $preview)
format_display($preview_message, $preview_signature, $message_parser->bbcode_uid, $preview_signature_uid, $enable_html, $enable_bbcode, $enable_urls, $enable_smilies, $enable_sig); format_display($preview_message, $preview_signature, $message_parser->bbcode_uid, $preview_signature_uid, $enable_html, $enable_bbcode, $enable_urls, $enable_smilies, $enable_sig);
// Poll Preview // Poll Preview
if (($mode == 'post' || ($mode == 'edit' && $post_id == $topic_first_post_id && empty($poll_last_vote))) && ($auth->acl_get('f_poll', $forum_id) || $auth->acl_get('m_edit', $forum_id))) if (($mode == 'post' || ($mode == 'edit' && $post_id == $topic_first_post_id && !$poll_last_vote)) && ($auth->acl_get('f_poll', $forum_id) || $auth->acl_get('m_edit', $forum_id)))
{ {
decode_text($poll_title, $message_parser->bbcode_uid); decode_text($poll_title, $message_parser->bbcode_uid);
$preview_poll_title = format_display($poll_title, $null, $message_parser->bbcode_uid, FALSE, $enable_html, $enable_bbcode, $enable_urls, $enable_smilies, FALSE, FALSE); $preview_poll_title = format_display($poll_title, $null, $message_parser->bbcode_uid, false, $enable_html, $enable_bbcode, $enable_urls, $enable_smilies, false, false);
$template->assign_vars(array( $template->assign_vars(array(
'S_HAS_POLL_OPTIONS' => (sizeof($poll_options)) ? TRUE : FALSE, 'S_HAS_POLL_OPTIONS' => (sizeof($poll_options)),
'POLL_QUESTION' => $preview_poll_title) 'POLL_QUESTION' => $preview_poll_title)
); );
foreach ($poll_options as $option) foreach ($poll_options as $option)
{ {
$template->assign_block_vars('poll_option', array( $template->assign_block_vars('poll_option', array(
'POLL_OPTION_CAPTION' => format_display(stripslashes($option), $enable_html, $enable_bbcode, $message_parser->bbcode_uid, $enable_urls, $enable_smilies, FALSE, FALSE)) 'POLL_OPTION_CAPTION' => format_display(stripslashes($option), $enable_html, $enable_bbcode, $message_parser->bbcode_uid, $enable_urls, $enable_smilies, false, false))
); );
} }
} }
@ -827,8 +823,8 @@ if (!sizeof($error) && $preview)
include($phpbb_root_path . 'includes/functions_display.' . $phpEx); include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
$extensions = $update_count = array(); $extensions = $update_count = array();
$template->assign_var('S_HAS_ATTACHMENTS', TRUE); $template->assign_var('S_HAS_ATTACHMENTS', true);
display_attachments('attachment', $message_parser->attachment_data, $update_count, TRUE); display_attachments('attachment', $message_parser->attachment_data, $update_count, true);
} }
} }
@ -837,6 +833,7 @@ if (!sizeof($error) && $preview)
$bbcode_uid = ($mode == 'quote' && !$preview && !$refresh && !sizeof($error)) ? $bbcode_uid : $message_parser->bbcode_uid; $bbcode_uid = ($mode == 'quote' && !$preview && !$refresh && !sizeof($error)) ? $bbcode_uid : $message_parser->bbcode_uid;
decode_text($post_text, $bbcode_uid); decode_text($post_text, $bbcode_uid);
if ($subject) if ($subject)
{ {
decode_text($subject, $bbcode_uid); decode_text($subject, $bbcode_uid);
@ -875,7 +872,7 @@ generate_smilies('inline', $forum_id);
// Generate Topic icons // Generate Topic icons
$s_topic_icons = FALSE; $s_topic_icons = false;
if ($enable_icons) if ($enable_icons)
{ {
// Grab icons // Grab icons
@ -899,12 +896,12 @@ if ($enable_icons)
} }
} }
$s_topic_icons = TRUE; $s_topic_icons = true;
} }
} }
// Topic type selection ... only for first post in topic. // Topic type selection ... only for first post in topic.
$topic_type_toggle = FALSE; $topic_type_toggle = false;
if ($mode == 'post' || ($mode == 'edit' && $post_id == $topic_first_post_id)) if ($mode == 'post' || ($mode == 'edit' && $post_id == $topic_first_post_id))
{ {
$topic_types = array( $topic_types = array(
@ -922,7 +919,8 @@ if ($mode == 'post' || ($mode == 'edit' && $post_id == $topic_first_post_id))
if ($auth->acl_get('f_' . $auth_key, $forum_id)) if ($auth->acl_get('f_' . $auth_key, $forum_id))
{ {
$topic_type_toggle = TRUE; $topic_type_toggle = true;
$topic_type_array[] = array( $topic_type_array[] = array(
'VALUE' => $topic_value['const'], 'VALUE' => $topic_value['const'],
'S_CHECKED' => ($topic_type == $topic_value['const'] || ($forum_id == 0 && $topic_value['const'] == POST_GLOBAL)) ? ' checked="checked"' : '', 'S_CHECKED' => ($topic_type == $topic_value['const'] || ($forum_id == 0 && $topic_value['const'] == POST_GLOBAL)) ? ' checked="checked"' : '',
@ -937,6 +935,7 @@ if ($mode == 'post' || ($mode == 'edit' && $post_id == $topic_first_post_id))
'VALUE' => POST_NORMAL, 'VALUE' => POST_NORMAL,
'S_CHECKED' => ($topic_type == POST_NORMAL) ? ' checked="checked"' : '', 'S_CHECKED' => ($topic_type == POST_NORMAL) ? ' checked="checked"' : '',
'L_TOPIC_TYPE' => $user->lang['POST_NORMAL'])), 'L_TOPIC_TYPE' => $user->lang['POST_NORMAL'])),
$topic_type_array $topic_type_array
); );
@ -946,8 +945,8 @@ if ($mode == 'post' || ($mode == 'edit' && $post_id == $topic_first_post_id))
} }
$template->assign_vars(array( $template->assign_vars(array(
'S_TOPIC_TYPE_STICKY' => ($auth->acl_get('f_sticky', $forum_id)) ? TRUE : FALSE, 'S_TOPIC_TYPE_STICKY' => ($auth->acl_get('f_sticky', $forum_id)),
'S_TOPIC_TYPE_ANNOUNCE' => ($auth->acl_get('f_announce', $forum_id)) ? TRUE : FALSE) 'S_TOPIC_TYPE_ANNOUNCE' => ($auth->acl_get('f_announce', $forum_id)))
); );
} }
} }
@ -1006,7 +1005,7 @@ $template->assign_vars(array(
'L_MESSAGE_BODY_EXPLAIN'=> (intval($config['max_post_chars'])) ? sprintf($user->lang['MESSAGE_BODY_EXPLAIN'], intval($config['max_post_chars'])) : '', 'L_MESSAGE_BODY_EXPLAIN'=> (intval($config['max_post_chars'])) ? sprintf($user->lang['MESSAGE_BODY_EXPLAIN'], intval($config['max_post_chars'])) : '',
'FORUM_NAME' => $forum_name, 'FORUM_NAME' => $forum_name,
'FORUM_DESC' => (!empty($forum_desc)) ? strip_tags($forum_desc) : '', 'FORUM_DESC' => ($forum_desc) ? strip_tags($forum_desc) : '',
'TOPIC_TITLE' => $topic_title, 'TOPIC_TITLE' => $topic_title,
'MODERATORS' => (sizeof($moderators)) ? implode(', ', $moderators[$forum_id]) : '', 'MODERATORS' => (sizeof($moderators)) ? implode(', ', $moderators[$forum_id]) : '',
'USERNAME' => ((!$preview && $mode != 'quote') || $preview) ? stripslashes($username) : '', 'USERNAME' => ((!$preview && $mode != 'quote') || $preview) ? stripslashes($username) : '',
@ -1024,33 +1023,35 @@ $template->assign_vars(array(
'POST_DATE' => ($post_time) ? $user->format_date($post_time) : '', 'POST_DATE' => ($post_time) ? $user->format_date($post_time) : '',
'ERROR' => (sizeof($error)) ? implode('<br />', $error) : '', 'ERROR' => (sizeof($error)) ? implode('<br />', $error) : '',
'TOPIC_TIME_LIMIT' => (int) $topic_time_limit, 'TOPIC_TIME_LIMIT' => (int) $topic_time_limit,
'EDIT_REASON' => $post_edit_reason,
'U_VIEW_FORUM' => "viewforum.$phpEx$SID&amp;f=" . $forum_id, 'U_VIEW_FORUM' => "viewforum.$phpEx$SID&amp;f=" . $forum_id,
'U_VIEWTOPIC' => ($mode != 'post') ? "viewtopic.$phpEx$SID&amp;$forum_id&amp;t=$topic_id" : '', 'U_VIEWTOPIC' => ($mode != 'post') ? "viewtopic.$phpEx$SID&amp;$forum_id&amp;t=$topic_id" : '',
'S_DISPLAY_PREVIEW' => ($preview && !sizeof($error)), 'S_DISPLAY_PREVIEW' => ($preview && !sizeof($error)),
'S_EDIT_POST' => ($mode == 'edit'), 'S_EDIT_POST' => ($mode == 'edit'),
'S_DISPLAY_USERNAME' => ($user->data['user_id'] == ANONYMOUS || ($mode == 'edit' && $post_username != '')) ? TRUE : FALSE, 'S_EDIT_REASON' => ($mode == 'edit' && $user->data['user_id'] != $poster_id),
'S_DISPLAY_USERNAME' => ($user->data['user_id'] == ANONYMOUS || ($mode == 'edit' && $post_username)),
'S_SHOW_TOPIC_ICONS' => $s_topic_icons, 'S_SHOW_TOPIC_ICONS' => $s_topic_icons,
'S_DELETE_ALLOWED' => ($mode == 'edit' && (($post_id == $topic_last_post_id && $poster_id == $user->data['user_id'] && $auth->acl_get('f_delete', $forum_id)) || $auth->acl_get('m_delete', $forum_id))) ? TRUE : FALSE, 'S_DELETE_ALLOWED' => ($mode == 'edit' && (($post_id == $topic_last_post_id && $poster_id == $user->data['user_id'] && $auth->acl_get('f_delete', $forum_id)) || $auth->acl_get('m_delete', $forum_id))),
'S_HTML_ALLOWED' => $html_status, 'S_HTML_ALLOWED' => $html_status,
'S_HTML_CHECKED' => ($html_checked) ? ' checked="checked"' : '', 'S_HTML_CHECKED' => ($html_checked) ? ' checked="checked"' : '',
'S_BBCODE_ALLOWED' => $bbcode_status, 'S_BBCODE_ALLOWED' => $bbcode_status,
'S_BBCODE_CHECKED' => ($bbcode_checked) ? ' checked="checked"' : '', 'S_BBCODE_CHECKED' => ($bbcode_checked) ? ' checked="checked"' : '',
'S_SMILIES_ALLOWED' => $smilies_status, 'S_SMILIES_ALLOWED' => $smilies_status,
'S_SMILIES_CHECKED' => ($smilies_checked) ? ' checked="checked"' : '', 'S_SMILIES_CHECKED' => ($smilies_checked) ? ' checked="checked"' : '',
'S_SIG_ALLOWED' => ($auth->acl_get('f_sigs', $forum_id) && $config['allow_sig'] && $user->data['user_id'] != ANONYMOUS) ? TRUE : FALSE, 'S_SIG_ALLOWED' => ($auth->acl_get('f_sigs', $forum_id) && $config['allow_sig'] && $user->data['user_id'] != ANONYMOUS),
'S_SIGNATURE_CHECKED' => ($sig_checked) ? ' checked="checked"' : '', 'S_SIGNATURE_CHECKED' => ($sig_checked) ? ' checked="checked"' : '',
'S_NOTIFY_ALLOWED' => ($user->data['user_id'] != ANONYMOUS) ? TRUE : FALSE, 'S_NOTIFY_ALLOWED' => ($user->data['user_id'] != ANONYMOUS),
'S_NOTIFY_CHECKED' => ($notify_checked) ? ' checked="checked"' : '', 'S_NOTIFY_CHECKED' => ($notify_checked) ? ' checked="checked"' : '',
'S_LOCK_TOPIC_ALLOWED' => (($mode == 'edit' || $mode == 'reply' || $mode == 'quote') && ($auth->acl_get('m_lock', $forum_id) || ($auth->acl_get('f_user_lock', $forum_id) && $user->data['user_id'] != ANONYMOUS && $user->data['user_id'] == $topic_poster))) ? TRUE : FALSE, 'S_LOCK_TOPIC_ALLOWED' => (($mode == 'edit' || $mode == 'reply' || $mode == 'quote') && ($auth->acl_get('m_lock', $forum_id) || ($auth->acl_get('f_user_lock', $forum_id) && $user->data['user_id'] != ANONYMOUS && $user->data['user_id'] == $topic_poster))),
'S_LOCK_TOPIC_CHECKED' => ($lock_topic_checked) ? ' checked="checked"' : '', 'S_LOCK_TOPIC_CHECKED' => ($lock_topic_checked) ? ' checked="checked"' : '',
'S_LOCK_POST_ALLOWED' => ($mode == 'edit' && $auth->acl_get('m_edit', $forum_id)) ? TRUE : FALSE, 'S_LOCK_POST_ALLOWED' => ($mode == 'edit' && $auth->acl_get('m_edit', $forum_id)),
'S_LOCK_POST_CHECKED' => ($lock_post_checked) ? ' checked="checked"' : '', 'S_LOCK_POST_CHECKED' => ($lock_post_checked) ? ' checked="checked"' : '',
'S_MAGIC_URL_CHECKED' => ($urls_checked) ? ' checked="checked"' : '', 'S_MAGIC_URL_CHECKED' => ($urls_checked) ? ' checked="checked"' : '',
'S_TYPE_TOGGLE' => $topic_type_toggle, 'S_TYPE_TOGGLE' => $topic_type_toggle,
'S_SAVE_ALLOWED' => ($auth->acl_get('u_savedrafts') && $user->data['user_id'] != ANONYMOUS) ? TRUE : FALSE, 'S_SAVE_ALLOWED' => ($auth->acl_get('u_savedrafts') && $user->data['user_id'] != ANONYMOUS),
'S_HAS_DRAFTS' => ($auth->acl_get('u_savedrafts') && $user->data['user_id'] != ANONYMOUS && $drafts) ? TRUE : FALSE, 'S_HAS_DRAFTS' => ($auth->acl_get('u_savedrafts') && $user->data['user_id'] != ANONYMOUS && $drafts),
'S_FORM_ENCTYPE' => $form_enctype, 'S_FORM_ENCTYPE' => $form_enctype,
'S_POST_ACTION' => $s_action, 'S_POST_ACTION' => $s_action,
@ -1058,38 +1059,38 @@ $template->assign_vars(array(
); );
// Poll entry // Poll entry
if (($mode == 'post' || ($mode == 'edit' && $post_id == $topic_first_post_id && empty($poll_last_vote))) && ($auth->acl_get('f_poll', $forum_id) || $auth->acl_get('m_edit', $forum_id))) if (($mode == 'post' || ($mode == 'edit' && $post_id == $topic_first_post_id && !$poll_last_vote)) && ($auth->acl_get('f_poll', $forum_id) || $auth->acl_get('m_edit', $forum_id)))
{ {
$template->assign_vars(array( $template->assign_vars(array(
'S_SHOW_POLL_BOX' => TRUE, 'S_SHOW_POLL_BOX' => true,
'S_POLL_DELETE' => ($mode == 'edit' && !empty($poll_options) && ((empty($poll_last_vote) && $poster_id == $user->data['user_id'] && $auth->acl_get('f_delete', $forum_id)) || $auth->acl_get('m_delete', $forum_id))) ? TRUE : FALSE, 'S_POLL_DELETE' => ($mode == 'edit' && $poll_options && ((!$poll_last_vote && $poster_id == $user->data['user_id'] && $auth->acl_get('f_delete', $forum_id)) || $auth->acl_get('m_delete', $forum_id))),
'L_POLL_OPTIONS_EXPLAIN'=> sprintf($user->lang['POLL_OPTIONS_EXPLAIN'], $config['max_poll_options']), 'L_POLL_OPTIONS_EXPLAIN'=> sprintf($user->lang['POLL_OPTIONS_EXPLAIN'], $config['max_poll_options']),
'POLL_TITLE' => $poll_title, 'POLL_TITLE' => $poll_title,
'POLL_OPTIONS' => (!empty($poll_options)) ? implode("\n", $poll_options) : '', 'POLL_OPTIONS' => ($poll_options) ? implode("\n", $poll_options) : '',
'POLL_MAX_OPTIONS' => (!empty($poll_max_options)) ? $poll_max_options : 1, 'POLL_MAX_OPTIONS' => ($poll_max_options) ? $poll_max_options : 1,
'POLL_LENGTH' => $poll_length) 'POLL_LENGTH' => $poll_length)
); );
} }
else if ($mode == 'edit' && !empty($poll_last_vote) && ($auth->acl_get('f_poll', $forum_id) || $auth->acl_get('m_edit', $forum_id))) else if ($mode == 'edit' && $poll_last_vote && ($auth->acl_get('f_poll', $forum_id) || $auth->acl_get('m_edit', $forum_id)))
{ {
$template->assign_vars(array( $template->assign_vars(array(
'S_POLL_DELETE' => ($mode == 'edit' && !empty($poll_options) && ($auth->acl_get('f_delete', $forum_id) || $auth->acl_get('m_delete', $forum_id))) ? TRUE : FALSE) 'S_POLL_DELETE' => ($mode == 'edit' && $poll_options && ($auth->acl_get('f_delete', $forum_id) || $auth->acl_get('m_delete', $forum_id))))
); );
} }
// Attachment entry // Attachment entry
if ($auth->acl_gets('f_attach', 'u_attach', $forum_id) && $config['allow_attachments'] && $form_enctype != '') if ($auth->acl_gets('f_attach', 'u_attach', $forum_id) && $config['allow_attachments'] && $form_enctype)
{ {
$template->assign_vars(array( $template->assign_vars(array(
'S_SHOW_ATTACH_BOX' => TRUE) 'S_SHOW_ATTACH_BOX' => true)
); );
if (sizeof($message_parser->attachment_data)) if (sizeof($message_parser->attachment_data))
{ {
$template->assign_vars(array( $template->assign_vars(array(
'S_HAS_ATTACHMENTS' => TRUE) 'S_HAS_ATTACHMENTS' => true)
); );
$count = 0; $count = 0;
@ -1141,7 +1142,7 @@ if ($mode == 'reply' || $mode == 'quote')
{ {
if (topic_review($topic_id, $forum_id)) if (topic_review($topic_id, $forum_id))
{ {
$template->assign_var('S_DISPLAY_REVIEW', TRUE); $template->assign_var('S_DISPLAY_REVIEW', true);
} }
} }
@ -1158,15 +1159,15 @@ function user_notification($mode, $subject, $topic_title, $forum_name, $forum_id
{ {
global $db, $user, $censors, $config, $phpbb_root_path, $phpEx, $auth; global $db, $user, $censors, $config, $phpbb_root_path, $phpEx, $auth;
$topic_notification = ($mode == 'reply' || $mode == 'quote') ? TRUE : FALSE; $topic_notification = ($mode == 'reply' || $mode == 'quote');
$forum_notification = ($mode == 'post') ? TRUE : FALSE; $forum_notification = ($mode == 'post');
if (!$topic_notification && !$forum_notification) if (!$topic_notification && !$forum_notification)
{ {
trigger_error('WRONG_NOTIFICATION_MODE'); trigger_error('WRONG_NOTIFICATION_MODE');
} }
if (empty($censors)) if (!$censors)
{ {
$censors = array(); $censors = array();
obtain_word_list($censors); obtain_word_list($censors);
@ -1334,7 +1335,7 @@ function user_notification($mode, $subject, $topic_title, $forum_name, $forum_id
} }
unset($email_list_ary); unset($email_list_ary);
if (!empty($messenger->queue)) if ($messenger->queue)
{ {
$messenger->queue->save(); $messenger->queue->save();
} }
@ -1385,7 +1386,7 @@ function topic_review($topic_id, $forum_id, $mode = 'topic_review', $cur_post_id
global $censors, $config, $phpbb_root_path, $phpEx, $SID; global $censors, $config, $phpbb_root_path, $phpEx, $SID;
// Define censored word matches // Define censored word matches
if (empty($censors)) if (!$censors)
{ {
$censors = array(); $censors = array();
obtain_word_list($censors); obtain_word_list($censors);
@ -1401,11 +1402,9 @@ function topic_review($topic_id, $forum_id, $mode = 'topic_review', $cur_post_id
ORDER BY p.post_time DESC'; ORDER BY p.post_time DESC';
$result = $db->sql_query_limit($sql, $config['posts_per_page']); $result = $db->sql_query_limit($sql, $config['posts_per_page']);
// Okay, let's do the loop, yeah come on baby let's do the loop
// and it goes like this ...
if (!$row = $db->sql_fetchrow($result)) if (!$row = $db->sql_fetchrow($result))
{ {
return FALSE; return false;
} }
$bbcode_bitfield = 0; $bbcode_bitfield = 0;
@ -1430,20 +1429,22 @@ function topic_review($topic_id, $forum_id, $mode = 'topic_review', $cur_post_id
$poster = $row['username']; $poster = $row['username'];
// Handle anon users posting with usernames // Handle anon users posting with usernames
if ($poster_id == ANONYMOUS && $row['post_username'] != '') if ($poster_id == ANONYMOUS && $row['post_username'])
{ {
$poster = $row['post_username']; $poster = $row['post_username'];
$poster_rank = $user->lang['GUEST']; $poster_rank = $user->lang['GUEST'];
} }
$post_subject = ($row['post_subject'] != '') ? $row['post_subject'] : ''; $post_subject = $row['post_subject'];
$message = (empty($row['enable_smilies']) || empty($config['allow_smilies'])) ? preg_replace('#<!\-\- s(.*?) \-\-><img src="\{SMILE_PATH\}\/.*? \/><!\-\- s\1 \-\->#', '\1', $row['post_text']) : str_replace('<img src="{SMILE_PATH}', '<img src="' . $phpbb_root_path . $config['smilies_path'], $row['post_text']); $message = $row['post_text'];
if ($row['bbcode_bitfield']) if ($row['bbcode_bitfield'])
{ {
$bbcode->bbcode_second_pass($message, $row['bbcode_uid'], $row['bbcode_bitfield']); $bbcode->bbcode_second_pass($message, $row['bbcode_uid'], $row['bbcode_bitfield']);
} }
$message = (!$row['enable_smilies'] || !$config['allow_smilies']) ? preg_replace('#<!\-\- s(.*?) \-\-><img src="\{SMILE_PATH\}\/.*? \/><!\-\- s\1 \-\->#', '\1', $message) : str_replace('<img src="{SMILE_PATH}', '<img src="' . $phpbb_root_path . $config['smilies_path'], $message);
if (sizeof($censors['match'])) if (sizeof($censors['match']))
{ {
$post_subject = preg_replace($censors['match'], $censors['replace'], $post_subject); $post_subject = preg_replace($censors['match'], $censors['replace'], $post_subject);
@ -1472,7 +1473,7 @@ function topic_review($topic_id, $forum_id, $mode = 'topic_review', $cur_post_id
$template->assign_var('QUOTE_IMG', $user->img('btn_quote', $user->lang['QUOTE_POST'])); $template->assign_var('QUOTE_IMG', $user->img('btn_quote', $user->lang['QUOTE_POST']));
} }
return TRUE; return true;
} }
@ -1509,12 +1510,12 @@ function delete_post($mode, $post_id, $topic_id, $forum_id, $data)
$db->sql_transaction(); $db->sql_transaction();
if (!delete_posts('post_id', array($post_id), FALSE)) if (!delete_posts('post_id', array($post_id), false))
{ {
// Try to delete topic, we may had an previous error causing inconsistency // Try to delete topic, we may had an previous error causing inconsistency
if ($post_mode = 'delete_topic') if ($post_mode = 'delete_topic')
{ {
delete_topics('topic_id', array($topic_id), FALSE); delete_topics('topic_id', array($topic_id), false);
} }
trigger_error('ALREADY_DELETED'); trigger_error('ALREADY_DELETED');
} }
@ -1526,8 +1527,8 @@ function delete_post($mode, $post_id, $topic_id, $forum_id, $data)
switch ($post_mode) switch ($post_mode)
{ {
case 'delete_topic': case 'delete_topic':
delete_topics('topic_id', array($topic_id), FALSE); delete_topics('topic_id', array($topic_id), false);
set_config('num_topics', $config['num_topics'] - 1, TRUE); set_config('num_topics', $config['num_topics'] - 1, true);
if ($data['topic_type'] != POST_GLOBAL) if ($data['topic_type'] != POST_GLOBAL)
{ {
@ -1535,7 +1536,7 @@ function delete_post($mode, $post_id, $topic_id, $forum_id, $data)
$sql_data[FORUMS_TABLE] .= ($data['topic_approved']) ? ', forum_topics = forum_topics - 1' : ''; $sql_data[FORUMS_TABLE] .= ($data['topic_approved']) ? ', forum_topics = forum_topics - 1' : '';
} }
$sql_data[FORUMS_TABLE] .= ($sql_data[FORUMS_TABLE] != '') ? ', ' : ''; $sql_data[FORUMS_TABLE] .= ($sql_data[FORUMS_TABLE]) ? ', ' : '';
$sql_data[FORUMS_TABLE] .= implode(', ', update_last_post_information('forum', $forum_id)); $sql_data[FORUMS_TABLE] .= implode(', ', update_last_post_information('forum', $forum_id));
$sql_data[TOPICS_TABLE] = 'topic_replies_real = topic_replies_real - 1' . (($data['post_approved']) ? ', topic_replies = topic_replies - 1' : ''); $sql_data[TOPICS_TABLE] = 'topic_replies_real = topic_replies_real - 1' . (($data['post_approved']) ? ', topic_replies = topic_replies - 1' : '');
break; break;
@ -1568,7 +1569,7 @@ function delete_post($mode, $post_id, $topic_id, $forum_id, $data)
$sql_data[FORUMS_TABLE] = 'forum_posts = forum_posts - 1'; $sql_data[FORUMS_TABLE] = 'forum_posts = forum_posts - 1';
} }
$sql_data[FORUMS_TABLE] .= ($sql_data[FORUMS_TABLE] != '') ? ', ' : ''; $sql_data[FORUMS_TABLE] .= ($sql_data[FORUMS_TABLE]) ? ', ' : '';
$sql_data[FORUMS_TABLE] .= implode(', ', update_last_post_information('forum', $forum_id)); $sql_data[FORUMS_TABLE] .= implode(', ', update_last_post_information('forum', $forum_id));
$sql_data[TOPICS_TABLE] = 'topic_bumped = 0, topic_bumper = 0, topic_replies_real = topic_replies_real - 1' . (($data['post_approved']) ? ', topic_replies = topic_replies - 1' : ''); $sql_data[TOPICS_TABLE] = 'topic_bumped = 0, topic_bumper = 0, topic_replies_real = topic_replies_real - 1' . (($data['post_approved']) ? ', topic_replies = topic_replies - 1' : '');
@ -1614,7 +1615,7 @@ function delete_post($mode, $post_id, $topic_id, $forum_id, $data)
} }
$sql_data[USERS_TABLE] = ($auth->acl_get('f_postcount', $forum_id)) ? 'user_posts = user_posts - 1' : ''; $sql_data[USERS_TABLE] = ($auth->acl_get('f_postcount', $forum_id)) ? 'user_posts = user_posts - 1' : '';
set_config('num_posts', $config['num_posts'] - 1, TRUE); set_config('num_posts', $config['num_posts'] - 1, true);
$db->sql_transaction(); $db->sql_transaction();
@ -1622,7 +1623,7 @@ function delete_post($mode, $post_id, $topic_id, $forum_id, $data)
foreach ($sql_data as $table => $update_sql) foreach ($sql_data as $table => $update_sql)
{ {
if ($update_sql != '') if ($update_sql)
{ {
$db->sql_query("UPDATE $table SET $update_sql WHERE " . $where_sql[$table]); $db->sql_query("UPDATE $table SET $update_sql WHERE " . $where_sql[$table]);
} }
@ -1696,7 +1697,7 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
case 'edit_first_post': case 'edit_first_post':
case 'edit': case 'edit':
if (!$auth->acl_gets('m_', 'a_')) if (!$auth->acl_gets('m_', 'a_') || $data['post_edit_reason'])
{ {
$sql_data[POSTS_TABLE]['sql'] = array( $sql_data[POSTS_TABLE]['sql'] = array(
'post_edit_time' => $current_time 'post_edit_time' => $current_time
@ -1718,9 +1719,11 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
'enable_smilies' => $data['enable_smilies'], 'enable_smilies' => $data['enable_smilies'],
'enable_magic_url' => $data['enable_urls'], 'enable_magic_url' => $data['enable_urls'],
'enable_sig' => $data['enable_sig'], 'enable_sig' => $data['enable_sig'],
'post_username' => ($username != '' && $data['poster_id'] == ANONYMOUS) ? stripslashes($username) : '', 'post_username' => ($username && $data['poster_id'] == ANONYMOUS) ? stripslashes($username) : '',
'post_subject' => $subject, 'post_subject' => $subject,
'post_text' => $message, 'post_text' => $message,
'post_edit_reason' => $data['post_edit_reason'],
'post_edit_user' => $data['post_edit_user'],
'post_checksum' => $data['message_md5'], 'post_checksum' => $data['message_md5'],
'post_encoding' => $user->lang['ENCODING'], 'post_encoding' => $user->lang['ENCODING'],
'post_attachment' => (sizeof($filename_data['physical_filename'])) ? 1 : 0, 'post_attachment' => (sizeof($filename_data['physical_filename'])) ? 1 : 0,
@ -1742,13 +1745,13 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
'icon_id' => $data['icon_id'], 'icon_id' => $data['icon_id'],
'topic_approved' => ($auth->acl_get('f_moderate', $data['forum_id'])) ? 0 : 1, 'topic_approved' => ($auth->acl_get('f_moderate', $data['forum_id'])) ? 0 : 1,
'topic_title' => $subject, 'topic_title' => $subject,
'topic_first_poster_name' => ($user->data['user_id'] == ANONYMOUS && !empty($username)) ? stripslashes($username) : $user->data['username'], 'topic_first_poster_name' => ($user->data['user_id'] == ANONYMOUS && $username) ? stripslashes($username) : $user->data['username'],
'topic_type' => $topic_type, 'topic_type' => $topic_type,
'topic_time_limit' => ($topic_type == POST_STICKY || $topic_type == POST_ANNOUNCE) ? ($data['topic_time_limit'] * 86400) : 0, 'topic_time_limit' => ($topic_type == POST_STICKY || $topic_type == POST_ANNOUNCE) ? ($data['topic_time_limit'] * 86400) : 0,
'topic_attachment' => (sizeof($filename_data['physical_filename'])) ? 1 : 0 'topic_attachment' => (sizeof($filename_data['physical_filename'])) ? 1 : 0
); );
if (!empty($poll['poll_options'])) if ($poll['poll_options'])
{ {
$sql_data[TOPICS_TABLE]['sql'] = array_merge($sql_data[TOPICS_TABLE]['sql'], array( $sql_data[TOPICS_TABLE]['sql'] = array_merge($sql_data[TOPICS_TABLE]['sql'], array(
'poll_title' => $poll['poll_title'], 'poll_title' => $poll['poll_title'],
@ -1780,10 +1783,10 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
'topic_first_poster_name' => stripslashes($username), 'topic_first_poster_name' => stripslashes($username),
'topic_type' => $topic_type, 'topic_type' => $topic_type,
'topic_time_limit' => ($topic_type == POST_STICKY || $topic_type == POST_ANNOUNCE) ? ($data['topic_time_limit'] * 86400) : 0, 'topic_time_limit' => ($topic_type == POST_STICKY || $topic_type == POST_ANNOUNCE) ? ($data['topic_time_limit'] * 86400) : 0,
'poll_title' => (!empty($poll['poll_options'])) ? $poll['poll_title'] : '', 'poll_title' => ($poll['poll_options']) ? $poll['poll_title'] : '',
'poll_start' => (!empty($poll['poll_options'])) ? (($poll['poll_start']) ? $poll['poll_start'] : $current_time) : 0, 'poll_start' => ($poll['poll_options']) ? (($poll['poll_start']) ? $poll['poll_start'] : $current_time) : 0,
'poll_max_options' => (!empty($poll['poll_options'])) ? $poll['poll_max_options'] : 1, 'poll_max_options' => ($poll['poll_options']) ? $poll['poll_max_options'] : 1,
'poll_length' => (!empty($poll['poll_options'])) ? $poll['poll_length'] * 86400 : 0, 'poll_length' => ($poll['poll_options']) ? $poll['poll_length'] * 86400 : 0,
'topic_attachment' => ($post_mode == 'edit_topic') ? ((sizeof($filename_data['physical_filename'])) ? 1 : 0) : $data['topic_attachment'] 'topic_attachment' => ($post_mode == 'edit_topic') ? ((sizeof($filename_data['physical_filename'])) ? 1 : 0) : $data['topic_attachment']
); );
@ -1829,14 +1832,14 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
'topic_last_post_id' => $data['post_id'], 'topic_last_post_id' => $data['post_id'],
'topic_last_post_time' => $current_time, 'topic_last_post_time' => $current_time,
'topic_last_poster_id' => (int) $user->data['user_id'], 'topic_last_poster_id' => (int) $user->data['user_id'],
'topic_last_poster_name' => ($user->data['user_id'] == ANONYMOUS && !empty($username)) ? stripslashes($username) : $user->data['username'] 'topic_last_poster_name' => ($user->data['user_id'] == ANONYMOUS && $username) ? stripslashes($username) : $user->data['username']
); );
} }
unset($sql_data[POSTS_TABLE]['sql']); unset($sql_data[POSTS_TABLE]['sql']);
} }
$make_global = FALSE; $make_global = false;
// Are we globalising or unglobalising? // Are we globalising or unglobalising?
if ($post_mode == 'edit_first_post' || $post_mode == 'edit_topic') if ($post_mode == 'edit_first_post' || $post_mode == 'edit_topic')
@ -1852,7 +1855,7 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
if ((int)$row['topic_type'] != POST_GLOBAL && $topic_type == POST_GLOBAL) if ((int)$row['topic_type'] != POST_GLOBAL && $topic_type == POST_GLOBAL)
{ {
// Decrement topic/post count // Decrement topic/post count
$make_global = TRUE; $make_global = true;
$sql_data[FORUMS_TABLE]['stat'] = array(); $sql_data[FORUMS_TABLE]['stat'] = array();
$sql_data[FORUMS_TABLE]['stat'][] = 'forum_posts = forum_posts - ' . ($row['topic_replies_real'] + 1); $sql_data[FORUMS_TABLE]['stat'][] = 'forum_posts = forum_posts - ' . ($row['topic_replies_real'] + 1);
@ -1868,7 +1871,7 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
else if ((int)$row['topic_type'] == POST_GLOBAL && $topic_type != POST_GLOBAL) else if ((int)$row['topic_type'] == POST_GLOBAL && $topic_type != POST_GLOBAL)
{ {
// Increment topic/post count // Increment topic/post count
$make_global = TRUE; $make_global = true;
$sql_data[FORUMS_TABLE]['stat'] = array(); $sql_data[FORUMS_TABLE]['stat'] = array();
$sql_data[FORUMS_TABLE]['stat'][] = 'forum_posts = forum_posts + ' . ($row['topic_replies_real'] + 1); $sql_data[FORUMS_TABLE]['stat'][] = 'forum_posts = forum_posts + ' . ($row['topic_replies_real'] + 1);
@ -1899,7 +1902,7 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
} }
// Update Poll Tables and Attachment Entries // Update Poll Tables and Attachment Entries
if (!empty($poll['poll_options'])) if ($poll['poll_options'])
{ {
$cur_poll_options = array(); $cur_poll_options = array();
@ -1918,7 +1921,7 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
{ {
if (trim($poll['poll_options'][$i])) if (trim($poll['poll_options'][$i]))
{ {
if (empty($cur_poll_options[$i])) if (!$cur_poll_options[$i])
{ {
$sql = 'INSERT INTO ' . POLL_OPTIONS_TABLE . " (poll_option_id, topic_id, poll_option_text) $sql = 'INSERT INTO ' . POLL_OPTIONS_TABLE . " (poll_option_id, topic_id, poll_option_text)
VALUES ($i, " . $data['topic_id'] . ", '" . $db->sql_escape($poll['poll_options'][$i]) . "')"; VALUES ($i, " . $data['topic_id'] . ", '" . $db->sql_escape($poll['poll_options'][$i]) . "')";
@ -1945,7 +1948,7 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
} }
// Submit Attachments // Submit Attachments
if (count($attach_data) && !empty($data['post_id']) && in_array($mode, array('post', 'reply', 'quote', 'edit'))) if (count($attach_data) && $data['post_id'] && in_array($mode, array('post', 'reply', 'quote', 'edit')))
{ {
$space_taken = $files_added = 0; $space_taken = $files_added = 0;
foreach ($attach_data as $attach_row) foreach ($attach_data as $attach_row)
@ -1997,8 +2000,8 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
$db->sql_query($sql); $db->sql_query($sql);
} }
set_config('upload_dir_size', $config['upload_dir_size'] + $space_taken, TRUE); set_config('upload_dir_size', $config['upload_dir_size'] + $space_taken, true);
set_config('num_files', $config['num_files'] + $files_added, TRUE); set_config('num_files', $config['num_files'] + $files_added, true);
} }
$db->sql_transaction('commit'); $db->sql_transaction('commit');
@ -2048,13 +2051,13 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
{ {
if ($post_mode == 'post') if ($post_mode == 'post')
{ {
set_config('num_topics', $config['num_topics'] + 1, TRUE); set_config('num_topics', $config['num_topics'] + 1, true);
set_config('num_posts', $config['num_posts'] + 1, TRUE); set_config('num_posts', $config['num_posts'] + 1, true);
} }
if ($post_mode == 'reply') if ($post_mode == 'reply')
{ {
set_config('num_posts', $config['num_posts'] + 1, TRUE); set_config('num_posts', $config['num_posts'] + 1, true);
} }
} }
@ -2065,7 +2068,7 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
foreach ($sql_data as $table => $update_ary) foreach ($sql_data as $table => $update_ary)
{ {
if (implode('', $update_ary['stat']) != '') if (implode('', $update_ary['stat']))
{ {
$db->sql_query("UPDATE $table SET " . implode(', ', $update_ary['stat']) . ' WHERE ' . $where_sql[$table]); $db->sql_query("UPDATE $table SET " . implode(', ', $update_ary['stat']) . ' WHERE ' . $where_sql[$table]);
} }
@ -2211,7 +2214,7 @@ function load_drafts($topic_id = 0, $forum_id = 0)
} }
} }
function prepare_data(&$variable, $change = FALSE) function prepare_data(&$variable, $change = false)
{ {
if (!$change) if (!$change)
{ {

View file

@ -295,6 +295,19 @@ function checkForm()
</tr> </tr>
<!-- ENDIF --> <!-- ENDIF -->
<!-- IF S_LOCK_TOPIC_ALLOWED -->
<tr>
<td><input type="checkbox" name="lock_topic"{S_LOCK_TOPIC_CHECKED} /></td>
<td class="gen">{L_LOCK_TOPIC}</td>
</tr>
<!-- ENDIF -->
<!-- IF S_LOCK_POST_ALLOWED -->
<tr>
<td><input type="checkbox" name="lock_post"{S_LOCK_POST_CHECKED} /></td>
<td class="gen">{L_LOCK_POST} [{L_LOCK_POST_EXPLAIN}]</td>
</tr>
<!-- ENDIF -->
<!-- IF S_TYPE_TOGGLE --> <!-- IF S_TYPE_TOGGLE -->
<tr> <tr>
<td>&nbsp;</td> <td>&nbsp;</td>
@ -311,33 +324,21 @@ function checkForm()
</tr> </tr>
<!-- ENDIF --> <!-- ENDIF -->
<!-- IF S_LOCK_TOPIC_ALLOWED or S_LOCK_POST_ALLOWED --> <!-- IF S_EDIT_REASON -->
<tr> <tr>
<td class="row1" valign="top"><b class="genmed">{L_MOD_OPTIONS}:</b></td> <td class="row1" valign="top"><b class="genmed">{L_EDIT_REASON}:</b></td>
<td class="row2"><table cellspacing="0"> <td class="row2"><input class="post" type="text" name="edit_reason" size="50" maxlength="100" value="{EDIT_REASON}" /></td>
<!-- IF S_LOCK_TOPIC_ALLOWED -->
<tr>
<td><input type="checkbox" name="lock_topic"{S_LOCK_TOPIC_CHECKED} /></td>
<td class="gen">{L_LOCK_TOPIC}</td>
</tr>
<!-- ENDIF -->
<!-- IF S_LOCK_POST_ALLOWED -->
<tr>
<td><input type="checkbox" name="lock_post"{S_LOCK_POST_CHECKED} /></td>
<td class="gen">{L_LOCK_POST} [{L_LOCK_POST_EXPLAIN}]</td>
</tr>
<!-- ENDIF -->
</table></td>
</tr> </tr>
<!-- ENDIF --> <!-- ENDIF -->
<!-- IF S_SHOW_ATTACH_BOX or S_SHOW_POLL_BOX --> <!-- IF S_SHOW_ATTACH_BOX or S_SHOW_POLL_BOX -->
<tr> <tr>
<td class="cat" colspan="2" align="center"><input class="btnlite" type="submit" tabindex="5" name="preview" value="{L_PREVIEW}" />&nbsp; <input class="btnmain" type="submit" accesskey="s" tabindex="6" name="post" value="{L_SUBMIT}" /><!-- IF S_SAVE_ALLOWED -->&nbsp; <input class="btnlite" type="submit" accesskey="k" tabindex="8" name="save" value="{L_SAVE}" /><!-- ENDIF --><!-- IF S_HAS_DRAFTS -->&nbsp; <input class="btnlite" type="submit" accesskey="d" tabindex="9" name="load" value="{L_LOAD}" /><!-- ENDIF -->&nbsp; <input class="btnlite" type="submit" accesskey="c" tabindex="7" name="cancel" value="{L_CANCEL}" /></td> <td class="cat" colspan="2" align="center"><input class="btnlite" type="submit" tabindex="5" name="preview" value="{L_PREVIEW}" />&nbsp; <input class="btnmain" type="submit" accesskey="s" tabindex="6" name="post" value="{L_SUBMIT}" /><!-- IF S_SAVE_ALLOWED -->&nbsp; <input class="btnlite" type="submit" accesskey="k" tabindex="8" name="save" value="{L_SAVE}" /><!-- ENDIF --><!-- IF S_HAS_DRAFTS -->&nbsp; <input class="btnlite" type="submit" accesskey="d" tabindex="9" name="load" value="{L_LOAD}" /><!-- ENDIF -->&nbsp; <input class="btnlite" type="submit" accesskey="c" tabindex="7" name="cancel" value="{L_CANCEL}" /></td>
</tr> </tr>
<!-- ENDIF --> <!-- ENDIF -->
<!-- IF S_SHOW_ATTACH_BOX -->
<!-- INCLUDE posting_attach_body.html --> <!-- IF S_SHOW_ATTACH_BOX --><!-- INCLUDE posting_attach_body.html --><!-- ENDIF -->
<!-- ENDIF -->
<!-- IF S_SHOW_POLL_BOX --> <!-- IF S_SHOW_POLL_BOX -->
<!-- INCLUDE posting_poll_body.html --> <!-- INCLUDE posting_poll_body.html -->
<!-- ELSEIF S_POLL_DELETE --> <!-- ELSEIF S_POLL_DELETE -->

View file

@ -204,8 +204,18 @@
<!-- IF postrow.SIGNATURE --> <!-- IF postrow.SIGNATURE -->
<span class="postbody"><br />_________________<br />{postrow.SIGNATURE}</span> <span class="postbody"><br />_________________<br />{postrow.SIGNATURE}</span>
<!-- ENDIF --> <!-- ENDIF -->
<!-- IF postrow.EDITED_MESSAGE --> <!-- IF postrow.EDITED_MESSAGE or postrow.EDIT_REASON -->
<span class="gensmall">{postrow.EDITED_MESSAGE}</span> <span class="gensmall">{postrow.EDITED_MESSAGE}</span>
<!-- IF postrow.EDIT_REASON -->
<table class="tablebg" width="100%" cellspacing="1">
<tr>
<td class="row3"><b class="genmed">{L_REASON}: </b></td>
</tr>
<tr>
<td class="row2"><span class="genmed">{postrow.EDIT_REASON}</span></td>
</tr>
</table>
<!-- ENDIF -->
<!-- ENDIF --> <!-- ENDIF -->
<!-- IF postrow.BUMPED_MESSAGE --> <!-- IF postrow.BUMPED_MESSAGE -->
<span class="gensmall">{postrow.BUMPED_MESSAGE}</span> <span class="gensmall">{postrow.BUMPED_MESSAGE}</span>

View file

@ -700,7 +700,7 @@ else
} }
// Container for user details, only process once // Container for user details, only process once
$post_list = $user_cache = $id_cache = $attachments = $attach_list = $rowset = $update_count = array(); $post_list = $user_cache = $id_cache = $attachments = $attach_list = $rowset = $update_count = $post_edit_list = array();
$has_attachments = $display_notice = FALSE; $has_attachments = $display_notice = FALSE;
$force_encoding = ''; $force_encoding = '';
$bbcode_bitfield = $i = $i_total = 0; $bbcode_bitfield = $i = $i_total = 0;
@ -787,6 +787,8 @@ while ($row = $db->sql_fetchrow($result))
'post_subject' => $row['post_subject'], 'post_subject' => $row['post_subject'],
'post_edit_count' => $row['post_edit_count'], 'post_edit_count' => $row['post_edit_count'],
'post_edit_time' => $row['post_edit_time'], 'post_edit_time' => $row['post_edit_time'],
'post_edit_reason' => $row['post_edit_reason'],
'post_edit_user' => $row['post_edit_user'],
'icon_id' => $row['icon_id'], 'icon_id' => $row['icon_id'],
'post_attachment' => $row['post_attachment'], 'post_attachment' => $row['post_attachment'],
'post_approved' => $row['post_approved'], 'post_approved' => $row['post_approved'],
@ -1087,7 +1089,7 @@ for ($i = 0; $i < count($post_list); ++$i)
// End signature parsing, only if needed // End signature parsing, only if needed
if ($user_cache[$poster_id]['sig'] && empty($user_cache[$poster_id]['sig_parsed'])) if ($user_cache[$poster_id]['sig'] && empty($user_cache[$poster_id]['sig_parsed']))
{ {
$user_cache[$poster_id]['sig'] = (!$config['enable_smilies'] || !$user->optionget('viewsmilies')) ? preg_replace('#<!\-\- s(.*?) \-\-><img src="\{SMILE_PATH\}\/.*? \/><!\-\- s\1 \-\->#', '\1', $user_cache[$poster_id]['sig']) : str_replace('<img src="{SMILE_PATH}', '<img src="' . $config['smilies_path'], $user_cache[$poster_id]['sig']); $user_cache[$poster_id]['sig'] = (!$config['allow_smilies'] || !$user->optionget('viewsmilies')) ? preg_replace('#<!\-\- s(.*?) \-\-><img src="\{SMILE_PATH\}\/.*? \/><!\-\- s\1 \-\->#', '\1', $user_cache[$poster_id]['sig']) : str_replace('<img src="{SMILE_PATH}', '<img src="' . $config['smilies_path'], $user_cache[$poster_id]['sig']);
if ($user_cache[$poster_id]['sig_bbcode_bitfield']) if ($user_cache[$poster_id]['sig_bbcode_bitfield'])
{ {
@ -1143,11 +1145,35 @@ for ($i = 0; $i < count($post_list); ++$i)
$message = str_replace("\n", '<br />', $message); $message = str_replace("\n", '<br />', $message);
// Editing information // Editing information
if (!empty($row['post_edit_count']) && $config['display_last_edited']) if (($row['post_edit_count'] && $config['display_last_edited']) || $row['post_edit_reason'])
{ {
// Get usernames for all following posts if not already stored
if (!sizeof($post_edit_list) && $row['post_edit_reason'])
{
// Remove all post_ids already parsed (we do not have to check them)
$post_storage_list = array_slice($post_list, $i);
$sql = 'SELECT DISTINCT u.user_id, u.username, u.user_colour
FROM ' . POSTS_TABLE . ' p, ' . USERS_TABLE . ' u
WHERE p.post_id IN (' . implode(', ', $post_storage_list) . ")
AND p.post_edit_count <> 0
AND p.post_edit_user <> 0
AND p.post_edit_reason <> ''
AND p.post_edit_user = u.user_id";
$result2 = $db->sql_query($sql);
while ($user_edit_row = $db->sql_fetchrow($result2))
{
$post_edit_list[$user_edit_row['user_id']] = $user_edit_row;
}
$db->sql_freeresult($result2);
unset($post_storage_list);
}
$l_edit_time_total = ($row['post_edit_count'] == 1) ? $user->lang['EDITED_TIME_TOTAL'] : $user->lang['EDITED_TIMES_TOTAL']; $l_edit_time_total = ($row['post_edit_count'] == 1) ? $user->lang['EDITED_TIME_TOTAL'] : $user->lang['EDITED_TIMES_TOTAL'];
$l_edited_by = '<br /><br />' . sprintf($l_edit_time_total, $row['poster'], $user->format_date($row['post_edit_time']), $row['post_edit_count']); $user_edit_row = ($row['post_edit_reason']) ? $post_edit_list[$row['post_edit_user']] : array();
$l_edited_by = '<br /><br />' . sprintf($l_edit_time_total, (!$row['post_edit_user']) ? $row['poster'] : (($user_edit_row['user_colour']) ? '<span style="color:#' . $user_edit_row['user_colour'] . '">' . $user_edit_row['username'] . '</span>' : $user_edit_row['username']), $user->format_date($row['post_edit_time']), $row['post_edit_count']);
} }
else else
{ {
@ -1182,6 +1208,7 @@ for ($i = 0; $i < count($post_list); ++$i)
'MESSAGE' => $message, 'MESSAGE' => $message,
'SIGNATURE' => ($row['enable_sig']) ? $user_cache[$poster_id]['sig'] : '', 'SIGNATURE' => ($row['enable_sig']) ? $user_cache[$poster_id]['sig'] : '',
'EDITED_MESSAGE'=> $l_edited_by, 'EDITED_MESSAGE'=> $l_edited_by,
'EDIT_REASON' => $row['post_edit_reason'],
'BUMPED_MESSAGE'=> $l_bumped_by, 'BUMPED_MESSAGE'=> $l_bumped_by,
'MINI_POST_IMG' => ($row['post_time'] > $user->data['user_lastvisit'] && $row['post_time'] > $topic_last_read && $user->data['user_id'] != ANONYMOUS) ? $user->img('icon_post_new', 'NEW_POST') : $user->img('icon_post', 'POST'), 'MINI_POST_IMG' => ($row['post_time'] > $user->data['user_lastvisit'] && $row['post_time'] > $topic_last_read && $user->data['user_id'] != ANONYMOUS) ? $user->img('icon_post_new', 'NEW_POST') : $user->img('icon_post', 'POST'),