Add multiple member agreements

- 가입 약관, 개인정보처리방침 등을 5개까지 추가할 수 있음
- 약관마다 각각 필수 또는 선택을 지정할 수 있음
- 모든 필수 약관에 동의해야 가입 가능
- 기본 스킨은 수정함. 서드파티 스킨에는 여전히 약관 1개만 표시됨
- 서드파티 스킨 사용시 동의 하나만 선택해도 전체 동의로 간주
This commit is contained in:
Kijin Sung 2017-11-27 14:43:20 +09:00
parent 20f924678a
commit 11c04c5a26
19 changed files with 251 additions and 72 deletions

View file

@ -213,12 +213,10 @@ class member extends ModuleObject {
$oModuleModel = getModel('module');
$config = $oModuleModel->getModuleConfig('member');
// check signup form ordering info
if(!$config->signupForm) return true;
// check agreement field exist
if($config->agreement && $config->agreement !== memberModel::_getAgreement())
if(!$config->signupForm || !is_array($config->signupForm)) return true;
foreach($config->signupForm as $signupItem)
{
return true;
if($signupItem->name === 'find_account_question') return true;
}
if($config->skin)
@ -340,24 +338,24 @@ class member extends ModuleObject {
$config = $oModuleModel->getModuleConfig('member');
$oModuleController = getController('module');
// check agreement value exist
if($config->agreement && $config->agreement !== memberModel::_getAgreement())
{
$agreement_file = _XE_PATH_.'files/member_extra_info/agreement_' . Context::get('lang_type') . '.txt';
$output = FileHandler::writeFile($agreement_file, $config->agreement);
$config->agreement = NULL;
$output = $oModuleController->updateModuleConfig('member', $config);
}
$oMemberAdminController = getAdminController('member');
// check signup form ordering info
if(!$config->signupForm || !is_array($config->signupForm))
{
$identifier = 'user_id';
$config->signupForm = $oMemberAdminController->createSignupForm($identifier);
$config->identifier = $identifier;
$config->identifier = 'user_id';
$config->signupForm = $oMemberAdminController->createSignupForm($config->identifier);
$output = $oModuleController->updateModuleConfig('member', $config);
}
foreach($config->signupForm as $signupItem)
{
if($signupItem->name === 'find_account_question')
{
$config->identifier = $config->identifier ?: 'user_id';
$config->signupForm = $oMemberAdminController->createSignupForm($config->identifier);
$output = $oModuleController->updateModuleConfig('member', $config);
break;
}
}
if($config->skin)
{