mirror of
https://github.com/phpbb/phpbb.git
synced 2025-02-24 20:13:22 +01:00
[ticket/11201] Move preparation of hidden fields to type class
PHPBB3-11201
This commit is contained in:
parent
67f477fc8f
commit
af5c747f6f
@ -568,54 +568,16 @@ class acp_profile
|
||||
|
||||
$_new_key_ary = array();
|
||||
|
||||
$field_data = $cp->vars;
|
||||
foreach ($key_ary as $key)
|
||||
{
|
||||
if ($field_type == FIELD_TEXT && $key == 'field_length' && isset($_REQUEST['rows']))
|
||||
$var = $profile_field->prepare_hidden_fields($step, $key, $action, $field_data);
|
||||
if (!is_null($var))
|
||||
{
|
||||
$cp->vars['rows'] = request_var('rows', 0);
|
||||
$cp->vars['columns'] = request_var('columns', 0);
|
||||
$_new_key_ary[$key] = $cp->vars['rows'] . '|' . $cp->vars['columns'];
|
||||
}
|
||||
else if ($field_type == FIELD_DATE && $key == 'field_default_value')
|
||||
{
|
||||
$always_now = request_var('always_now', 0);
|
||||
|
||||
if ($always_now)
|
||||
{
|
||||
$_new_key_ary[$key] = 'now';
|
||||
}
|
||||
else if (isset($_REQUEST['field_default_value_day']))
|
||||
{
|
||||
$cp->vars['field_default_value_day'] = request_var('field_default_value_day', 0);
|
||||
$cp->vars['field_default_value_month'] = request_var('field_default_value_month', 0);
|
||||
$cp->vars['field_default_value_year'] = request_var('field_default_value_year', 0);
|
||||
$_new_key_ary[$key] = sprintf('%2d-%2d-%4d', $cp->vars['field_default_value_day'], $cp->vars['field_default_value_month'], $cp->vars['field_default_value_year']);
|
||||
}
|
||||
}
|
||||
else if ($field_type == FIELD_BOOL && $key == 'l_lang_options' && isset($_REQUEST['l_lang_options']))
|
||||
{
|
||||
$_new_key_ary[$key] = utf8_normalize_nfc(request_var($key, array(array('')), true));
|
||||
}
|
||||
else if ($field_type == FIELD_BOOL && $key == 'field_default_value')
|
||||
{
|
||||
$_new_key_ary[$key] = request_var($key, $cp->vars[$key]);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!isset($_REQUEST[$key]))
|
||||
{
|
||||
$var = false;
|
||||
}
|
||||
else if ($key == 'field_ident' && isset($cp->vars[$key]))
|
||||
{
|
||||
$_new_key_ary[$key]= $cp->vars[$key];
|
||||
}
|
||||
else
|
||||
{
|
||||
$_new_key_ary[$key] = ($field_type == FIELD_BOOL && $key == 'lang_options') ? utf8_normalize_nfc(request_var($key, array(''), true)) : utf8_normalize_nfc(request_var($key, '', true));
|
||||
}
|
||||
$_new_key_ary[$key] = $profile_field->prepare_hidden_fields($step, $key, $action, $field_data);
|
||||
}
|
||||
}
|
||||
$cp->vars = $field_data;
|
||||
|
||||
$s_hidden_fields .= build_hidden_fields($_new_key_ary);
|
||||
}
|
||||
|
@ -75,4 +75,24 @@ abstract class type_base implements type_interface
|
||||
|
||||
return $current_value;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function prepare_hidden_fields($step, $key, $action, &$field_data)
|
||||
{
|
||||
if (!$this->request->is_set($key))
|
||||
{
|
||||
// Do not set this variable, we will use the default value
|
||||
return null;
|
||||
}
|
||||
else if ($key == 'field_ident' && isset($field_data[$key]))
|
||||
{
|
||||
return $field_data[$key];
|
||||
}
|
||||
else
|
||||
{
|
||||
return $this->request->variable($key, '', true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -296,4 +296,34 @@ class type_bool extends type_base
|
||||
|
||||
return parent::get_excluded_options($key, $action, $current_value, $field_data, $step);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function prepare_hidden_fields($step, $key, $action, &$field_data)
|
||||
{
|
||||
if ($key == 'l_lang_options' && $this->request->is_set('l_lang_options'))
|
||||
{
|
||||
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
|
||||
{
|
||||
return ($key == 'lang_options') ? $this->request->variable($key, array(''), true) : $this->request->variable($key, '', true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -300,4 +300,29 @@ class type_date extends type_base
|
||||
|
||||
return parent::get_excluded_options($key, $action, $current_value, $field_data, $step);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function prepare_hidden_fields($step, $key, $action, &$field_data)
|
||||
{
|
||||
if ($key == 'field_default_value')
|
||||
{
|
||||
$always_now = $this->request->variable('always_now', 0);
|
||||
|
||||
if ($always_now)
|
||||
{
|
||||
return 'now';
|
||||
}
|
||||
else if ($this->request->is_set'field_default_value_day'))
|
||||
{
|
||||
$field_data['field_default_value_day'] = $this->request->variable('field_default_value_day', 0);
|
||||
$field_data['field_default_value_month'] = $this->request->variable('field_default_value_month', 0);
|
||||
$field_data['field_default_value_year'] = $this->request->variable('field_default_value_year', 0);
|
||||
return sprintf('%2d-%2d-%4d', $field_data['field_default_value_day'], $field_data['field_default_value_month'], $field_data['field_default_value_year']);
|
||||
}
|
||||
}
|
||||
|
||||
return parent::prepare_hidden_fields($step, $key, $action, $field_data);
|
||||
}
|
||||
}
|
||||
|
@ -143,4 +143,15 @@ interface type_interface
|
||||
* @return mixed Final value of the option
|
||||
*/
|
||||
public function get_excluded_options($key, $action, $current_value, &$field_data, $step);
|
||||
|
||||
/**
|
||||
* Allows manipulating the intended variables if needed
|
||||
*
|
||||
* @param string $key Name of the option
|
||||
* @param int $step Step on which the option is hidden
|
||||
* @param string $action Currently performed action (create|edit)
|
||||
* @param array $field_data Array with data for this field
|
||||
* @return mixed Final value of the option
|
||||
*/
|
||||
public function prepare_hidden_fields($step, $key, $action, &$field_data);
|
||||
}
|
||||
|
@ -140,4 +140,19 @@ class type_text extends type_string_common
|
||||
|
||||
return parent::get_excluded_options($key, $action, $current_value, $field_data, $step);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function prepare_hidden_fields($step, $key, $action, &$field_data)
|
||||
{
|
||||
if ($key == 'field_length' && $this->request->is_set('rows'))
|
||||
{
|
||||
$field_data['rows'] = $this->request->variable('rows', 0);
|
||||
$field_data['columns'] = $this->request->variable('columns', 0);
|
||||
return $field_data['rows'] . '|' . $field_data['columns'];
|
||||
}
|
||||
|
||||
return parent::prepare_hidden_fields($step, $key, $action, $field_data);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user