From c2e08338d0dfa17a36dfc232bb11c701be4c1855 Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Sat, 3 Aug 2019 17:53:07 +0900 Subject: [PATCH] Add phone number to signup form (disabled by default) --- common/lang/en.php | 1 + common/lang/ko.php | 1 + modules/member/lang/en.php | 1 + modules/member/lang/ko.php | 1 + modules/member/member.admin.controller.php | 8 +- modules/member/member.class.php | 86 ++++++++++++++++++---- modules/member/tpl/signup_config.html | 2 +- 7 files changed, 81 insertions(+), 19 deletions(-) diff --git a/common/lang/en.php b/common/lang/en.php index aa8d20759..0ab87999a 100644 --- a/common/lang/en.php +++ b/common/lang/en.php @@ -94,6 +94,7 @@ $lang->writer = 'Author'; $lang->user_name = 'User Name'; $lang->nick_name = 'Nick Name'; $lang->email_address = 'Email'; +$lang->phone_number = 'Phone Number'; $lang->homepage = 'Homepage'; $lang->blog = 'Blog'; $lang->birthday = 'Birthday'; diff --git a/common/lang/ko.php b/common/lang/ko.php index d536cca5f..8fbdf39bf 100644 --- a/common/lang/ko.php +++ b/common/lang/ko.php @@ -94,6 +94,7 @@ $lang->writer = '글쓴이'; $lang->user_name = '이름'; $lang->nick_name = '닉네임'; $lang->email_address = '이메일 주소'; +$lang->phone_number = '전화번호'; $lang->homepage = '홈페이지'; $lang->blog = '블로그'; $lang->birthday = '생일'; diff --git a/modules/member/lang/en.php b/modules/member/lang/en.php index 55159127f..24c308113 100644 --- a/modules/member/lang/en.php +++ b/modules/member/lang/en.php @@ -78,6 +78,7 @@ $lang->about_webmaster_email = 'This setting can be changed in the retroactive_application = '소급적용'; $lang->signature_html_retroact = '이전에 입력된 HTML 서명에서도 HTML을 제거 합니다. 되돌릴 수 없습니다.'; $lang->search_target_list['email_address'] = '이메일'; +$lang->search_target_list['phone_number'] = '전화번호'; $lang->search_target_list['regdate'] = '가입일시'; $lang->search_target_list['regdate_more'] = '가입일시(이상)'; $lang->search_target_list['regdate_less'] = '가입일시(이하)'; diff --git a/modules/member/member.admin.controller.php b/modules/member/member.admin.controller.php index b6f865e5b..498f15e7f 100644 --- a/modules/member/member.admin.controller.php +++ b/modules/member/member.admin.controller.php @@ -337,7 +337,7 @@ class memberAdminController extends member global $lang; $signupForm = array(); $items = array( - 'user_id', 'password', 'user_name', 'nick_name', 'email_address', 'homepage', 'blog', 'birthday', 'signature', + 'user_id', 'password', 'user_name', 'nick_name', 'email_address', 'phone_number', 'homepage', 'blog', 'birthday', 'signature', 'profile_image', 'profile_image_max_width', 'profile_image_max_height', 'profile_image_max_filesize', 'image_name', 'image_name_max_width', 'image_name_max_height', 'image_name_max_filesize', 'image_mark', 'image_mark_max_width', 'image_mark_max_height', 'image_mark_max_filesize', @@ -482,11 +482,11 @@ class memberAdminController extends member { global $lang; $oMemberModel = getModel('member'); - + // Get join form list which is additionally set $extendItems = $oMemberModel->getJoinFormList(); - $items = array('user_id', 'password', 'user_name', 'nick_name', 'email_address', 'homepage', 'blog', 'birthday', 'signature', 'profile_image', 'image_name', 'image_mark'); + $items = array('user_id', 'password', 'user_name', 'nick_name', 'email_address', 'phone_number', 'homepage', 'blog', 'birthday', 'signature', 'profile_image', 'image_name', 'image_mark'); $mustRequireds = array('email_address', 'nick_name', 'password'); $orgRequireds = array('email_address', 'password', 'user_id', 'nick_name', 'user_name'); $orgUse = array('email_address', 'password', 'user_id', 'nick_name', 'user_name', 'homepage', 'blog', 'birthday'); @@ -504,7 +504,7 @@ class memberAdminController extends member $signupItem->required = in_array($key, $orgRequireds); $signupItem->isUse = ($config->{$key} == 'Y') || in_array($key, $orgUse); $signupItem->isPublic = ($signupItem->isUse) ? 'Y' : 'N'; - if(in_array($key, array('find_account_question', 'password', 'email_address'))) + if(in_array($key, array('find_account_question', 'password', 'email_address', 'phone_number'))) { $signupItem->isPublic = 'N'; } diff --git a/modules/member/member.class.php b/modules/member/member.class.php index b364de8e4..1bca5767b 100644 --- a/modules/member/member.class.php +++ b/modules/member/member.class.php @@ -218,10 +218,11 @@ class member extends ModuleObject { // Check scrap folder table if(!$oDB->isColumnExists("member_scrap", "folder_srl")) return true; + // Check signup form $oModuleModel = getModel('module'); $config = $oModuleModel->getModuleConfig('member'); - // check signup form ordering info if(!$config->signupForm || !is_array($config->signupForm)) return true; + $phone_found = false; foreach($config->signupForm as $signupItem) { if($signupItem->name === 'find_account_question') @@ -232,12 +233,23 @@ class member extends ModuleObject { { return true; } + if($signupItem->name === 'phone_number') + { + $phone_found = true; + } } + if(!$phone_found) + { + return true; + } + + // Check agreements if(!$config->agreements) { return true; } + // Check skin if($config->skin) { $config_parse = explode('.', $config->skin); @@ -389,40 +401,86 @@ class member extends ModuleObject { $oDB->addIndex("member_scrap","idx_folder_srl", array("folder_srl")); } + // Check signup form $oModuleModel = getModel('module'); $config = $oModuleModel->getModuleConfig('member'); $oModuleController = getController('module'); - $oMemberAdminController = getAdminController('member'); - // check signup form ordering info + if(!$config->identifier) + { + $config->identifier = 'email_address'; + } if(!$config->signupForm || !is_array($config->signupForm)) { - $config->identifier = 'user_id'; - $config->signupForm = $oMemberAdminController->createSignupForm($config->identifier); + $config->signupForm = $oMemberAdminController->createSignupForm($config); $output = $oModuleController->updateModuleConfig('member', $config); } - foreach($config->signupForm as $signupItem) + $changed = false; + $phone_number_found = false; + foreach($config->signupForm as $no => $signupItem) { if($signupItem->name === 'find_account_question') { - $config->identifier = $config->identifier ?: 'user_id'; - $config->signupForm = $oMemberAdminController->createSignupForm($config->identifier); - $output = $oModuleController->updateModuleConfig('member', $config); + unset($config->signupForm[$no]); + $config->signupForm = array_values($config->signupForm); + $changed = true; + continue; } if($signupItem->name === 'email_address' && $signupItem->isPublic !== 'N') { $signupItem->isPublic = 'N'; - $output = $oModuleController->updateModuleConfig('member', $config); + $changed = true; + continue; + } + if($signupItem->name === 'phone_number') + { + $phone_number_found = true; + continue; } } + // Insert phone number after email address + if(!$phone_found) + { + $newForm = array(); + foreach($config->signupForm as $signupItem) + { + $newForm[] = $signupItem; + if($signupItem->name === 'email_address') + { + $newItem = new stdClass; + $newItem->isDefaultForm = true; + $newItem->name = $newItem->title = 'phone_number'; + $newItem->mustRequired = false; + $newItem->imageType = false; + $newItem->required = false; + $newItem->isUse = false; + $newItem->isPublic = 'N'; + $newForm[] = $newItem; + } + } + $config->signupForm = $newForm; + $changed = true; + } + + // Check agreements if(!$config->agreements) { - $config = memberModel::getMemberConfig(); - $config->identifier = $config->identifier ?: 'user_id'; - $config->signupForm = $oMemberAdminController->createSignupForm($config->identifier); - $output = $oModuleController->updateModuleConfig('member', $config); + $agreement = new stdClass; + $agreement->title = lang('agreement'); + $agreement->content = $config->agreement; + $agreement->use_editor = 'Y'; + $agreement->type = 'required'; + $config->agreements[] = $agreement; + $changed = true; } + // Save updated config + if($changed) + { + $output = $oModuleController->updateModuleConfig('member', $config); + } + + // Check skin if($config->skin) { $config_parse = explode('.', $config->skin); diff --git a/modules/member/tpl/signup_config.html b/modules/member/tpl/signup_config.html index 73f94c1d5..aedf9245f 100644 --- a/modules/member/tpl/signup_config.html +++ b/modules/member/tpl/signup_config.html @@ -102,7 +102,7 @@ {@ $disabled_list = array('find_account_question')} - {@ $fixed_public_list = array('nick_name', 'password', 'email_address')} + {@ $fixed_public_list = array('nick_name', 'password', 'email_address', 'phone_number')}