aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--phpBB/adm/index.php15
-rw-r--r--phpBB/docs/CHANGELOG.html1
-rw-r--r--phpBB/includes/message_parser.php7
3 files changed, 12 insertions, 11 deletions
diff --git a/phpBB/adm/index.php b/phpBB/adm/index.php
index c577cefacd..358e5a4bf2 100644
--- a/phpBB/adm/index.php
+++ b/phpBB/adm/index.php
@@ -390,13 +390,16 @@ function validate_config_vars($config_vars, &$cfg_array, &$error)
}
$validator = explode(':', $config_definition['validate']);
+
// Validate a bit. ;) (0 = type, 1 = min, 2= max)
switch ($validator[$type])
{
case 'string':
$length = strlen($cfg_array[$config_name]);
+
// the column is a VARCHAR
$validator[$max] = (isset($validator[$max])) ? min(255, $validator[$max]) : 255;
+
if (isset($validator[$min]) && $length < $validator[$min])
{
$error[] = sprintf($user->lang['SETTING_TOO_SHORT'], $user->lang[$config_definition['lang']], $validator[$min]);
@@ -406,14 +409,14 @@ function validate_config_vars($config_vars, &$cfg_array, &$error)
$error[] = sprintf($user->lang['SETTING_TOO_LONG'], $user->lang[$config_definition['lang']], $validator[$max]);
}
break;
-
+
case 'bool':
$cfg_array[$config_name] = ($cfg_array[$config_name]) ? 1 : 0;
break;
case 'int':
$cfg_array[$config_name] = (int) $cfg_array[$config_name];
-
+
if (isset($validator[$min]) && $cfg_array[$config_name] < $validator[$min])
{
$error[] = sprintf($user->lang['SETTING_TOO_LOW'], $user->lang[$config_definition['lang']], $validator[$min]);
@@ -576,9 +579,8 @@ function validate_range($value_ary, &$error)
{
$error[] = sprintf($user->lang['SETTING_TOO_LONG'], $user->lang[$value['lang']], $max);
}
-
- break;
-
+ break;
+
case 'int':
$min = (isset($column[1])) ? max($column[1],$type['min']) : $type['min'];
$max = (isset($column[2])) ? min($column[2],$type['max']) : $type['max'];
@@ -590,10 +592,9 @@ function validate_range($value_ary, &$error)
{
$error[] = sprintf($user->lang['SETTING_TOO_BIG'], $user->lang[$value['lang']], $max);
}
- break;
+ break;
}
}
-
}
?> \ No newline at end of file
diff --git a/phpBB/docs/CHANGELOG.html b/phpBB/docs/CHANGELOG.html
index c649b6466c..de627e6217 100644
--- a/phpBB/docs/CHANGELOG.html
+++ b/phpBB/docs/CHANGELOG.html
@@ -133,6 +133,7 @@
<li>[Fix] Check topics_per_page value in acp_forums (Bug #15539)</li>
<li>[Fix] Custom profile fields with date type should be timezone independend (Bug #15003)</li>
<li>[Fix] Fixing some XHTML errors/warnings within the ACP (Bug #22875)</li>
+ <li>[Fix] Warnings if poll title/options exceed maximum characters per post (Bug #22865)</li>
</ul>
diff --git a/phpBB/includes/message_parser.php b/phpBB/includes/message_parser.php
index 41e7bc51d7..674e13de49 100644
--- a/phpBB/includes/message_parser.php
+++ b/phpBB/includes/message_parser.php
@@ -1089,7 +1089,7 @@ class parse_message extends bbcode_firstpass
if ((!$msg_len && $mode !== 'sig') || $config['max_' . $mode . '_chars'] && $msg_len > $config['max_' . $mode . '_chars'])
{
$this->warn_msg[] = (!$msg_len) ? $user->lang['TOO_FEW_CHARS'] : sprintf($user->lang['TOO_MANY_CHARS_' . strtoupper($mode)], $msg_len, $config['max_' . $mode . '_chars']);
- return $this->warn_msg;
+ return (!$update_this_message) ? $return_message : $this->warn_msg;
}
}
@@ -1097,7 +1097,7 @@ class parse_message extends bbcode_firstpass
if ($mode !== 'sig' && utf8_clean_string($this->message) === '')
{
$this->warn_msg[] = $user->lang['TOO_FEW_CHARS'];
- return $this->warn_msg;
+ return (!$update_this_message) ? $return_message : $this->warn_msg;
}
// Prepare BBcode (just prepares some tags for better parsing)
@@ -1146,7 +1146,7 @@ class parse_message extends bbcode_firstpass
if ($config['max_' . $mode . '_urls'] && $num_urls > $config['max_' . $mode . '_urls'])
{
$this->warn_msg[] = sprintf($user->lang['TOO_MANY_URLS'], $config['max_' . $mode . '_urls']);
- return $this->warn_msg;
+ return (!$update_this_message) ? $return_message : $this->warn_msg;
}
if (!$update_this_message)
@@ -1603,7 +1603,6 @@ class parse_message extends bbcode_firstpass
$this->message = $poll['poll_option_text'];
$bbcode_bitfield = $this->bbcode_bitfield;
-
$poll['poll_option_text'] = $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);
$bbcode_bitfield = base64_encode(base64_decode($bbcode_bitfield) | base64_decode($this->bbcode_bitfield));