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 @@
-