mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-08 11:11: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
|
// Get list of extra vars
|
||||||
$all_args = Context::getRequestVars();
|
$all_args = Context::getRequestVars();
|
||||||
$extra_vars = new stdClass;
|
|
||||||
foreach($config->signupForm as $formInfo)
|
foreach($config->signupForm as $formInfo)
|
||||||
{
|
{
|
||||||
if (!$formInfo->isDefaultForm && isset($all_args->{$formInfo->name}))
|
if (!$formInfo->isDefaultForm && isset($all_args->{$formInfo->name}))
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@ class member extends ModuleObject
|
||||||
* Extra vars for admin purposes
|
* Extra vars for admin purposes
|
||||||
*/
|
*/
|
||||||
public $admin_extra_vars = ['refused_reason', 'limited_reason'];
|
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
|
* constructor
|
||||||
|
|
|
||||||
|
|
@ -1157,9 +1157,16 @@ class memberController extends member
|
||||||
// Fill in member_srl
|
// Fill in member_srl
|
||||||
$args->member_srl = $logged_info->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();
|
$all_args = Context::getRequestVars();
|
||||||
$extra_vars = new stdClass;
|
|
||||||
foreach($config->signupForm as $formInfo)
|
foreach($config->signupForm as $formInfo)
|
||||||
{
|
{
|
||||||
if (!$formInfo->isDefaultForm && isset($all_args->{$formInfo->name}))
|
if (!$formInfo->isDefaultForm && isset($all_args->{$formInfo->name}))
|
||||||
|
|
@ -1169,9 +1176,9 @@ class memberController extends member
|
||||||
}
|
}
|
||||||
foreach($this->admin_extra_vars as $key)
|
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);
|
$args->extra_vars = serialize($extra_vars);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue