aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/message_parser.php
diff options
context:
space:
mode:
authorDavid M <davidmj@users.sourceforge.net>2006-12-10 01:19:54 +0000
committerDavid M <davidmj@users.sourceforge.net>2006-12-10 01:19:54 +0000
commit94476d05e09bcc70f4f2ea42472b5f22538f3235 (patch)
treebbd6b0992110538aafc8d684253708ad13ddbd6d /phpBB/includes/message_parser.php
parentb72caf0be41c10876eabc60a1408bd9fe16dc82c (diff)
downloadforums-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.php32
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&#058;");
$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']);
}
}