Fix inconsistent calling of createSignupForm() in member module

This commit is contained in:
Kijin Sung 2023-04-10 22:31:24 +09:00
parent 5c5d7223ce
commit b88fe65d6e
3 changed files with 23 additions and 10 deletions

View file

@ -626,13 +626,21 @@ class MemberAdminController extends Member
$this->setRedirectUrl($returnUrl);
}
function createSignupForm($identifier)
public static function createSignupForm($config)
{
global $lang;
$oMemberModel = getModel('member');
// Maintain backward compatibility with inconsistent use of the first parameter of this method.
if (is_object($config))
{
$identifier = $config->identifier ?? 'user_id';
}
else
{
$identifier = strval($config) ?: 'user_id';
$config = new \stdClass;
}
// Get join form list which is additionally set
$extendItems = $oMemberModel->getJoinFormList();
$extendItems = MemberModel::getJoinFormList();
$items = array('user_id', 'email_address', 'phone_number', 'password', 'user_name', 'nick_name', 'homepage', 'blog', 'birthday', 'signature', 'profile_image', 'image_name', 'image_mark');
$mustRequireds = array('email_address', 'nick_name', 'password');
@ -642,7 +650,6 @@ class MemberAdminController extends Member
foreach($items as $key)
{
unset($signupItem);
$signupItem = new stdClass;
$signupItem->isDefaultForm = true;
$signupItem->name = $key;

View file

@ -367,20 +367,26 @@ class Member extends ModuleObject
// Check signup form
$oModuleController = getController('module');
$oMemberAdminController = getAdminController('member');
if(empty($config->identifier))
{
$config->identifier = 'user_id';
$changed = true;
}
if(empty($config->identifiers))
{
$config->identifiers = array('user_id', 'email_address');
$changed = true;
}
if(empty($config->signupForm) || !is_array($config->signupForm))
{
$config->signupForm = $oMemberAdminController->createSignupForm($config);
$output = $oModuleController->updateModuleConfig('member', $config);
$config->signupForm = MemberAdminController::createSignupForm($config);
$changed = true;
}
if($changed)
{
$oModuleController->updateModuleConfig('member', $config);
}
$phone_found = false;
foreach($config->signupForm as $no => $signupItem)
{
@ -443,7 +449,7 @@ class Member extends ModuleObject
// Save updated config
if($changed)
{
$output = $oModuleController->updateModuleConfig('member', $config);
$oModuleController->updateModuleConfig('member', $config);
}
// Check skin

View file

@ -128,7 +128,7 @@ class MemberModel extends Member
// Set signup form
if(!isset($config->signupForm) || !is_array($config->signupForm))
{
$config->signupForm = getAdminController('member')->createSignupForm($config->identifier);
$config->signupForm = MemberAdminController::createSignupForm($config);
}
foreach($config->signupForm as $key => $value)
{