diff --git a/phpBB/common.php b/phpBB/common.php index b36cb24279..f160838600 100644 --- a/phpBB/common.php +++ b/phpBB/common.php @@ -106,6 +106,16 @@ define('PRIVMSGS_READ_MAIL', 0); define('PRIVMSGS_NEW_MAIL', 1); define('PRIVMSGS_UNREAD_MAIL', 5); +// Download Modes - Attachments +define('INLINE_LINK', 1); +define('PHYSICAL_LINK', 2); + +// Categories - Attachments +define('NONE_CAT', 0); +define('IMAGE_CAT', 1); +define('STREAM_CAT', 2); +//define('SWF_CAT', 3); + // BBCode UID length define('BBCODE_UID_LEN', 5); diff --git a/phpBB/includes/functions_posting.php b/phpBB/includes/functions_posting.php index 48ee7f3060..f927284732 100644 --- a/phpBB/includes/functions_posting.php +++ b/phpBB/includes/functions_posting.php @@ -1724,7 +1724,7 @@ function phpbb_unlink($filename, $mode = false) $res = @ftp_delete($conn_id, $filename); if (!$res) { - if (ATTACH_DEBUG) + if (defined('DEBUG_EXTRA')) { $add = ( $mode == MODE_THUMBNAIL ) ? ('/' . THUMB_DIR) : ''; message_die(GENERAL_ERROR, sprintf($lang['Ftp_error_delete'], $attach_config['ftp_path'] . $add)); diff --git a/phpBB/includes/message_parser.php b/phpBB/includes/message_parser.php index e9f77cc3b4..409531305c 100644 --- a/phpBB/includes/message_parser.php +++ b/phpBB/includes/message_parser.php @@ -39,13 +39,10 @@ class parse_message $this->bbcode_uid = substr(md5(time()), 0, BBCODE_UID_LEN); } - function parse(&$message, $html, $bbcode, $uid, $url, $smilies) + function parse($html, $bbcode, $url, $smilies) { global $config, $db, $user; - $this->message = $message; - $this->bbcode_uid = $uid; - $warn_msg = ''; // Do some general 'cleanup' first before processing message, @@ -53,12 +50,12 @@ class parse_message $match = array('#sid=[a-z0-9]*?&?#', "#([\r\n][\s]+){3,}#"); $replace = array('', "\n\n"); - $message = trim(preg_replace($match, $replace, $message)); + $this->message = trim(preg_replace($match, $replace, $this->message)); // Message length check - if (!strlen($message) || (intval($config['max_post_chars']) && strlen($message) > intval($config['max_post_chars']))) + if (!strlen($this->message) || (intval($config['max_post_chars']) && strlen($this->message) > intval($config['max_post_chars']))) { - $warn_msg .= (($warn_msg != '') ? '<br />' : '') . (!strlen($message)) ? $user->lang['TOO_FEW_CHARS'] : $user->lang['TOO_MANY_CHARS']; + $warn_msg .= (($warn_msg != '') ? '<br />' : '') . (!strlen($this->message)) ? $user->lang['TOO_FEW_CHARS'] : $user->lang['TOO_MANY_CHARS']; } // Smiley check @@ -71,7 +68,7 @@ class parse_message $match = 0; while ($row = $db->sql_fetchrow($result)) { - if (preg_match_all('#('. preg_quote($row['code'], '#') . ')#', $message, $matches)) + if (preg_match_all('#('. preg_quote($row['code'], '#') . ')#', $this->message, $matches)) { $match++; } @@ -91,22 +88,22 @@ class parse_message return $warn_msg; } - $warn_msg .= (($warn_msg != '') ? '<br />' : '') . $this->html($message, $html); + $warn_msg .= (($warn_msg != '') ? '<br />' : '') . $this->html($html); if ($bbcode) { - $warn_msg .= (($warn_msg != '') ? '<br />' : '') . $this->bbcode($message); + $warn_msg .= (($warn_msg != '') ? '<br />' : '') . $this->bbcode(); } - $warn_msg .= (($warn_msg != '') ? '<br />' : '') . $this->emoticons($message, $smilies); - $warn_msg .= (($warn_msg != '') ? '<br />' : '') . $this->magic_url($message, $url); + $warn_msg .= (($warn_msg != '') ? '<br />' : '') . $this->emoticons($smilies); + $warn_msg .= (($warn_msg != '') ? '<br />' : '') . $this->magic_url($url); return $warn_msg; } - function html(&$message, $html) + function html($html) { global $config; - $message = str_replace(array('<', '>'), array('<', '>'), $message); + $this->message = str_replace(array('<', '>'), array('<', '>'), $this->message); if ($html) { @@ -116,18 +113,15 @@ class parse_message if (sizeof($allowed_tags)) { - $message = preg_replace('#<(\/?)(' . str_replace('*', '.*?', implode('|', $allowed_tags)) . ')>#is', '<\1\2>', $message); + $this->message = preg_replace('#<(\/?)(' . str_replace('*', '.*?', implode('|', $allowed_tags)) . ')>#is', '<\1\2>', $this->message); } } return; } - function bbcode(&$message) + function bbcode() { - // DEBUG - $this->message = $message; - // Warning, Least-Significant-Bit first $bbcode_bitfield = str_repeat('0', 32); if (empty($this->bbcode_array)) @@ -156,9 +150,6 @@ class parse_message // LSB becomes MSB then we convert it to decimal $this->bbcode_bitfield = bindec(strrev($bbcode_bitfield)); - - // DEBUG - $message = $this->message; } function bbcode_init() @@ -331,7 +322,7 @@ class parse_message // Replace magic urls of form http://xxx.xxx., www.xxx. and xxx@xxx.xxx. // Cuts down displayed size of link if over 50 chars, turns absolute links // into relative versions when the server/script path matches the link - function magic_url(&$message, $url) + function magic_url($url) { global $config; @@ -359,11 +350,11 @@ class parse_message $match[] = '#(^|[\n ])([a-z0-9&\-_.]+?@[\w\-]+\.([\w\-\.]+\.)?[\w]+)#ie'; $replace[] = "'\\1<!-- e --><a href=\"mailto:\\2\">' . ((strlen('\\2') > 55) ? substr('\\2', 0, 39) . ' ... ' . substr('\\2', -10) : '\\2') . '</a><!-- e -->'"; - $message = preg_replace($match, $replace, $message); + $this->message = preg_replace($match, $replace, $this->message); } } - function emoticons(&$message, $smile) + function emoticons($smile) { global $db, $user; @@ -381,7 +372,7 @@ class parse_message } while ($row = $db->sql_fetchrow($result)); - $message = preg_replace($match, $replace, ' ' . $message . ' '); + $this->message = preg_replace($match, $replace, ' ' . $this->message . ' '); } $db->sql_freeresult($result); diff --git a/phpBB/posting.php b/phpBB/posting.php index 030709de74..d063450e1b 100644 --- a/phpBB/posting.php +++ b/phpBB/posting.php @@ -439,7 +439,7 @@ if (($submit) || ($preview) || ($refresh)) $subject = phpbb_strtolower($subject); } - $message = (!empty($_POST['message'])) ? trim($_POST['message']) : ''; + $message_parser->message = (!empty($_POST['message'])) ? trim($_POST['message']) : ''; $username = (!empty($_POST['username'])) ? trim($_POST['username']) : ''; $topic_type = (!empty($_POST['topic_type'])) ? intval($_POST['topic_type']) : POST_NORMAL; $icon_id = (!empty($_POST['icon'])) ? intval($_POST['icon']) : 0; @@ -480,16 +480,13 @@ if (($submit) || ($preview) || ($refresh)) } // Grab md5 'checksum' of new message - $message_md5 = md5($message); + $message_md5 = md5($message_parser->message); // Check checksum ... don't re-parse message if the same if ($mode != 'edit' || $message_md5 != $post_checksum) { - // DEBUG - $bbcode_uid = $message_parser->bbcode_uid; - // Parse message - if (($result = $message_parser->parse($message, $enable_html, $enable_bbcode, $bbcode_uid, $enable_urls, $enable_smilies)) != '') + if (($result = $message_parser->parse($enable_html, $enable_bbcode, $enable_urls, $enable_smilies)) != '') { $err_msg .= ((!empty($err_msg)) ? '<br />' : '') . $result; } @@ -543,7 +540,7 @@ if (($submit) || ($preview) || ($refresh)) 'poll_last_vote' => $poll_last_vote, 'enable_html' => $enable_html, 'enable_bbcode' => $enable_bbcode, - 'bbcode_uid' => $bbcode_uid, + 'bbcode_uid' => $message_parser->bbcode_uid, 'enable_urls' => $enable_urls, 'enable_smilies' => $enable_smilies ); @@ -605,10 +602,10 @@ if (($submit) || ($preview) || ($refresh)) 'bbcode_bitfield' => $message_parser->bbcode_bitfield ); - submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_uid, $poll, $attachment_data, $post_data); + submit_post($mode, $message_parser->message, $subject, $username, $topic_type, $message_parser->bbcode_uid, $poll, $attachment_data, $post_data); } - $post_text = stripslashes($message); + $post_text = stripslashes($message_parser->message); $post_subject = $topic_title = stripslashes($subject); } @@ -628,20 +625,20 @@ if ($preview) $post_time = $current_time; // DEBUG - $bbcode_bitfield = bindec('1111111111'); + // $message_parser->bbcode_bitfield = bindec('1111111111'); include($phpbb_root_path . 'includes/bbcode.' . $phpEx); - $bbcode = new bbcode($bbcode_uid, $bbcode_bitfield); + $bbcode = new bbcode($message_parser->bbcode_uid, $message_parser->bbcode_bitfield); - $preview_message = format_display(stripslashes($message), $enable_html, $enable_bbcode, $bbcode_uid, $enable_urls, $enable_smilies, $enable_sig); + $preview_message = format_display(stripslashes($message_parser->message), $enable_html, $enable_bbcode, $message_parser->bbcode_uid, $enable_urls, $enable_smilies, $enable_sig); $preview_subject = (sizeof($censors)) ? preg_replace($censors['match'], $censors['replace'], $subject) : $subject; // 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)) )) { - decode_text($poll_title, $bbcode_uid); - $preview_poll_title = format_display(stripslashes($poll_title), $enable_html, $enable_bbcode, $bbcode_uid, $enable_urls, $enable_smilies, false, false); + decode_text($poll_title, $message_parser->bbcode_uid); + $preview_poll_title = format_display(stripslashes($poll_title), $enable_html, $enable_bbcode, $message_parser->bbcode_uid, $enable_urls, $enable_smilies, false, false); $template->assign_vars(array( 'S_HAS_POLL_OPTIONS' => (sizeof($poll_options)) ? true : false, @@ -651,15 +648,15 @@ if ($preview) foreach ($poll_options as $option) { $template->assign_block_vars('poll_option', array( - 'POLL_OPTION_CAPTION' => format_display(stripslashes($option), $enable_html, $enable_bbcode, $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)) ); } } } // Decode text for message display -decode_text($post_text, $bbcode_uid); -decode_text($subject, $bbcode_uid); +decode_text($post_text, $message_parser->bbcode_uid); +decode_text($subject, $message_parser->bbcode_uid); // Save us some processing time. ;) $poll_options_tmp = implode("\n", $poll_options); @@ -787,7 +784,7 @@ $template->assign_vars(array( 'IMG_STATUS' => ($img_status) ? $user->lang['IMAGES_ARE_ON'] : $user->lang['IMAGES_ARE_OFF'], 'FLASH_STATUS' => ($flash_status) ? $user->lang['FLASH_IS_ON'] : $user->lang['FLASH_IS_OFF'], 'SMILIES_STATUS' => ($smilies_status) ? $user->lang['SMILIES_ARE_ON'] : $user->lang['SMILIES_ARE_OFF'], - 'MINI_POST_IMG' => $user->img('goto_post', $user->lang['POST']), + 'MINI_POST_IMG' => $user->img('icon_post', $user->lang['POST']), 'POST_DATE' => ($post_time) ? $user->format_date($post_time) : '', 'ERROR_MESSAGE' => $err_msg,