mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-04 17:21:39 +09:00
Preserve existing member extra_vars when updating
This commit is contained in:
parent
62d9befb0d
commit
85a337f0d3
3 changed files with 27 additions and 6 deletions
|
|
@ -75,10 +75,23 @@ class memberAdminController extends member
|
|||
}
|
||||
}
|
||||
|
||||
// Remove some unnecessary variables from all the vars
|
||||
// Get existing extra vars
|
||||
if($args->member_srl)
|
||||
{
|
||||
$output = executeQuery('member.getMemberInfoByMemberSrl', ['member_srl' => $args->member_srl], ['extra_vars']);
|
||||
$extra_vars = ($output->data && $output->data->extra_vars) ? unserialize($output->data->extra_vars) : new stdClass;
|
||||
foreach($this->nouse_extra_vars as $key)
|
||||
{
|
||||
unset($extra_vars->$key);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$extra_vars = new stdClass;
|
||||
}
|
||||
|
||||
// Get list of extra vars
|
||||
$all_args = Context::getRequestVars();
|
||||
$extra_vars = new stdClass;
|
||||
foreach($config->signupForm as $formInfo)
|
||||
{
|
||||
if (!$formInfo->isDefaultForm && isset($all_args->{$formInfo->name}))
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ class member extends ModuleObject
|
|||
* Extra vars for admin purposes
|
||||
*/
|
||||
public $admin_extra_vars = ['refused_reason', 'limited_reason'];
|
||||
public $nouse_extra_vars = ['error_return_url', 'success_return_url', '_rx_ajax_compat', '_rx_csrf_token', 'ruleset', 'captchaType', 'use_editor', 'use_html'];
|
||||
|
||||
/**
|
||||
* constructor
|
||||
|
|
|
|||
|
|
@ -1157,9 +1157,16 @@ class memberController extends member
|
|||
// Fill in member_srl
|
||||
$args->member_srl = $logged_info->member_srl;
|
||||
|
||||
// Get list of extra vars
|
||||
// Get existing extra vars
|
||||
$output = executeQuery('member.getMemberInfoByMemberSrl', ['member_srl' => $args->member_srl], ['extra_vars']);
|
||||
$extra_vars = ($output->data && $output->data->extra_vars) ? unserialize($output->data->extra_vars) : new stdClass;
|
||||
foreach($this->nouse_extra_vars as $key)
|
||||
{
|
||||
unset($extra_vars->$key);
|
||||
}
|
||||
|
||||
// Update extra vars
|
||||
$all_args = Context::getRequestVars();
|
||||
$extra_vars = new stdClass;
|
||||
foreach($config->signupForm as $formInfo)
|
||||
{
|
||||
if (!$formInfo->isDefaultForm && isset($all_args->{$formInfo->name}))
|
||||
|
|
@ -1169,9 +1176,9 @@ class memberController extends member
|
|||
}
|
||||
foreach($this->admin_extra_vars as $key)
|
||||
{
|
||||
if (isset($logged_info->{$key}))
|
||||
if (isset($all_args->{$key}))
|
||||
{
|
||||
$extra_vars->{$key} = $logged_info->{$key};
|
||||
$extra_vars->{$key} = escape(utf8_clean($all_args->{$key}));
|
||||
}
|
||||
}
|
||||
$args->extra_vars = serialize($extra_vars);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue