diff options
author | David M <davidmj@users.sourceforge.net> | 2006-12-10 01:19:54 +0000 |
---|---|---|
committer | David M <davidmj@users.sourceforge.net> | 2006-12-10 01:19:54 +0000 |
commit | 94476d05e09bcc70f4f2ea42472b5f22538f3235 (patch) | |
tree | bbd6b0992110538aafc8d684253708ad13ddbd6d /phpBB/includes/message_parser.php | |
parent | b72caf0be41c10876eabc60a1408bd9fe16dc82c (diff) | |
download | forums-94476d05e09bcc70f4f2ea42472b5f22538f3235.tar forums-94476d05e09bcc70f4f2ea42472b5f22538f3235.tar.gz forums-94476d05e09bcc70f4f2ea42472b5f22538f3235.tar.bz2 forums-94476d05e09bcc70f4f2ea42472b5f22538f3235.tar.xz forums-94476d05e09bcc70f4f2ea42472b5f22538f3235.zip |
#6090
- some cool regex stuff (one of them looks kinda weird :\ ...)
git-svn-id: file:///svn/phpbb/trunk@6735 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/includes/message_parser.php')
-rw-r--r-- | phpBB/includes/message_parser.php | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/phpBB/includes/message_parser.php b/phpBB/includes/message_parser.php index ed6f69cf49..561b2d79da 100644 --- a/phpBB/includes/message_parser.php +++ b/phpBB/includes/message_parser.php @@ -265,7 +265,7 @@ class bbcode_firstpass extends bbcode */ function bbcode_img($in) { - global $user, $config, $phpEx; + global $user, $config; if (!$this->check_bbcode('img', $in)) { @@ -309,7 +309,7 @@ class bbcode_firstpass extends bbcode */ function bbcode_flash($width, $height, $in) { - global $user, $config, $phpEx; + global $user, $config; if (!$this->check_bbcode('flash', $in)) { @@ -940,7 +940,8 @@ class parse_message extends bbcode_firstpass // Do some general 'cleanup' first before processing message, // e.g. remove excessive newlines(?), smilies(?) // Transform \r\n and \r into \n - $match = array('#\r\n?#', "#([\n][\s]+){3,}#u", '#(script|about|applet|activex|chrome):#i'); + // TODO: Second regex looks wrong... + $match = array('#\r\n?#', "#(\n\s+){3,}#u", '#(script|about|applet|activex|chrome):#i'); $replace = array("\n", "\n\n", "\\1:"); $this->message = preg_replace($match, $replace, trim($this->message)); @@ -994,7 +995,7 @@ class parse_message extends bbcode_firstpass if ($config['max_' . $mode . '_urls']) { - $num_urls += preg_match_all('#\<!-- (l|m|w|e) --\>.*?\<!-- \1 --\>#', $this->message, $matches); + $num_urls += preg_match_all('#\<!-- ([lmwe]) --\>.*?\<!-- \1 --\>#', $this->message, $matches); } } @@ -1100,7 +1101,7 @@ class parse_message extends bbcode_firstpass */ function smilies($max_smilies = 0) { - global $db, $user, $phpbb_root_path; + global $db, $user; static $match; static $replace; @@ -1139,7 +1140,7 @@ class parse_message extends bbcode_firstpass while ($row = $db->sql_fetchrow($result)) { // (assertion) - $match[] = '#(?<=^|[\n ]|\.)' . preg_quote($row['code'], '#') . '#'; + $match[] = '#(?<=^|[\n .])' . preg_quote($row['code'], '#') . '#'; $replace[] = '<!-- s' . $row['code'] . ' --><img src="{SMILIES_PATH}/' . $row['smiley_url'] . '" alt="' . $row['emotion'] . '" title="' . $row['emotion'] . '" /><!-- s' . $row['code'] . ' -->'; } $db->sql_freeresult($result); @@ -1456,16 +1457,22 @@ class parse_message extends bbcode_firstpass $tmp_message = $this->message; $this->message = $poll['poll_title']; + $poll['poll_options'] = explode("\n", trim($poll['poll_option_text'])); + $poll['poll_options_size'] = sizeof($poll['poll_options']); - $poll['poll_title'] = $this->parse($poll['enable_bbcode'], ($config['allow_post_links']) ? $poll['enable_urls'] : false, $poll['enable_smilies'], $poll['img_status'], false, false, $config['allow_post_links'], false); + if (!$poll['poll_title'] && $poll['poll_options_size']) + { + $this->warn_msg[] = $user->lang['NO_POLL_TITLE']; + } + else + { + $poll['poll_title'] = $this->parse($poll['enable_bbcode'], ($config['allow_post_links']) ? $poll['enable_urls'] : false, $poll['enable_smilies'], $poll['img_status'], false, false, $config['allow_post_links'], false); + } $this->message = $tmp_message; unset($tmp_message); - $poll['poll_options'] = explode("\n", trim($poll['poll_option_text'])); - $poll['poll_options_size'] = sizeof($poll['poll_options']); - if (sizeof($poll['poll_options']) == 1) { $this->warn_msg[] = $user->lang['TOO_FEW_POLL_OPTIONS']; @@ -1479,11 +1486,6 @@ class parse_message extends bbcode_firstpass $this->warn_msg[] = $user->lang['TOO_MANY_USER_OPTIONS']; } - if (!$poll['poll_title'] && $poll['poll_options_size']) - { - $this->warn_msg[] = $user->lang['NO_POLL_TITLE']; - } - $poll['poll_max_options'] = ($poll['poll_max_options'] < 1) ? 1 : (($poll['poll_max_options'] > $config['max_poll_options']) ? $config['max_poll_options'] : $poll['poll_max_options']); } } |