aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB
diff options
context:
space:
mode:
authorAndreas Fischer <bantu@phpbb.com>2011-06-09 12:47:26 +0200
committerAndreas Fischer <bantu@phpbb.com>2011-06-09 12:47:26 +0200
commitf7578e29b3c4c4b7b66226f8c159e5e40363162f (patch)
treec38e870ae75b8922bf097c00f0cc7368fff96fd0 /phpBB
parent60811a507ea7e8a2634b597d4c1074c0e3d52be3 (diff)
parenta2b6605ce8d5d4c156fda44c5fc44b11aae22b02 (diff)
downloadforums-f7578e29b3c4c4b7b66226f8c159e5e40363162f.tar
forums-f7578e29b3c4c4b7b66226f8c159e5e40363162f.tar.gz
forums-f7578e29b3c4c4b7b66226f8c159e5e40363162f.tar.bz2
forums-f7578e29b3c4c4b7b66226f8c159e5e40363162f.tar.xz
forums-f7578e29b3c4c4b7b66226f8c159e5e40363162f.zip
Merge remote-tracking branch 'naderman/ticket/10005' into develop-olympus
* naderman/ticket/10005: [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 78fe049f40..1eae2a9ad6 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 ad7c1ccbff..c1e3c06c43 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.',