issue 2590 improve member config.

git-svn-id: http://xe-core.googlecode.com/svn/branches/maserati@11742 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
devjin 2012-10-16 11:55:42 +00:00
parent e26413fe4e
commit ab79cd53c7
29 changed files with 718 additions and 1156 deletions

View file

@ -126,28 +126,35 @@
$this->setMessage("success_deleted");
}
/**
* Set config of member
* @return void|Object (void : success, Object : fail)
**/
function procMemberAdminInsertConfig(){
$input_args = Context::gets(
public function procMemberAdminInsertDefaultConfig()
{
$args = Context::gets(
'enable_join',
'enable_confirm',
'webmaster_name',
'webmaster_email',
'webmaster_email'
);
$oModuleController = getController('module');
$output = $oModuleController->updateModuleConfig('member', $args);
// default setting end
$this->setMessage('success_updated');
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminDefaultConfig');
$this->setRedirectUrl($returnUrl);
}
public function procMemberAdminInsertSignupConfig()
{
$oMemberModel = getModel('member');
$oModuleController = getController('module');
$args = Context::gets(
'enable_confirm',
'limit_day',
'change_password_date',
'max_error_count','max_error_count_time',
'agreement',
'after_login_url',
'after_logout_url',
'redirect_url',
'layout_srl',
'skin',
'colorset',
'mlayout_srl',
'mskin',
'profile_image', 'profile_image_max_width', 'profile_image_max_height',
'image_name', 'image_name_max_width', 'image_name_max_height',
'image_mark', 'image_mark_max_width', 'image_mark_max_height',
@ -158,99 +165,87 @@
$usable_list = Context::get('usable_list');
$all_args = Context::getRequestVars();
$oModuleController = &getController('module');
$oMemberModel = &getModel('member');
// default setting start
if($input_args->enable_join != 'Y'){
$args->enable_join = 'N';
}else{
$args = $input_args;
$args->enable_join = 'Y';
if($args->enable_confirm !='Y') $args->enable_confirm = 'N';
$args->limit_day = (int)$args->limit_day;
if(!$args->change_password_date) $args->change_password_date = 0;
if(!trim(strip_tags($args->agreement)))
{
$agreement_file = _XE_PATH_.'files/member_extra_info/agreement_' . Context::get('lang_type') . '.txt';
FileHandler::removeFile($agreement_file);
$args->agreement = null;
}
if(!trim(strip_tags($args->after_login_url))) $args->after_login_url = null;
if(!trim(strip_tags($args->after_logout_url))) $args->after_logout_url = null;
if(!trim(strip_tags($args->redirect_url))) $args->redirect_url = null;
if(!$args->skin) $args->skin = 'default';
if(!$args->colorset) $args->colorset = 'white';
if(!$args->mskin) $args->mskin = 'default';
$args->profile_image = $args->profile_image?'Y':'N';
$args->image_name = $args->image_name?'Y':'N';
$args->image_mark = $args->image_mark?'Y':'N';
if($args->signature!='Y') $args->signature = 'N';
$args->identifier = $all_args->identifier;
$args->layout_srl = $args->layout_srl ? $args->layout_srl : null;
$args->mlayout_srl = $args->mlayout_srl ? $args->mlayout_srl : null;
// set default
$all_args->is_nick_name_public = 'Y';
$all_args->is_find_account_question_public = 'N';
// signupForm
global $lang;
$signupForm = array();
$items = array('user_id', 'password', 'user_name', 'nick_name', 'email_address', 'find_account_question', 'homepage', 'blog', 'birthday', 'signature', 'profile_image', 'image_name', 'image_mark', 'profile_image_max_width', 'profile_image_max_height', 'image_name_max_width', 'image_name_max_height', 'image_mark_max_width', 'image_mark_max_height');
$mustRequireds = array('email_address', 'nick_name', 'password', 'find_account_question');
$extendItems = $oMemberModel->getJoinFormList();
foreach($list_order as $key){
unset($signupItem);
$signupItem->isIdentifier = ($key == $all_args->identifier);
$signupItem->isDefaultForm = in_array($key, $items);
$signupItem->name = $key;
if(!in_array($key, $items)) $signupItem->title = $key;
else $signupItem->title = $lang->{$key};
$signupItem->mustRequired = in_array($key, $mustRequireds);
$signupItem->imageType = (strpos($key, 'image') !== false);
$signupItem->required = ($all_args->{$key} == 'required') || $signupItem->mustRequired || $signupItem->isIdentifier;
$signupItem->isUse = in_array($key, $usable_list) || $signupItem->required;
$signupItem->isPublic = ($all_args->{'is_'.$key.'_public'} == 'Y' && $signupItem->isUse) ? 'Y' : 'N';
if ($signupItem->imageType){
$signupItem->max_width = $all_args->{$key.'_max_width'};
$signupItem->max_height = $all_args->{$key.'_max_height'};
}
// set extends form
if (!$signupItem->isDefaultForm){
$extendItem = $extendItems[$all_args->{$key.'_member_join_form_srl'}];
$signupItem->type = $extendItem->column_type;
$signupItem->member_join_form_srl = $extendItem->member_join_form_srl;
$signupItem->title = $extendItem->column_title;
$signupItem->description = $extendItem->description;
// check usable value change, required/option
if ($signupItem->isUse != ($extendItem->is_active == 'Y') || $signupItem->required != ($extendItem->required == 'Y')){
unset($update_args);
$update_args->member_join_form_srl = $extendItem->member_join_form_srl;
$update_args->is_active = $signupItem->isUse?'Y':'N';
$update_args->required = $signupItem->required?'Y':'N';
$update_output = executeQuery('member.updateJoinForm', $update_args);
}
unset($extendItem);
}
$signupForm[] = $signupItem;
}
$args->signupForm = $signupForm;
// create Ruleset
$this->_createSignupRuleset($signupForm, $args->agreement);
$this->_createLoginRuleset($args->identifier);
$this->_createFindAccountByQuestion($args->identifier);
if($args->enable_confirm !='Y')
{
$args->enable_confirm = 'N';
}
$args->limit_day = (int)$args->limit_day;
if(!trim(strip_tags($args->agreement)))
{
$agreement_file = _XE_PATH_.'files/member_extra_info/agreement_' . Context::get('lang_type') . '.txt';
FileHandler::removeFile($agreement_file);
$args->agreement = NULL;
}
if(!trim(strip_tags($args->redirect_url)))
{
$args->redirect_url = NULL;
}
$args->profile_image = $args->profile_image ? 'Y' : 'N';
$args->image_name = $args->image_name ? 'Y' : 'N';
$args->image_mark = $args->image_mark ? 'Y' : 'N';
$args->signature = $args->signature != 'Y' ? 'N' : 'Y';
$args->identifier = $all_args->identifier;
// set default
$all_args->is_nick_name_public = 'Y';
$all_args->is_find_account_question_public = 'N';
// signupForm
global $lang;
$signupForm = array();
$items = array('user_id', 'password', 'user_name', 'nick_name', 'email_address', 'find_account_question', 'homepage', 'blog', 'birthday', 'signature', 'profile_image', 'image_name', 'image_mark', 'profile_image_max_width', 'profile_image_max_height', 'image_name_max_width', 'image_name_max_height', 'image_mark_max_width', 'image_mark_max_height');
$mustRequireds = array('email_address', 'nick_name', 'password', 'find_account_question');
$extendItems = $oMemberModel->getJoinFormList();
foreach($list_order as $key)
{
unset($signupItem);
$signupItem->isIdentifier = ($key == $all_args->identifier);
$signupItem->isDefaultForm = in_array($key, $items);
$signupItem->name = $key;
if(!in_array($key, $items)) $signupItem->title = $key;
else $signupItem->title = $lang->{$key};
$signupItem->mustRequired = in_array($key, $mustRequireds);
$signupItem->imageType = (strpos($key, 'image') !== false);
$signupItem->required = ($all_args->{$key} == 'required') || $signupItem->mustRequired || $signupItem->isIdentifier;
$signupItem->isUse = in_array($key, $usable_list) || $signupItem->required;
$signupItem->isPublic = ($all_args->{'is_'.$key.'_public'} == 'Y' && $signupItem->isUse) ? 'Y' : 'N';
if ($signupItem->imageType){
$signupItem->max_width = $all_args->{$key.'_max_width'};
$signupItem->max_height = $all_args->{$key.'_max_height'};
}
// set extends form
if (!$signupItem->isDefaultForm)
{
$extendItem = $extendItems[$all_args->{$key.'_member_join_form_srl'}];
$signupItem->type = $extendItem->column_type;
$signupItem->member_join_form_srl = $extendItem->member_join_form_srl;
$signupItem->title = $extendItem->column_title;
$signupItem->description = $extendItem->description;
// check usable value change, required/option
if ($signupItem->isUse != ($extendItem->is_active == 'Y') || $signupItem->required != ($extendItem->required == 'Y')){
unset($update_args);
$update_args->member_join_form_srl = $extendItem->member_join_form_srl;
$update_args->is_active = $signupItem->isUse?'Y':'N';
$update_args->required = $signupItem->required?'Y':'N';
$update_output = executeQuery('member.updateJoinForm', $update_args);
}
unset($extendItem);
}
$signupForm[] = $signupItem;
}
$args->signupForm = $signupForm;
// create Ruleset
$this->_createSignupRuleset($signupForm, $args->agreement);
$this->_createLoginRuleset($args->identifier);
$this->_createFindAccountByQuestion($args->identifier);
// check agreement value exist
if($args->agreement)
@ -265,7 +260,80 @@
// default setting end
$this->setMessage('success_updated');
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminConfig');
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminSignUpConfig');
$this->setRedirectUrl($returnUrl);
}
public function procMemberAdminInsertLoginConfig()
{
$oModuleController = getController('module');
$args = Context::gets(
'change_password_date',
'enable_login_fail_report',
'max_error_count',
'max_error_count_time',
'after_login_url',
'after_logout_url'
);
if(!$args->change_password_date)
{
$args->change_password_date = 0;
}
if(!trim(strip_tags($args->after_login_url)))
{
$args->after_login_url = NULL;
}
if(!trim(strip_tags($args->after_logout_url)))
{
$args->after_logout_url = NULL;
}
$output = $oModuleController->updateModuleConfig('member', $args);
// default setting end
$this->setMessage('success_updated');
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminLoginConfig');
$this->setRedirectUrl($returnUrl);
}
public function procMemberAdminInsertDesignConfig()
{
$oModuleController = getController('module');
$args = Context::gets(
'layout_srl',
'skin',
'colorset',
'mlayout_srl',
'mskin'
);
$args->layout_srl = $args->layout_srl ? $args->layout_srl : NULL;
if(!$args->skin)
{
$args->skin = 'default';
}
if(!$args->colorset)
{
$args->colorset = 'white';
}
$args->mlayout_srl = $args->mlayout_srl ? $args->mlayout_srl : NULL;
if(!$args->mskin)
{
$args->mskin = 'default';
}
$output = $oModuleController->updateModuleConfig('member', $args);
// default setting end
$this->setMessage('success_updated');
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminDesignConfig');
$this->setRedirectUrl($returnUrl);
}