diff --git a/modules/member/member.admin.controller.php b/modules/member/member.admin.controller.php index e64f41b29..38fe30eb8 100644 --- a/modules/member/member.admin.controller.php +++ b/modules/member/member.admin.controller.php @@ -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; diff --git a/modules/member/member.class.php b/modules/member/member.class.php index 84ad7b134..3b2c30171 100644 --- a/modules/member/member.class.php +++ b/modules/member/member.class.php @@ -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 diff --git a/modules/member/member.model.php b/modules/member/member.model.php index 92a153fc0..a85326922 100644 --- a/modules/member/member.model.php +++ b/modules/member/member.model.php @@ -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) {