aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB
diff options
context:
space:
mode:
authorAndreas Fischer <bantu@phpbb.com>2011-06-09 12:47:27 +0200
committerAndreas Fischer <bantu@phpbb.com>2011-06-09 12:47:27 +0200
commitc49dce2be34064ffe66829cbb34e2bed9ed03492 (patch)
treef7a8836bca1513408f01d82e2ebf4268e4abab67 /phpBB
parentd64ec4f765bd5fa082cc9eecff927ac2bf153f24 (diff)
parentf7578e29b3c4c4b7b66226f8c159e5e40363162f (diff)
downloadforums-c49dce2be34064ffe66829cbb34e2bed9ed03492.tar
forums-c49dce2be34064ffe66829cbb34e2bed9ed03492.tar.gz
forums-c49dce2be34064ffe66829cbb34e2bed9ed03492.tar.bz2
forums-c49dce2be34064ffe66829cbb34e2bed9ed03492.tar.xz
forums-c49dce2be34064ffe66829cbb34e2bed9ed03492.zip
Merge branch 'develop-olympus' into develop
* develop-olympus: [ticket/10005] Add description to test cases [ticket/10005] Add validation of dropdown custom profile field values
Diffstat (limited to 'phpBB')
-rw-r--r--phpBB/includes/functions_profile_fields.php14
-rw-r--r--phpBB/language/en/ucp.php1
2 files changed, 14 insertions, 1 deletions
diff --git a/phpBB/includes/functions_profile_fields.php b/phpBB/includes/functions_profile_fields.php
index 44deffa162..ec29a1732d 100644
--- a/phpBB/includes/functions_profile_fields.php
+++ b/phpBB/includes/functions_profile_fields.php
@@ -149,7 +149,18 @@ class custom_profile
case FIELD_DROPDOWN:
$field_value = (int) $field_value;
-
+
+ // retrieve option lang data if necessary
+ if (!isset($this->options_lang[$field_data['field_id']]) || !isset($this->options_lang[$field_data['field_id']][$field_data['lang_id']]) || !sizeof($this->options_lang[$file_data['field_id']][$field_data['lang_id']]))
+ {
+ $this->get_option_lang($field_data['field_id'], $field_data['lang_id'], FIELD_DROPDOWN, false);
+ }
+
+ if (!isset($this->options_lang[$field_data['field_id']][$field_data['lang_id']][$field_value]))
+ {
+ return 'FIELD_INVALID_VALUE';
+ }
+
if ($field_value == $field_data['field_novalue'] && $field_data['field_required'])
{
return 'FIELD_REQUIRED';
@@ -302,6 +313,7 @@ class custom_profile
switch ($cp_result)
{
case 'FIELD_INVALID_DATE':
+ case 'FIELD_INVALID_VALUE':
case 'FIELD_REQUIRED':
$error = sprintf($user->lang[$cp_result], $row['lang_name']);
break;
diff --git a/phpBB/language/en/ucp.php b/phpBB/language/en/ucp.php
index 02b3ea0954..f4b1b591d6 100644
--- a/phpBB/language/en/ucp.php
+++ b/phpBB/language/en/ucp.php
@@ -195,6 +195,7 @@ $lang = array_merge($lang, array(
'FIELD_INVALID_CHARS_ALPHA_ONLY' => 'The field “%s” has invalid characters, only alphanumeric characters are allowed.',
'FIELD_INVALID_CHARS_SPACERS_ONLY' => 'The field “%s” has invalid characters, only alphanumeric, space or -+_[] characters are allowed.',
'FIELD_INVALID_DATE' => 'The field “%s” has an invalid date.',
+ 'FIELD_INVALID_VALUE' => 'The field “%s” has an invalid value.',
'FOE_MESSAGE' => 'Message from foe',
'FOES_EXPLAIN' => 'Foes are users which will be ignored by default. Posts by these users will not be fully visible. Personal messages from foes are still permitted. Please note that you cannot ignore moderators or administrators.',