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); $this->setRedirectUrl($returnUrl);
} }
function createSignupForm($identifier) public static function createSignupForm($config)
{ {
global $lang; // Maintain backward compatibility with inconsistent use of the first parameter of this method.
$oMemberModel = getModel('member'); 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 // 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'); $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'); $mustRequireds = array('email_address', 'nick_name', 'password');
@ -642,7 +650,6 @@ class MemberAdminController extends Member
foreach($items as $key) foreach($items as $key)
{ {
unset($signupItem);
$signupItem = new stdClass; $signupItem = new stdClass;
$signupItem->isDefaultForm = true; $signupItem->isDefaultForm = true;
$signupItem->name = $key; $signupItem->name = $key;

View file

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

View file

@ -128,7 +128,7 @@ class MemberModel extends Member
// Set signup form // Set signup form
if(!isset($config->signupForm) || !is_array($config->signupForm)) 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) foreach($config->signupForm as $key => $value)
{ {