aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoas Schilling <nickvergessen@gmx.de>2015-01-20 22:46:08 +0100
committerJoas Schilling <nickvergessen@gmx.de>2015-01-20 22:46:08 +0100
commitf02dc44a23e60c451552a52db2ddd38183c1e387 (patch)
tree51d6cf888d120b7fbde0ac24dfa4cd79111c9824
parent40006376f2ca8a4ea2806d37b26cb6690df78004 (diff)
parentd43f196fa6887fb399be318b30a594f98258aa1a (diff)
downloadforums-f02dc44a23e60c451552a52db2ddd38183c1e387.tar
forums-f02dc44a23e60c451552a52db2ddd38183c1e387.tar.gz
forums-f02dc44a23e60c451552a52db2ddd38183c1e387.tar.bz2
forums-f02dc44a23e60c451552a52db2ddd38183c1e387.tar.xz
forums-f02dc44a23e60c451552a52db2ddd38183c1e387.zip
Merge pull request #3138 from prototech/ticket/12642
[ticket/12642] Ensure CPF type specific options are set when editing booleans.
-rw-r--r--phpBB/phpbb/profilefields/type/type_bool.php38
1 files changed, 19 insertions, 19 deletions
diff --git a/phpBB/phpbb/profilefields/type/type_bool.php b/phpBB/phpbb/profilefields/type/type_bool.php
index 75934e3be7..77eedcbd04 100644
--- a/phpBB/phpbb/profilefields/type/type_bool.php
+++ b/phpBB/phpbb/profilefields/type/type_bool.php
@@ -367,29 +367,29 @@ class type_bool extends type_base
*/
public function prepare_hidden_fields($step, $key, $action, &$field_data)
{
- if ($key == 'l_lang_options' && $this->request->is_set('l_lang_options'))
+ if ($key == 'field_default_value')
{
- return $this->request->variable($key, array(array('')), true);
- }
- else if ($key == 'field_default_value')
- {
- return $this->request->variable($key, $field_data[$key]);
- }
- else
- {
- if (!$this->request->is_set($key))
- {
- return false;
- }
- else if ($key == 'field_ident' && isset($field_data[$key]))
- {
- return $field_data[$key];
- }
- else
+ $field_length = $this->request->variable('field_length', 0);
+
+ // Do a simple is set check if using checkbox.
+ if ($field_length == 2)
{
- return ($key == 'lang_options') ? $this->request->variable($key, array(''), true) : $this->request->variable($key, '', true);
+ return $this->request->is_set($key);
}
+ return $this->request->variable($key, $field_data[$key], true);
+ }
+
+ $default_lang_options = array(
+ 'l_lang_options' => array(0 => array('')),
+ 'lang_options' => array(0 => ''),
+ );
+
+ if (isset($default_lang_options[$key]) && $this->request->is_set($key))
+ {
+ return $this->request->variable($key, $default_lang_options[$key], true);
}
+
+ return parent::prepare_hidden_fields($step, $key, $action, $field_data);
}
/**