git-svn-id: http://xe-core.googlecode.com/svn/trunk@46 201d5d3c-b55e-5fd7-737f-ddc643e51545

This commit is contained in:
zero 2007-02-15 06:30:42 +00:00
parent cf9066af62
commit 11292f7bf2
3 changed files with 236 additions and 205 deletions

View file

@ -1,7 +1,7 @@
/** /**
* @file : common/js/xml_js_filter.js * @file common/js/xml_js_filter.js
* @author : zero <zero@nzeo.com> * @author zero (zero@nzeo.com)
* @desc : xml filter에서 사용될 js * @brief xml filter에서 사용될 js
**/ **/
var alertMsg = new Array(); var alertMsg = new Array();
@ -9,233 +9,238 @@ var alertMsg = new Array();
/** /**
* @function filterAlertMessage * @function filterAlertMessage
* @brief ajax로 서버에 요청후 결과를 처리할 callback_function을 지정하지 않았을 호출되는 기본 함수 * @brief ajax로 서버에 요청후 결과를 처리할 callback_function을 지정하지 않았을 호출되는 기본 함수
**/
function filterAlertMessage(ret_obj) { function filterAlertMessage(ret_obj) {
var error = ret_obj["error"]; var error = ret_obj["error"];
var message = ret_obj["message"]; var message = ret_obj["message"];
var redirect_url = ret_obj["redirect_url"]; var redirect_url = ret_obj["redirect_url"];
var url = location.href; var url = location.href;
if(typeof(message)!='undefined'&&message) alert(message); if(typeof(message)!='undefined'&&message) alert(message);
if(typeof(redirect_url)!='undefined'&&redirect_url) url = redirect_url; if(typeof(redirect_url)!='undefined'&&redirect_url) url = redirect_url;
location.href = url; location.href = url;
} }
// filtering /**
* @class XmlJsFilter
* @authro zero (zero@nzeo.com)
* @brief form elements, module/act, callback_user_func을 이용하여 서버에 ajax로 form 데이터를 넘기고 결과를 받아오는 js class
**/
function XmlJsFilter(form_object, module, act, callback_user_func) { function XmlJsFilter(form_object, module, act, callback_user_func) {
this.field = new Array(); this.field = new Array();
this.parameter = new Array(); this.parameter = new Array();
this.response = new Array(); this.response = new Array();
this.fo_obj = form_object; this.fo_obj = form_object;
this.module = module; this.module = module;
this.act = act; this.act = act;
this.user_func = callback_user_func; this.user_func = callback_user_func;
this.addFieldItem = XmlJsFilterAddFieldItem; this.addFieldItem = XmlJsFilterAddFieldItem;
this.addParameterItem = XmlJsFilterAddParameterItem; this.addParameterItem = XmlJsFilterAddParameterItem;
this.addResponseItem = XmlJsFilterAddResponseItem; this.addResponseItem = XmlJsFilterAddResponseItem;
this.getValue = XmlJsFilterGetValue; this.getValue = XmlJsFilterGetValue;
this.executeFilter = XmlJsFilterExecuteFilter; this.executeFilter = XmlJsFilterExecuteFilter;
this.checkFieldItem = XmlJsFilterCheckFieldItem; this.checkFieldItem = XmlJsFilterCheckFieldItem;
this.getParameterParam = XmlJsFilterGetParameterParam; this.getParameterParam = XmlJsFilterGetParameterParam;
this.alertMsg = XmlJsFilterAlertMsg; this.alertMsg = XmlJsFilterAlertMsg;
this.proc = XmlJsFilterProc; this.proc = XmlJsFilterProc;
} }
function XmlJsFilterAddFieldItem(target, required, minlength, maxlength, equalto, filter) { function XmlJsFilterAddFieldItem(target, required, minlength, maxlength, equalto, filter) {
var obj = new Array(target, required, minlength, maxlength, equalto, filter); var obj = new Array(target, required, minlength, maxlength, equalto, filter);
this.field[this.field.length] = obj; this.field[this.field.length] = obj;
} }
function XmlJsFilterAddParameterItem(param, target) { function XmlJsFilterAddParameterItem(param, target) {
var obj = new Array(param, target); var obj = new Array(param, target);
this.parameter[this.parameter.length] = obj; this.parameter[this.parameter.length] = obj;
} }
function XmlJsFilterAddResponseItem(name) { function XmlJsFilterAddResponseItem(name) {
this.response[this.response.length] = name; this.response[this.response.length] = name;
} }
function XmlJsFilterGetValue(target_name) { function XmlJsFilterGetValue(target_name) {
var obj = this.fo_obj[target_name]; var obj = this.fo_obj[target_name];
if(typeof(obj)=='undefined') return ''; if(typeof(obj)=='undefined') return '';
var value = ''; var value = '';
var length = obj.length; var length = obj.length;
var type = obj.type; var type = obj.type;
if(length) type = obj[0].type; if(length) type = obj[0].type;
switch(type) { switch(type) {
case 'checkbox' : case 'checkbox' :
if(typeof(length)!='undefined') { if(typeof(length)!='undefined') {
value_list = new Array(); value_list = new Array();
for(var i=0;i<obj.length;i++) { for(var i=0;i<obj.length;i++) {
if(obj[i].checked) value_list[value_list.length] = obj[i].value; if(obj[i].checked) value_list[value_list.length] = obj[i].value;
}
value = value_list.join(",");
} else {
if(obj.checked) value = obj.value;
else value = '';
} }
value = value_list.join(","); break;
} else { case 'radio' :
if(obj.checked) value = obj.value; if(typeof(length)!='undefined') {
else value = ''; for(var i=0;i<obj.length;i++) {
} if(obj[i].checked) value = obj[i].value;
break; }
case 'radio' : } else {
if(typeof(length)!='undefined') { if(obj.checked) value = obj.value;
for(var i=0;i<obj.length;i++) { else value = '';
if(obj[i].checked) value = obj[i].value;
} }
} else { break;
if(obj.checked) value = obj.value; case 'select' :
else value = ''; case 'select-one' :
} value = obj.options[obj.selectedIndex].value;
break; break;
case 'select' : default :
case 'select-one' : value = obj.value;
value = obj.options[obj.selectedIndex].value; break;
break; }
default : if(typeof(value)=='undefined'||!value) return '';
value = obj.value; return value.trim();
break;
}
if(typeof(value)=='undefined'||!value) return '';
return value.trim();
} }
function XmlJsFilterExecuteFilter(filter, value) { function XmlJsFilterExecuteFilter(filter, value) {
switch(filter) { switch(filter) {
case "email" : case "email" :
case "email_address" : case "email_address" :
var regx = /^[_0-9a-zA-Z-]+(\.[_0-9a-zA-Z-]+)*@[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*$/; var regx = /^[_0-9a-zA-Z-]+(\.[_0-9a-zA-Z-]+)*@[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*$/;
return regx.test(value); return regx.test(value);
break; break;
case "userid" : case "userid" :
case "user_id" : case "user_id" :
var regx = /^[a-zA-Z]+([_0-9a-zA-Z]+)*$/; var regx = /^[a-zA-Z]+([_0-9a-zA-Z]+)*$/;
return regx.test(value); return regx.test(value);
break; break;
case "homepage" : case "homepage" :
var regx = /(^[_0-9a-zA-Z-]+(\.[_0-9a-zA-Z-]+)*@[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*$)/; var regx = /(^[_0-9a-zA-Z-]+(\.[_0-9a-zA-Z-]+)*@[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*$)/;
return regx.test(value); return regx.test(value);
break; break;
case "korean" : case "korean" :
var regx = /^[가-힣]*$/; var regx = /^[가-힣]*$/;
return regx.test(value); return regx.test(value);
break; break;
case "korean_number" : case "korean_number" :
var regx = /^[가-힣0-9]*$/; var regx = /^[가-힣0-9]*$/;
return regx.test(value); return regx.test(value);
break; break;
case "alpha" : case "alpha" :
var regx = /^[a-zA-Z]*$/; var regx = /^[a-zA-Z]*$/;
return regx.test(value); return regx.test(value);
break; break;
case "alpha_number" : case "alpha_number" :
var regx = /^[a-zA-Z0-9]*$/; var regx = /^[a-zA-Z0-9]*$/;
return regx.test(value); return regx.test(value);
break; break;
case "number" : case "number" :
return !isNaN(value); return !isNaN(value);
break; break;
} }
} }
function XmlJsFilterAlertMsg(target, msg_code, minlength, maxlength) { function XmlJsFilterAlertMsg(target, msg_code, minlength, maxlength) {
var target_msg = ""; var target_msg = "";
if(alertMsg[target]!='undefined') target_msg = alertMsg[target]; if(alertMsg[target]!='undefined') target_msg = alertMsg[target];
else target_msg = target; else target_msg = target;
var msg = ""; var msg = "";
if(typeof(alertMsg[msg_code])!='undefined') { if(typeof(alertMsg[msg_code])!='undefined') {
if(alertMsg[msg_code].indexOf('%s')>=0) msg = alertMsg[msg_code].replace('%s',target_msg); if(alertMsg[msg_code].indexOf('%s')>=0) msg = alertMsg[msg_code].replace('%s',target_msg);
else msg = target_msg+alertMsg[msg_code]; else msg = target_msg+alertMsg[msg_code];
} else { } else {
msg = msg_code; msg = msg_code;
} }
if(typeof(minlength)!='undefined' && typeof(maxlength)!='undefined') msg += "("+minlength+"~"+maxlength+")"; if(typeof(minlength)!='undefined' && typeof(maxlength)!='undefined') msg += "("+minlength+"~"+maxlength+")";
alert(msg); alert(msg);
try { try {
this.fo_obj[target].focus(); this.fo_obj[target].focus();
} catch(e) { } catch(e) {
} }
return false; return false;
} }
function XmlJsFilterCheckFieldItem() { function XmlJsFilterCheckFieldItem() {
for(var i=0; i<this.field.length;i++) { for(var i=0; i<this.field.length;i++) {
var item = this.field[i]; var item = this.field[i];
var target = item[0]; var target = item[0];
var required = item[1]; var required = item[1];
var minlength = item[2]; var minlength = item[2];
var maxlength = item[3]; var maxlength = item[3];
var equalto = item[4]; var equalto = item[4];
var filter = item[5].split(","); var filter = item[5].split(",");
var value = this.getValue(target); var value = this.getValue(target);
if(!required && !value) return true; if(!required && !value) return true;
if(required && !value) return this.alertMsg(target,'isnull'); if(required && !value) return this.alertMsg(target,'isnull');
if(minlength>0 && maxlength>0 && (value.length < minlength || value.length > maxlength)) return this.alertMsg(target, 'outofrange', minlength, maxlength); if(minlength>0 && maxlength>0 && (value.length < minlength || value.length > maxlength)) return this.alertMsg(target, 'outofrange', minlength, maxlength);
if(equalto) { if(equalto) {
var equalto_value = this.getValue(equalto); var equalto_value = this.getValue(equalto);
if(equalto_value != value) return this.alertMsg(target, 'equalto'); if(equalto_value != value) return this.alertMsg(target, 'equalto');
} }
if(filter.length && filter[0]) { if(filter.length && filter[0]) {
for(var j=0;j<filter.length;j++) { for(var j=0;j<filter.length;j++) {
var filter_item = filter[j]; var filter_item = filter[j];
if(!this.executeFilter(filter_item, value)) return this.alertMsg(target, "invalid_"+filter_item); if(!this.executeFilter(filter_item, value)) return this.alertMsg(target, "invalid_"+filter_item);
}
} }
} }
} return true;
return true;
} }
function XmlJsFilterGetParameterParam() { function XmlJsFilterGetParameterParam() {
var prev_name = ''; var prev_name = '';
if(this.parameter.length<1) { if(this.parameter.length<1) {
for(var i=0;i<this.fo_obj.length;i++) { for(var i=0;i<this.fo_obj.length;i++) {
var name = this.fo_obj[i].name; var name = this.fo_obj[i].name;
if(typeof(name)=='undefined'||!name||name==prev_name) continue; if(typeof(name)=='undefined'||!name||name==prev_name) continue;
this.addParameterItem(name, name); this.addParameterItem(name, name);
prev_name = name; prev_name = name;
}
} }
}
var params = new Array(); var params = new Array();
for(var i=0; i<this.parameter.length;i++) { for(var i=0; i<this.parameter.length;i++) {
var item = this.parameter[i]; var item = this.parameter[i];
var param = item[0]; var param = item[0];
var target = item[1]; var target = item[1];
var value = this.getValue(target); var value = this.getValue(target);
params[param] = value; params[param] = value;
} }
return params; return params;
} }
function XmlJsFilterProc(confirm_msg) { function XmlJsFilterProc(confirm_msg) {
var result = this.checkFieldItem(); var result = this.checkFieldItem();
if(!result) return false; if(!result) return false;
if(typeof(confirm_msg)=='undefined') confirm_msg = ''; if(typeof(confirm_msg)=='undefined') confirm_msg = '';
var params = this.getParameterParam(); var params = this.getParameterParam();
var response = this.response; var response = this.response;
if(confirm_msg && !confirm(confirm_msg)) return false; if(confirm_msg && !confirm(confirm_msg)) return false;
if(!this.act) { if(!this.act) {
this.user_func(this.fo_obj, params); this.user_func(this.fo_obj, params);
return true; return true;
} }
exec_xml(this.module, this.act, params, this.user_func, response, params); exec_xml(this.module, this.act, params, this.user_func, response, params);
} }
// form proc // form proc
function procFilter(fo_obj, filter_func) { function procFilter(fo_obj, filter_func) {
filter_func(fo_obj); filter_func(fo_obj);
return false; return false;
} }

View file

@ -78,35 +78,35 @@
$output = $this->makeTable(); $output = $this->makeTable();
if(!$output->toBool()) return $output; if(!$output->toBool()) return $output;
// 관리자 정보 입력 (member 모듈을 찾아서 method 실행) // 멤버 컨트롤러 객체 생성
$oMember = getModule('member', 'controller'); $oMemberController = getModule('member', 'controller');
// 그룹을 입력 // 그룹을 입력
$group_args->title = Context::getLang('default_group_1'); $group_args->title = Context::getLang('default_group_1');
$group_args->is_default = 'Y'; $group_args->is_default = 'Y';
$oMember->insertGroup($group_args); $oMemberController->insertGroup($group_args);
$group_args->title = Context::getLang('default_group_2'); $group_args->title = Context::getLang('default_group_2');
$group_args->is_default = 'N'; $group_args->is_default = 'N';
$oMember->insertGroup($group_args); $oMemberController->insertGroup($group_args);
// 금지 아이디 등록 // 금지 아이디 등록
$oMember->insertDeniedID('www',''); $oMemberController->insertDeniedID('www','');
$oMember->insertDeniedID('root',''); $oMemberController->insertDeniedID('root','');
$oMember->insertDeniedID('admin',''); $oMemberController->insertDeniedID('admin','');
$oMember->insertDeniedID('administrator',''); $oMemberController->insertDeniedID('administrator','');
$oMember->insertDeniedID('telnet',''); $oMemberController->insertDeniedID('telnet','');
$oMember->insertDeniedID('ftp',''); $oMemberController->insertDeniedID('ftp','');
$oMember->insertDeniedID('http',''); $oMemberController->insertDeniedID('http','');
// 관리자 정보 세팅 // 관리자 정보 세팅
$admin_info = Context::gets('user_id','password','nick_name','user_name', 'email_address'); $admin_info = Context::gets('user_id','password','nick_name','user_name', 'email_address');
// 관리자 정보 입력 // 관리자 정보 입력
$oMember->insertAdmin($admin_info); $oMemberController->insertAdmin($admin_info);
// 로그인 처리시킴 // 로그인 처리시킴
$oMember->doLogin($admin_info->user_id, $admin_info->password); $oMemberController->doLogin($admin_info->user_id, $admin_info->password);
// 기본 모듈을 생성 // 기본 모듈을 생성
$oModule = getModule('module_manager', 'controller'); $oModule = getModule('module_manager', 'controller');
@ -116,10 +116,10 @@
if(!$this->makeConfigFile()) return new Object(-1, 'msg_install_failed'); if(!$this->makeConfigFile()) return new Object(-1, 'msg_install_failed');
// 설치 완료 메세지 출력 // 설치 완료 메세지 출력
$this->add('redirect_url','./');
$this->setMessage('msg_install_completed'); $this->setMessage('msg_install_completed');
} }
/** /**
* @brief files 하위 디렉토리 생성 * @brief files 하위 디렉토리 생성
* DB 정보를 바탕으로 실제 install하기 전에 로컬 환경 설저d * DB 정보를 바탕으로 실제 install하기 전에 로컬 환경 설저d

View file

@ -36,9 +36,11 @@
* @brief user_id에 해당하는 사용자 정보 return * @brief user_id에 해당하는 사용자 정보 return
**/ **/
function getMemberInfoByUserID($user_id) { function getMemberInfoByUserID($user_id) {
$args->user_id = $user_id; // DB 객체 생성
$oDB = &DB::getInstance();
$output = $this->executeQuery('member.getMemberInfo', $args); $args->user_id = $user_id;
$output = $oDB->executeQuery('member.getMemberInfo', $args);
if(!$output) return $output; if(!$output) return $output;
$member_info = $output->data; $member_info = $output->data;
@ -51,9 +53,11 @@
* @brief member_srl로 사용자 정보 return * @brief member_srl로 사용자 정보 return
**/ **/
function getMemberInfoByMemberSrl($member_srl) { function getMemberInfoByMemberSrl($member_srl) {
$args->member_srl = $member_srl; // DB 객체 생성
$oDB = &DB::getInstance();
$output = $this->executeQuery('member.getMemberInfoByMemberSrl', $args); $args->member_srl = $member_srl;
$output = $oDB->executeQuery('member.getMemberInfoByMemberSrl', $args);
if(!$output) return $output; if(!$output) return $output;
$member_info = $output->data; $member_info = $output->data;
@ -66,9 +70,11 @@
* @brief userid에 해당하는 member_srl을 구함 * @brief userid에 해당하는 member_srl을 구함
**/ **/
function getMemberSrlByUserID($user_id) { function getMemberSrlByUserID($user_id) {
$args->user_id = $user_id; // DB 객체 생성
$oDB = &DB::getInstance();
$output = $this->executeQuery('member.getMemberSrl', $args); $args->user_id = $user_id;
$output = $oDB->executeQuery('member.getMemberSrl', $args);
return $output->data->member_srl; return $output->data->member_srl;
} }
@ -76,9 +82,11 @@
* @brief userid에 해당하는 member_srl을 구함 * @brief userid에 해당하는 member_srl을 구함
**/ **/
function getMemberSrlByEmailAddress($email_address) { function getMemberSrlByEmailAddress($email_address) {
$args->email_address = $email_address; // DB 객체 생성
$oDB = &DB::getInstance();
$output = $this->executeQuery('member.getMemberSrl', $args); $args->email_address = $email_address;
$output = $oDB->executeQuery('member.getMemberSrl', $args);
return $output->data->member_srl; return $output->data->member_srl;
} }
@ -86,9 +94,11 @@
* @brief userid에 해당하는 member_srl을 구함 * @brief userid에 해당하는 member_srl을 구함
**/ **/
function getMemberSrlByNickName($nick_name) { function getMemberSrlByNickName($nick_name) {
$args->nick_name = $nick_name; // DB 객체 생성
$oDB = &DB::getInstance();
$output = $this->executeQuery('member.getMemberSrl', $args); $args->nick_name = $nick_name;
$output = $oDB->executeQuery('member.getMemberSrl', $args);
return $output->data->member_srl; return $output->data->member_srl;
} }
@ -113,8 +123,11 @@
* @brief member_srl이 속한 group 목록을 가져옴 * @brief member_srl이 속한 group 목록을 가져옴
**/ **/
function getMemberGroups($member_srl) { function getMemberGroups($member_srl) {
// DB 객체 생성
$oDB = &DB::getInstance();
$args->member_srl = $member_srl; $args->member_srl = $member_srl;
$output = $this->executeQuery('member.getMemberGroups', $args); $output = $oDB->executeQuery('member.getMemberGroups', $args);
if(!$output->data) return; if(!$output->data) return;
$group_list = $output->data; $group_list = $output->data;
@ -130,7 +143,10 @@
* @brief 기본 그룹을 가져옴 * @brief 기본 그룹을 가져옴
**/ **/
function getDefaultGroup() { function getDefaultGroup() {
$output = $this->executeQuery('member.getDefaultGroup'); // DB 객체 생성
$oDB = &DB::getInstance();
$output = $odB->executeQuery('member.getDefaultGroup');
return $output->data; return $output->data;
} }
@ -138,9 +154,11 @@
* @brief group_srl에 해당하는 그룹 정보 가져옴 * @brief group_srl에 해당하는 그룹 정보 가져옴
**/ **/
function getGroup($group_srl) { function getGroup($group_srl) {
$args->group_srl = $group_srl; // DB 객체 생성
$oDB = &DB::getInstance();
$output = $this->executeQuery('member.getGroup', $args); $args->group_srl = $group_srl;
$output = $oDB->executeQuery('member.getGroup', $args);
return $output->data; return $output->data;
} }
@ -148,7 +166,10 @@
* @brief 그룹 목록을 가져옴 * @brief 그룹 목록을 가져옴
**/ **/
function getGroups() { function getGroups() {
$output = $this->executeQuery('member.getGroups'); // DB 객체 생성
$oDB = &DB::getInstance();
$output = $oDB->executeQuery('member.getGroups');
if(!$output->data) return; if(!$output->data) return;
$group_list = $output->data; $group_list = $output->data;
@ -164,12 +185,15 @@
* @brief 금지 아이디 목록 가져오기 * @brief 금지 아이디 목록 가져오기
**/ **/
function getDeniedIDList() { function getDeniedIDList() {
// DB 객체 생성
$oDB = &DB::getInstance();
$args->sort_index = "list_order"; $args->sort_index = "list_order";
$args->page = Context::get('page'); $args->page = Context::get('page');
$args->list_count = 40; $args->list_count = 40;
$args->page_count = 10; $args->page_count = 10;
$output = $this->executeQuery('member.getDeniedIDList', $args); $output = $oDB->executeQuery('member.getDeniedIDList', $args);
return $output; return $output;
} }
@ -177,9 +201,11 @@
* @brief 금지 아이디인지 확인 * @brief 금지 아이디인지 확인
**/ **/
function isDeniedID($user_id) { function isDeniedID($user_id) {
$args->user_id = $user_id; // DB 객체 생성
$oDB = &DB::getInstance();
$output = $this->executeQuery('member.chkDeniedID', $args); $args->user_id = $user_id;
$output = $oDB->executeQuery('member.chkDeniedID', $args);
if($output->data->count) return true; if($output->data->count) return true;
return false; return false;
} }