diff --git a/classes/display/HTMLDisplayHandler.php b/classes/display/HTMLDisplayHandler.php index 740e4698d..dccc26dfb 100644 --- a/classes/display/HTMLDisplayHandler.php +++ b/classes/display/HTMLDisplayHandler.php @@ -15,7 +15,7 @@ class HTMLDisplayHandler { else $skin = $oModule->module_config->skin; - if ($skin){ + if ($skin && is_string($skin)){ $theme_skin = explode('.', $skin); if (count($theme_skin) == 2) $template_path = sprintf('./themes/%s/modules/%s/', $theme_skin[0], $theme_skin[1]); @@ -24,6 +24,7 @@ class HTMLDisplayHandler { }else{ $template_path = $oModule->getTemplatePath(); } + $tpl_file = $oModule->getTemplateFile(); $output = $oTemplate->compile($template_path, $tpl_file); diff --git a/modules/member/conf/module.xml b/modules/member/conf/module.xml index b87a41aa9..1e41c7fc5 100644 --- a/modules/member/conf/module.xml +++ b/modules/member/conf/module.xml @@ -36,7 +36,7 @@ - + diff --git a/modules/member/lang/lang.xml b/modules/member/lang/lang.xml index b09576e71..58bfede26 100644 --- a/modules/member/lang/lang.xml +++ b/modules/member/lang/lang.xml @@ -2319,4 +2319,10 @@ Bạn có thể quản lý thành viên bằng cách tạo những nhóm mới, + + + + + 이메일 주소 선택시 회원정보는 이메일 주소로 노출됩니다.]]> + diff --git a/modules/member/member.admin.controller.php b/modules/member/member.admin.controller.php index 6fb352d81..50a6668be 100644 --- a/modules/member/member.admin.controller.php +++ b/modules/member/member.admin.controller.php @@ -212,6 +212,7 @@ // create Ruleset $this->_createSignupRuleset($signupForm); + $this->_createLoginRuleset($args->identifier); } $output = $oModuleController->updateModuleConfig('member', $args); // default setting end @@ -244,6 +245,31 @@ $xml_buff = sprintf($buff, implode('', $fields)); FileHandler::writeFile($xml_file, $xml_buff); + + $validator = new Validator($xml_file); + $validator->setCacheDir('files/cache'); + $validator->getJsPath(); + } + + function _createLoginRuleset($identifier){ + $xml_file = './files/ruleset/login.xml'; + $buff = '' + .'' + .'' + .'' + .'%s' + .''; + + $fields = array(); + $fields[] = sprintf('', $identifier); + $fields[] = ''; + + $xml_buff = sprintf($buff, implode('', $fields)); + FileHandler::writeFile($xml_file, $xml_buff); + + $validator = new Validator($xml_file); + $validator->setCacheDir('files/cache'); + $validator->getJsPath(); } /** diff --git a/modules/member/member.controller.php b/modules/member/member.controller.php index 059fd174d..259e4058f 100644 --- a/modules/member/member.controller.php +++ b/modules/member/member.controller.php @@ -1390,10 +1390,21 @@ if(!$trigger_output->toBool()) return $trigger_output; // Create a member model object $oMemberModel = &getModel('member'); - // Get user_id information - $this->memberInfo = $oMemberModel->getMemberInfoByUserID($user_id); - // Set an invalid user if no value returned - if(!$user_id || strtolower($this->memberInfo->user_id) != strtolower($user_id)) return new Object(-1, 'invalid_user_id'); + + // check identifier + $config = $oMemberModel->getMemberConfig(); + if ($config->identifier == 'email_address'){ + // Get user_id information + $this->memberInfo = $oMemberModel->getMemberInfoByEmailAddress($user_id); + // Set an invalid user if no value returned + if(!$user_id || strtolower($this->memberInfo->email_address) != strtolower($user_id)) return new Object(-1, 'invalid_email_address'); + + }else{ + // Get user_id information + $this->memberInfo = $oMemberModel->getMemberInfoByUserID($user_id); + // Set an invalid user if no value returned + if(!$user_id || strtolower($this->memberInfo->user_id) != strtolower($user_id)) return new Object(-1, 'invalid_user_id'); + } // Password Check if($password && !$oMemberModel->isValidPassword($this->memberInfo->password, $password)) return new Object(-1, 'invalid_password'); // If denied == 'Y', notify diff --git a/modules/member/member.model.php b/modules/member/member.model.php index 283ae91d8..ed8f4906b 100644 --- a/modules/member/member.model.php +++ b/modules/member/member.model.php @@ -168,6 +168,21 @@ return $member_info; } + /** + * @brief Return member information with email_address + **/ + function getMemberInfoByEmailAddress($email_address) { + if(!$email_address) return; + + $args->email_address = $email_address; + $output = executeQuery('member.getMemberInfoByEmailAddress', $args); + if(!$output->toBool()) return $output; + if(!$output->data) return; + + $member_info = $this->arrangeMemberInfo($output->data); + return $member_info; + } + /** * @brief Return member information with member_srl **/ diff --git a/modules/member/queries/getMemberInfoByEmailAddress.xml b/modules/member/queries/getMemberInfoByEmailAddress.xml new file mode 100644 index 000000000..14ab0f645 --- /dev/null +++ b/modules/member/queries/getMemberInfoByEmailAddress.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/modules/member/skins/default/login_form.html b/modules/member/skins/default/login_form.html index 265e947c5..b1bd2535d 100644 --- a/modules/member/skins/default/login_form.html +++ b/modules/member/skins/default/login_form.html @@ -14,7 +14,7 @@
{$lang->cmd_login}
- + diff --git a/modules/message/skins/default/system_message.html b/modules/message/skins/default/system_message.html index 7f7fd1161..b487d6833 100644 --- a/modules/message/skins/default/system_message.html +++ b/modules/message/skins/default/system_message.html @@ -10,7 +10,7 @@
- +
    diff --git a/themes/xe_default/conf/info.xml b/themes/xe_default/conf/info.xml index 32ab2e008..849cc754e 100644 --- a/themes/xe_default/conf/info.xml +++ b/themes/xe_default/conf/info.xml @@ -10,10 +10,10 @@ XE가 제공하는 기본 테마입니다. The basic theme is provided by XE. - - + - + + diff --git a/widgets/login_info/skins/xe_official/login_form.html b/widgets/login_info/skins/xe_official/login_form.html index 359ba1ce1..dbb1d5618 100644 --- a/widgets/login_info/skins/xe_official/login_form.html +++ b/widgets/login_info/skins/xe_official/login_form.html @@ -12,9 +12,14 @@
{$lang->identifier} [?]
-

로그인시 사용할 필드를 선택합니다.

+

{$lang->about_identifier}

{$lang->use}