From 1db4a9d75292be0965c9eeafcbc8423a50a17966 Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Wed, 18 Mar 2020 23:56:54 +0900 Subject: [PATCH] Cleanup related to phone country change --- modules/member/lang/en.php | 1 + modules/member/lang/ko.php | 1 + modules/member/member.admin.view.php | 2 +- modules/member/member.class.php | 34 +++++++++++++++++-- modules/member/member.controller.php | 4 +-- modules/member/member.view.php | 2 +- .../queries/getMemberCountByPhoneCountry.xml | 11 ++++++ .../queries/updateMemberPhoneCountry.xml | 11 ++++++ modules/member/tpl/member_list.html | 2 +- 9 files changed, 60 insertions(+), 8 deletions(-) create mode 100644 modules/member/queries/getMemberCountByPhoneCountry.xml create mode 100644 modules/member/queries/updateMemberPhoneCountry.xml diff --git a/modules/member/lang/en.php b/modules/member/lang/en.php index f6bcc7c64..f31a6a671 100644 --- a/modules/member/lang/en.php +++ b/modules/member/lang/en.php @@ -167,6 +167,7 @@ $lang->msg_column_id_not_available = 'The ID already exists or is not usable.'; $lang->msg_exists_user_id = 'This ID already exists. Please try another one.'; $lang->msg_exists_email_address = 'This email address already exists. Please try another one.'; $lang->msg_exists_phone_number = 'This phone number already exists. Please try another one.'; +$lang->msg_invalid_phone_country = 'The phone number belongs to an unsupported country.'; $lang->msg_invalid_phone_number = 'The phone number you have entered is invalid.'; $lang->msg_exists_nick_name = 'This nickname already exists. Please try another one.'; $lang->msg_signup_disabled = 'You are not able to sign up'; diff --git a/modules/member/lang/ko.php b/modules/member/lang/ko.php index 0490209e4..2b157e2ba 100644 --- a/modules/member/lang/ko.php +++ b/modules/member/lang/ko.php @@ -175,6 +175,7 @@ $lang->msg_column_id_not_available = '이미 존재하거나 사용할 수 없 $lang->msg_exists_user_id = '이미 존재하는 아이디입니다. 다른 아이디를 입력해주세요.'; $lang->msg_exists_email_address = '이미 존재하는 메일 주소입니다. 다른 메일 주소를 입력해주세요.'; $lang->msg_exists_phone_number = '이미 존재하는 전화번호입니다. 다른 전화번호를 입력해주세요.'; +$lang->msg_invalid_phone_country = '전화번호의 국가가 잘못 선택되었습니다.'; $lang->msg_invalid_phone_number = '전화번호가 형식에 맞지 않습니다.'; $lang->msg_exists_nick_name = '이미 존재하는 닉네임입니다. 다른 닉네임을 입력해주세요.'; $lang->msg_signup_disabled = '회원 가입할 수 없습니다.'; diff --git a/modules/member/member.admin.view.php b/modules/member/member.admin.view.php index 603036e17..e52f20e67 100644 --- a/modules/member/member.admin.view.php +++ b/modules/member/member.admin.view.php @@ -266,7 +266,7 @@ class memberAdminView extends member Context::set('country_list', $country_list); if(!$config->phone_number_default_country && Context::get('lang_type') === 'ko') { - $config->phone_number_default_country = '82'; + $config->phone_number_default_country = 'KOR'; } $this->setTemplateFile('signup_config'); diff --git a/modules/member/member.class.php b/modules/member/member.class.php index 1bca5767b..645b685c3 100644 --- a/modules/member/member.class.php +++ b/modules/member/member.class.php @@ -218,9 +218,21 @@ 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 members with phone country in old format + if ($config->phone_number_default_country && !preg_match('/^[A-Z]{3}$/', $config->phone_number_default_country)) + { + return true; + } + $output = executeQuery('member.getMemberCountByPhoneCountry', (object)['phone_country' => '82']); + if ($output->data->count) + { + return true; + } + + // Check signup form if(!$config->signupForm || !is_array($config->signupForm)) return true; $phone_found = false; foreach($config->signupForm as $signupItem) @@ -401,9 +413,26 @@ class member extends ModuleObject { $oDB->addIndex("member_scrap","idx_folder_srl", array("folder_srl")); } - // Check signup form $oModuleModel = getModel('module'); $config = $oModuleModel->getModuleConfig('member'); + $changed = false; + + // Check members with phone country in old format + if ($config->phone_number_default_country && !preg_match('/^[A-Z]{3}$/', $config->phone_number_default_country)) + { + $config->phone_number_default_country = Rhymix\Framework\i18n::getCountryCodeByCallingCode($config->phone_number_default_country); + $changed = true; + } + $output = executeQuery('member.getMemberCountByPhoneCountry', (object)['phone_country' => '82']); + if ($output->data->count) + { + executeQuery('member.updateMemberPhoneCountry', (object)array( + 'old_phone_country' => '82', + 'new_phone_country' => 'KOR', + )); + } + + // Check signup form $oModuleController = getController('module'); $oMemberAdminController = getAdminController('member'); if(!$config->identifier) @@ -415,7 +444,6 @@ class member extends ModuleObject { $config->signupForm = $oMemberAdminController->createSignupForm($config); $output = $oModuleController->updateModuleConfig('member', $config); } - $changed = false; $phone_number_found = false; foreach($config->signupForm as $no => $signupItem) { diff --git a/modules/member/member.controller.php b/modules/member/member.controller.php index f36d9fbc0..37e6234d2 100644 --- a/modules/member/member.controller.php +++ b/modules/member/member.controller.php @@ -3366,12 +3366,12 @@ class memberController extends member $phone_country_calling_code = preg_replace('/[^0-9]/', '', Rhymix\Framework\i18n::getCallingCodeByCountryCode($phone_country)); if (!$phone_country_calling_code) { - return new BaseObject(-1, 'msg_invalid_phone_number'); + return new BaseObject(-1, 'msg_invalid_phone_country'); } } else { - return new BaseObject(-1, 'msg_invalid_phone_number'); + return new BaseObject(-1, 'msg_invalid_phone_country'); } if (!preg_match('/[0-9]{2,}/', $phone_number)) diff --git a/modules/member/member.view.php b/modules/member/member.view.php index 1f26712a8..3667549be 100644 --- a/modules/member/member.view.php +++ b/modules/member/member.view.php @@ -156,7 +156,7 @@ class memberView extends member { $item->value = Rhymix\Framework\i18n::formatPhoneNumber($item->value, $memberInfo->phone_country); } - elseif(($memberConfig->phone_number_default_country === 'KOR' || $memberConfig->phone_number_default_country == '82') && ($memberInfo->phone_country === 'KOR' || $memberInfo->phone_country == '82')) + elseif($memberConfig->phone_number_default_country === 'KOR' && ($memberInfo->phone_country === 'KOR' || $memberInfo->phone_country == '82')) { $item->value = Rhymix\Framework\Korea::formatPhoneNumber($item->value); } diff --git a/modules/member/queries/getMemberCountByPhoneCountry.xml b/modules/member/queries/getMemberCountByPhoneCountry.xml new file mode 100644 index 000000000..e25939adc --- /dev/null +++ b/modules/member/queries/getMemberCountByPhoneCountry.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/modules/member/queries/updateMemberPhoneCountry.xml b/modules/member/queries/updateMemberPhoneCountry.xml new file mode 100644 index 000000000..a97478f36 --- /dev/null +++ b/modules/member/queries/updateMemberPhoneCountry.xml @@ -0,0 +1,11 @@ + + +
+ + + + + + + + diff --git a/modules/member/tpl/member_list.html b/modules/member/tpl/member_list.html index 13422c423..1efb7d207 100644 --- a/modules/member/tpl/member_list.html +++ b/modules/member/tpl/member_list.html @@ -62,7 +62,7 @@ {\Rhymix\Framework\i18n::formatPhoneNumber($member_info['phone_number'], $member_info['phone_country'])} - + {\Rhymix\Framework\Korea::formatPhoneNumber($member_info['phone_number'])} {$member_info['phone_number']}