mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 14:18:52 +00:00
[ticket/11201] Move custom template variable assignment to type class
PHPBB3-11201
This commit is contained in:
parent
af5c747f6f
commit
74d36591e1
8 changed files with 89 additions and 55 deletions
|
@ -611,9 +611,7 @@ class acp_profile
|
||||||
{
|
{
|
||||||
// Create basic options - only small differences between field types
|
// Create basic options - only small differences between field types
|
||||||
case 1:
|
case 1:
|
||||||
|
$template_vars = array(
|
||||||
// Build common create options
|
|
||||||
$template->assign_vars(array(
|
|
||||||
'S_STEP_ONE' => true,
|
'S_STEP_ONE' => true,
|
||||||
'S_FIELD_REQUIRED' => ($cp->vars['field_required']) ? true : false,
|
'S_FIELD_REQUIRED' => ($cp->vars['field_required']) ? true : false,
|
||||||
'S_FIELD_SHOW_NOVALUE'=> ($cp->vars['field_show_novalue']) ? true : false,
|
'S_FIELD_SHOW_NOVALUE'=> ($cp->vars['field_show_novalue']) ? true : false,
|
||||||
|
@ -628,50 +626,15 @@ class acp_profile
|
||||||
'FIELD_TYPE' => $user->lang['FIELD_' . strtoupper($cp->profile_types[$field_type])],
|
'FIELD_TYPE' => $user->lang['FIELD_' . strtoupper($cp->profile_types[$field_type])],
|
||||||
'FIELD_IDENT' => $cp->vars['field_ident'],
|
'FIELD_IDENT' => $cp->vars['field_ident'],
|
||||||
'LANG_NAME' => $cp->vars['lang_name'],
|
'LANG_NAME' => $cp->vars['lang_name'],
|
||||||
'LANG_EXPLAIN' => $cp->vars['lang_explain'])
|
'LANG_EXPLAIN' => $cp->vars['lang_explain'],
|
||||||
);
|
);
|
||||||
|
|
||||||
// String and Text needs to set default values here...
|
$field_data = $cp->vars;
|
||||||
if ($field_type == FIELD_STRING || $field_type == FIELD_TEXT)
|
$profile_field->display_options($template_vars, $field_data);
|
||||||
{
|
$cp->vars = $field_data;
|
||||||
$template->assign_vars(array(
|
|
||||||
'S_TEXT' => ($field_type == FIELD_TEXT) ? true : false,
|
|
||||||
'S_STRING' => ($field_type == FIELD_STRING) ? true : false,
|
|
||||||
|
|
||||||
'L_DEFAULT_VALUE_EXPLAIN' => $user->lang[strtoupper($cp->profile_types[$field_type]) . '_DEFAULT_VALUE_EXPLAIN'],
|
|
||||||
'LANG_DEFAULT_VALUE' => $cp->vars['lang_default_value'])
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($field_type == FIELD_BOOL || $field_type == FIELD_DROPDOWN)
|
|
||||||
{
|
|
||||||
// Initialize these array elements if we are creating a new field
|
|
||||||
if (!sizeof($cp->vars['lang_options']))
|
|
||||||
{
|
|
||||||
if ($field_type == FIELD_BOOL)
|
|
||||||
{
|
|
||||||
// No options have been defined for a boolean field.
|
|
||||||
$cp->vars['lang_options'][0] = '';
|
|
||||||
$cp->vars['lang_options'][1] = '';
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// No options have been defined for the dropdown menu
|
|
||||||
$cp->vars['lang_options'] = array();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$template->assign_vars(array(
|
|
||||||
'S_BOOL' => ($field_type == FIELD_BOOL) ? true : false,
|
|
||||||
'S_DROPDOWN' => ($field_type == FIELD_DROPDOWN) ? true : false,
|
|
||||||
|
|
||||||
'L_LANG_OPTIONS_EXPLAIN' => $user->lang[strtoupper($cp->profile_types[$field_type]) . '_ENTRIES_EXPLAIN'],
|
|
||||||
'LANG_OPTIONS' => ($field_type == FIELD_DROPDOWN) ? implode("\n", $cp->vars['lang_options']) : '',
|
|
||||||
'FIRST_LANG_OPTION' => ($field_type == FIELD_BOOL) ? $cp->vars['lang_options'][0] : '',
|
|
||||||
'SECOND_LANG_OPTION' => ($field_type == FIELD_BOOL) ? $cp->vars['lang_options'][1] : '')
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
// Build common create options
|
||||||
|
$template->assign_vars($template_vars);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
|
|
|
@ -95,4 +95,12 @@ abstract class type_base implements type_interface
|
||||||
return $this->request->variable($key, '', true);
|
return $this->request->variable($key, '', true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritDoc}
|
||||||
|
*/
|
||||||
|
public function display_options(&$template_vars, &$field_data)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -326,4 +326,25 @@ class type_bool extends type_base
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritDoc}
|
||||||
|
*/
|
||||||
|
public function display_options(&$template_vars, &$field_data)
|
||||||
|
{
|
||||||
|
// Initialize these array elements if we are creating a new field
|
||||||
|
if (!sizeof($field_data['lang_options']))
|
||||||
|
{
|
||||||
|
// No options have been defined for a boolean field.
|
||||||
|
$field_data['lang_options'][0] = '';
|
||||||
|
$field_data['lang_options'][1] = '';
|
||||||
|
}
|
||||||
|
|
||||||
|
$template_vars = array_merge($template_vars, array(
|
||||||
|
'S_BOOL' => true,
|
||||||
|
'L_LANG_OPTIONS_EXPLAIN' => $this->user->lang['BOOL_ENTRIES_EXPLAIN'],
|
||||||
|
'FIRST_LANG_OPTION' => $field_data['lang_options'][0],
|
||||||
|
'SECOND_LANG_OPTION' => $field_data['lang_options'][1],
|
||||||
|
));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -314,7 +314,7 @@ class type_date extends type_base
|
||||||
{
|
{
|
||||||
return 'now';
|
return 'now';
|
||||||
}
|
}
|
||||||
else if ($this->request->is_set'field_default_value_day'))
|
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_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_month'] = $this->request->variable('field_default_value_month', 0);
|
||||||
|
|
|
@ -239,4 +239,23 @@ class type_dropdown extends type_base
|
||||||
|
|
||||||
return parent::get_excluded_options($key, $action, $current_value, $field_data, $step);
|
return parent::get_excluded_options($key, $action, $current_value, $field_data, $step);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritDoc}
|
||||||
|
*/
|
||||||
|
public function display_options(&$template_vars, &$field_data)
|
||||||
|
{
|
||||||
|
// Initialize these array elements if we are creating a new field
|
||||||
|
if (!sizeof($field_data['lang_options']))
|
||||||
|
{
|
||||||
|
// No options have been defined for the dropdown menu
|
||||||
|
$field_data['lang_options'] = array();
|
||||||
|
}
|
||||||
|
|
||||||
|
$template_vars = array_merge($template_vars, array(
|
||||||
|
'S_DROPDOWN' => true,
|
||||||
|
'L_LANG_OPTIONS_EXPLAIN' => $this->user->lang['DROPDOWN_ENTRIES_EXPLAIN'],
|
||||||
|
'LANG_OPTIONS' => implode("\n", $field_data['lang_options']),
|
||||||
|
));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,16 +11,6 @@ namespace phpbb\profilefields\type;
|
||||||
|
|
||||||
interface type_interface
|
interface type_interface
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
public function validate(&$value, $validation);
|
|
||||||
|
|
||||||
public function prepare_for_storage($value);
|
|
||||||
|
|
||||||
public function prepare_for_display($value);
|
|
||||||
|
|
||||||
public function prepare_for_edit($value);
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get dropdown options for second step in ACP
|
* Get dropdown options for second step in ACP
|
||||||
*
|
*
|
||||||
|
@ -154,4 +144,13 @@ interface type_interface
|
||||||
* @return mixed Final value of the option
|
* @return mixed Final value of the option
|
||||||
*/
|
*/
|
||||||
public function prepare_hidden_fields($step, $key, $action, &$field_data);
|
public function prepare_hidden_fields($step, $key, $action, &$field_data);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Allows assigning of additional template variables
|
||||||
|
*
|
||||||
|
* @param array $template_vars Template variables we are going to assign
|
||||||
|
* @param array $field_data Array with data for this field
|
||||||
|
* @return null
|
||||||
|
*/
|
||||||
|
public function display_options(&$template_vars, &$field_data);
|
||||||
}
|
}
|
||||||
|
|
|
@ -110,4 +110,16 @@ class type_string extends type_string_common
|
||||||
|
|
||||||
return $options;
|
return $options;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritDoc}
|
||||||
|
*/
|
||||||
|
public function display_options(&$template_vars, &$field_data)
|
||||||
|
{
|
||||||
|
$template_vars = array_merge($template_vars, array(
|
||||||
|
'S_STRING' => true,
|
||||||
|
'L_DEFAULT_VALUE_EXPLAIN' => $this->user->lang['STRING_DEFAULT_VALUE_EXPLAIN'],
|
||||||
|
'LANG_DEFAULT_VALUE' => $field_data['lang_default_value'],
|
||||||
|
));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -155,4 +155,16 @@ class type_text extends type_string_common
|
||||||
|
|
||||||
return parent::prepare_hidden_fields($step, $key, $action, $field_data);
|
return parent::prepare_hidden_fields($step, $key, $action, $field_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritDoc}
|
||||||
|
*/
|
||||||
|
public function display_options(&$template_vars, &$field_data)
|
||||||
|
{
|
||||||
|
$template_vars = array_merge($template_vars, array(
|
||||||
|
'S_TEXT' => true,
|
||||||
|
'L_DEFAULT_VALUE_EXPLAIN' => $this->user->lang['TEXT_DEFAULT_VALUE_EXPLAIN'],
|
||||||
|
'LANG_DEFAULT_VALUE' => $field_data['lang_default_value'],
|
||||||
|
));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue