diff options
author | Joas Schilling <nickvergessen@gmx.de> | 2015-01-20 22:46:08 +0100 |
---|---|---|
committer | Joas Schilling <nickvergessen@gmx.de> | 2015-01-20 22:46:08 +0100 |
commit | f02dc44a23e60c451552a52db2ddd38183c1e387 (patch) | |
tree | 51d6cf888d120b7fbde0ac24dfa4cd79111c9824 | |
parent | 40006376f2ca8a4ea2806d37b26cb6690df78004 (diff) | |
parent | d43f196fa6887fb399be318b30a594f98258aa1a (diff) | |
download | forums-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.php | 38 |
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); } /** |