mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-08 19:21:40 +09:00
#19524468 XML JS Filter 코드 정리 : 생성되는 코드가 조금 더 가볍도록 수정
git-svn-id: http://xe-core.googlecode.com/svn/sandbox@8083 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
f77ad8755d
commit
352ec132a8
15 changed files with 171 additions and 165 deletions
|
|
@ -32,6 +32,7 @@
|
||||||
* 3) alpha : check if the value is consists of alphabatic characters.
|
* 3) alpha : check if the value is consists of alphabatic characters.
|
||||||
* 4) number : check if the value is consists of numerical digits
|
* 4) number : check if the value is consists of numerical digits
|
||||||
* 5) equalto = target : indicate that values in the form should be equal to those in target
|
* 5) equalto = target : indicate that values in the form should be equal to those in target
|
||||||
|
* 6) pattern_id/regex pattern/[i] : check the value using custom regular expression.
|
||||||
*
|
*
|
||||||
* - parameter - param
|
* - parameter - param
|
||||||
* name = key : indicate that a new array, 'key' will be created and a value will be assigned to it
|
* name = key : indicate that a new array, 'key' will be created and a value will be assigned to it
|
||||||
|
|
@ -43,7 +44,7 @@
|
||||||
**/
|
**/
|
||||||
|
|
||||||
class XmlJsFilter extends XmlParser {
|
class XmlJsFilter extends XmlParser {
|
||||||
var $version = '0.2.4';
|
var $version = '0.2.5';
|
||||||
var $compiled_path = './files/cache/js_filter_compiled/'; ///< 컴파일된 캐시 파일이 놓일 위치
|
var $compiled_path = './files/cache/js_filter_compiled/'; ///< 컴파일된 캐시 파일이 놓일 위치
|
||||||
var $xml_file = NULL; ///< 대상 xml 파일
|
var $xml_file = NULL; ///< 대상 xml 파일
|
||||||
var $js_file = NULL; ///< 컴파일된 js 파일
|
var $js_file = NULL; ///< 컴파일된 js 파일
|
||||||
|
|
@ -81,11 +82,11 @@
|
||||||
$xml_obj = parent::parse($buff);
|
$xml_obj = parent::parse($buff);
|
||||||
|
|
||||||
// XmlJsFilter는 filter_name, field, parameter 3개의 데이터를 핸들링
|
// XmlJsFilter는 filter_name, field, parameter 3개의 데이터를 핸들링
|
||||||
$filter_name = $xml_obj->filter->attrs->name;
|
$filter_name = $xml_obj->filter->attrs->name;
|
||||||
$confirm_msg_code = $xml_obj->filter->attrs->confirm_msg_code;
|
$confirm_msg_code = $xml_obj->filter->attrs->confirm_msg_code;
|
||||||
$module = $xml_obj->filter->attrs->module;
|
$module = $xml_obj->filter->attrs->module;
|
||||||
$act = $xml_obj->filter->attrs->act;
|
$act = $xml_obj->filter->attrs->act;
|
||||||
$extend_filter = $xml_obj->filter->attrs->extend_filter;
|
$extend_filter = $xml_obj->filter->attrs->extend_filter;
|
||||||
|
|
||||||
$field_node = $xml_obj->filter->form->node;
|
$field_node = $xml_obj->filter->form->node;
|
||||||
if($field_node && !is_array($field_node)) $field_node = array($field_node);
|
if($field_node && !is_array($field_node)) $field_node = array($field_node);
|
||||||
|
|
@ -127,26 +128,13 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$callback_func = $xml_obj->filter->response->attrs->callback_func;
|
|
||||||
if(!$callback_func) $callback_func = "filterAlertMessage";
|
|
||||||
|
|
||||||
// 언어 입력을 위한 사용되는 필드 조사
|
// 언어 입력을 위한 사용되는 필드 조사
|
||||||
$target_list = array();
|
$target_list = array();
|
||||||
$target_type_list = array();
|
$target_type_list = array();
|
||||||
|
|
||||||
// js function 을 만들기 시작
|
// javascript contents
|
||||||
$js_doc = array();
|
$js_rules = array();
|
||||||
$js_doc[] = "function {$filter_name}(fo_obj){";
|
$js_messages = array();
|
||||||
$js_doc[] = "\tvar validator = xe.getApp('validator')[0];";
|
|
||||||
$js_doc[] = "\tif(!validator) return false;";
|
|
||||||
$js_doc[] = "\tif(!fo_obj.elements['_filter']) jQuery(fo_obj).prepend('<input type=\"hidden\" name=\"_filter\" value=\"\" />');";
|
|
||||||
$js_doc[] = "\tfo_obj.elements['_filter'].value = '{$filter_name}';";
|
|
||||||
|
|
||||||
$jsdoc = array();
|
|
||||||
$jsdoc[] = '(function($){';
|
|
||||||
$jsdoc[] = "\tvar validator = xe.getApp('Validator')[0];";
|
|
||||||
$jsdoc[] = "\tif(!validator) return false;";
|
|
||||||
$jsdoc[] = "\tvalidator.cast('ADD_FILTER', ['{$filter_name}', {";
|
|
||||||
|
|
||||||
$fields = array();
|
$fields = array();
|
||||||
|
|
||||||
|
|
@ -157,18 +145,20 @@
|
||||||
$attrs = $node->attrs;
|
$attrs = $node->attrs;
|
||||||
$target = trim($attrs->target);
|
$target = trim($attrs->target);
|
||||||
if(!$target) continue;
|
if(!$target) continue;
|
||||||
$filter = $attrs->filter;
|
|
||||||
|
|
||||||
|
$attrs->filter = trim($attrs->filter);
|
||||||
$attrs->equalto = trim($attrs->equalto);
|
$attrs->equalto = trim($attrs->equalto);
|
||||||
|
|
||||||
$field = array();
|
$field = array();
|
||||||
|
|
||||||
if($attrs->required == 'true') $field[] = 'required:true';
|
if($attrs->required == 'true') $field[] = 'required:true';
|
||||||
if($attrs->minlength > 0) $field[] = 'minlength:'.$attrs->minlength;
|
if($attrs->minlength > 0) $field[] = 'minlength:'.$attrs->minlength;
|
||||||
if($attrs->maxlength > 0) $field[] = 'maxlength:'.$attrs->maxlength;
|
if($attrs->maxlength > 0) $field[] = 'maxlength:'.$attrs->maxlength;
|
||||||
if($attrs->equalto) $field[] = "equalto:'{$attrs->equalto}'";
|
if($attrs->equalto) $field[] = "equalto:'{$attrs->equalto}'";
|
||||||
if($attrs->filter) $field[] = "rule:'{$attrs->filter}'";
|
if($attrs->filter) $field[] = "rule:'{$attrs->filter}'";
|
||||||
|
|
||||||
$s_field = implode(',', $field);
|
$s_field = implode(',', $field);
|
||||||
$fields[] = "\t\t'{$target}': {{$s_field}}";
|
$fields[] = "'{$target}': {{$s_field}}";
|
||||||
|
|
||||||
if(!in_array($target, $target_list)) $target_list[] = $target;
|
if(!in_array($target, $target_list)) $target_list[] = $target;
|
||||||
if(!$target_type_list[$target]) $target_type_list[$target] = $filter;
|
if(!$target_type_list[$target]) $target_type_list[$target] = $filter;
|
||||||
|
|
@ -178,18 +168,20 @@
|
||||||
// extend_filter_item 체크
|
// extend_filter_item 체크
|
||||||
for($i=0;$i<$extend_filter_count;$i++) {
|
for($i=0;$i<$extend_filter_count;$i++) {
|
||||||
$filter_item = $extend_filter_list[$i];
|
$filter_item = $extend_filter_list[$i];
|
||||||
$target = trim($filter_item->name);
|
$target = trim($filter_item->name);
|
||||||
|
|
||||||
if(!$target) continue;
|
if(!$target) continue;
|
||||||
$type = $filter_item->type;
|
|
||||||
$required = $filter_item->required?'true':'false';
|
$type = $filter_item->type;
|
||||||
|
$required = ($filter_item->required == 'true');
|
||||||
|
|
||||||
// extend filter item의 type으로 filter를 구함
|
// extend filter item의 type으로 filter를 구함
|
||||||
$types = array('homepage'=>'homepage', 'email_address'=>'email');
|
$types = array('homepage'=>'homepage', 'email_address'=>'email');
|
||||||
$filter = $types[$type]?$types[$type]:'';
|
$filter = $types[$type]?$types[$type]:'';
|
||||||
|
|
||||||
$field = array();
|
$field = array();
|
||||||
if($filter_item->required == 'true') $field[] = 'required:true';
|
if($required) $field[] = 'required:true';
|
||||||
if($filter) $field[] = "rule:'{$filter}'";
|
if($filter) $field[] = "rule:'{$filter}'";
|
||||||
$s_field = implode(',', $field);
|
$s_field = implode(',', $field);
|
||||||
$fields[] = "\t\t'{$target}' : {{$s_field}}";
|
$fields[] = "\t\t'{$target}' : {{$s_field}}";
|
||||||
|
|
||||||
|
|
@ -197,31 +189,18 @@
|
||||||
if(!$target_type_list[$target]) $target_type_list[$target] = $type;
|
if(!$target_type_list[$target]) $target_type_list[$target] = $type;
|
||||||
}
|
}
|
||||||
|
|
||||||
$jsdoc[] = implode(",\n", $fields);
|
|
||||||
$jsdoc[] = "\t}]);";
|
|
||||||
|
|
||||||
// javascript callback function
|
|
||||||
$js_doc[] = "\tvalidator.cast('ADD_CALLBACK', ['{$filter_name}', function(form){";
|
|
||||||
$js_doc[] = "\t\tvar params={}, responses=[], elms=form.elements, data=jQuery(form).serializeArray();";
|
|
||||||
$js_doc[] = "\t\tjQuery.each(data, function(i, field){";
|
|
||||||
$js_doc[] = "\t\t\tvar val = jQuery.trim(field.value);";
|
|
||||||
$js_doc[] = "\t\t\tif(!val) return true;";
|
|
||||||
$js_doc[] = "\t\t\tif(/\[\]$/.test(field.name)) field.name = field.name.replace(/\[\]$/, '');";
|
|
||||||
$js_doc[] = "\t\t\tif(params[field.name]) params[field.name] += '|@|'+val;";
|
|
||||||
$js_doc[] = "\t\t\telse params[field.name] = field.value;";
|
|
||||||
$js_doc[] = "\t\t});";
|
|
||||||
|
|
||||||
// 데이터를 만들기 위한 parameter script 생성
|
// 데이터를 만들기 위한 parameter script 생성
|
||||||
|
$rename_params = array();
|
||||||
$parameter_count = count($parameter_param);
|
$parameter_count = count($parameter_param);
|
||||||
if($parameter_count) {
|
if($parameter_count) {
|
||||||
// 기본 필터 내용의 parameter로 구성
|
// 기본 필터 내용의 parameter로 구성
|
||||||
foreach($parameter_param as $key =>$param) {
|
foreach($parameter_param as $key =>$param) {
|
||||||
$attrs = $param->attrs;
|
$attrs = $param->attrs;
|
||||||
$name = trim($attrs->name);
|
$name = trim($attrs->name);
|
||||||
$target = trim($attrs->target);
|
$target = trim($attrs->target);
|
||||||
|
|
||||||
//if($name && $target && ($name != $target)) $js_doc[] = "\t\tparams['{$name}'] = params['{$target}']; delete params['{$target}'];";
|
//if($name && $target && ($name != $target)) $js_doc[] = "\t\tparams['{$name}'] = params['{$target}']; delete params['{$target}'];";
|
||||||
if($name && $target && ($name != $target)) $js_doc[] = "\t\tif(params['{$target}']) { params['{$name}'] = params['{$target}']; delete params['{$target}']; }";
|
if($name && $target && ($name != $target)) $rename_params[] = "'{$target}':'{$name}'";
|
||||||
if($name && !in_array($name, $target_list)) $target_list[] = $name;
|
if($name && !in_array($name, $target_list)) $target_list[] = $name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -243,19 +222,13 @@
|
||||||
$name = $attrs->name;
|
$name = $attrs->name;
|
||||||
$responses[] = "'{$name}'";
|
$responses[] = "'{$name}'";
|
||||||
}
|
}
|
||||||
$js_doc[] = "\t\tresponses = [".implode(',', $responses)."];";
|
|
||||||
|
|
||||||
if ($confirm_msg_code) $js_doc[] = sprintf("\t\tif(!confirm('%s')) return false;", $lang->{$confirm_msg_code});
|
// lang : form field description
|
||||||
|
|
||||||
$js_doc[] = "\t\texec_xml('{$module}','{$act}', params, {$callback_func}, responses, params, form);";
|
|
||||||
$js_doc[] = "\t}]);";
|
|
||||||
|
|
||||||
// form 필드 lang 값을 기록
|
|
||||||
$target_count = count($target_list);
|
$target_count = count($target_list);
|
||||||
for($i=0;$i<$target_count;$i++) {
|
for($i=0;$i<$target_count;$i++) {
|
||||||
$target = $target_list[$i];
|
$target = $target_list[$i];
|
||||||
if(!$lang->{$target}) $lang->{$target} = $target;
|
if(!$lang->{$target}) $lang->{$target} = $target;
|
||||||
$jsdoc[] = sprintf("\tvalidator.cast('ADD_MESSAGE', ['%s', '%s']);", $target, str_replace('\'', '\\\'', $lang->{$target}));
|
$js_messages[] = sprintf("v.cast('ADD_MESSAGE',['%s','%s']);", $target, addslashes($lang->{$target}));
|
||||||
}
|
}
|
||||||
|
|
||||||
// target type을 기록
|
// target type을 기록
|
||||||
|
|
@ -268,24 +241,30 @@
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// 에러 메세지를 기록
|
// lang : error message
|
||||||
foreach($lang->filter as $key => $val) {
|
foreach($lang->filter as $key => $val) {
|
||||||
if(!$val) $val = $key;
|
if(!$val) $val = $key;
|
||||||
$jsdoc[] = sprintf("\tvalidator.cast('ADD_MESSAGE', ['%s', '%s']);", $key, $val);
|
$js_messages[] = sprintf("v.cast('ADD_MESSAGE',['%s','%s']);", $key, $val);
|
||||||
//$jsdoc[] = sprintf("\tvalidator.cast('ADD_MESSAGE', ['%s', '%s']);", $key, str_replace('\'', '\\\'', $val));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$callback_func = $xml_obj->filter->response->attrs->callback_func;
|
||||||
|
if(!$callback_func) $callback_func = "filterAlertMessage";
|
||||||
|
|
||||||
|
$confirm_msg = '';
|
||||||
|
if ($confirm_msg_code) $confirm_msg = $lang->{$confirm_msg_code};
|
||||||
|
|
||||||
|
$jsdoc = array();
|
||||||
|
$jsdoc[] = "function {$filter_name}(form){ return legacy_filter('{$filter_name}', form, '{$module}', '{$act}', {$callback_func}, [".implode(',', $responses)."], '".addslashes($confirm_msg)."', {".implode(',', $rename_params)."}) };";
|
||||||
|
$jsdoc[] = '(function($){';
|
||||||
|
$jsdoc[] = "\tvar v=xe.getApp('validator')[0];if(!v)return false;";
|
||||||
|
$jsdoc[] = "\t".'v.cast("ADD_FILTER", ["'.$filter_name.'", {'.implode(',', $fields).'}]);';
|
||||||
|
$jsdoc[] = "\t".implode("\n\t", $js_rules);
|
||||||
|
$jsdoc[] = "\t".implode("\n\t", $js_messages);
|
||||||
$jsdoc[] = '})(jQuery);';
|
$jsdoc[] = '})(jQuery);';
|
||||||
|
$jsdoc = implode("\n", $jsdoc);
|
||||||
$js_doc[] = "\tvalidator.cast('VALIDATE', [fo_obj,'{$filter_name}']);";
|
|
||||||
$js_doc[] = "\treturn false;";
|
|
||||||
$js_doc[] = "};\n";
|
|
||||||
|
|
||||||
$js_doc = implode("\n", $js_doc);
|
|
||||||
$jsdoc = implode("\n", $jsdoc);
|
|
||||||
|
|
||||||
// js파일 생성
|
// js파일 생성
|
||||||
FileHandler::writeFile($this->js_file, $js_doc."\n".$jsdoc);
|
FileHandler::writeFile($this->js_file, $jsdoc);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -111,13 +111,15 @@ var Validator = xe.createApp('Validator', {
|
||||||
if (eq_val != val) return (result = (!!self.cast('ALERT', [form, name, 'equalto']) && false));
|
if (eq_val != val) return (result = (!!self.cast('ALERT', [form, name, 'equalto']) && false));
|
||||||
}
|
}
|
||||||
|
|
||||||
$.each(rule, function() {
|
if (rule) {
|
||||||
var ret = self.cast('APPLY_RULE', [this, val]);
|
$.each(rule, function() {
|
||||||
if (!ret) {
|
var ret = self.cast('APPLY_RULE', [this, val]);
|
||||||
self.cast('ALERT', [form, name, 'invalid_'+this]);
|
if (!ret) {
|
||||||
return (result = false);
|
self.cast('ALERT', [form, name, 'invalid_'+this]);
|
||||||
}
|
return (result = false);
|
||||||
});
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
if (!result) return false;
|
if (!result) return false;
|
||||||
});
|
});
|
||||||
|
|
@ -178,7 +180,7 @@ var Validator = xe.createApp('Validator', {
|
||||||
delete extras[name];
|
delete extras[name];
|
||||||
},
|
},
|
||||||
API_APPLY_RULE : function(sender, params) {
|
API_APPLY_RULE : function(sender, params) {
|
||||||
var name = params[0].toLowerCase();
|
var name = params[0];
|
||||||
var value = params[1];
|
var value = params[1];
|
||||||
|
|
||||||
if (typeof(rules[name]) == 'undefined') return true; // no filter
|
if (typeof(rules[name]) == 'undefined') return true; // no filter
|
||||||
|
|
@ -294,8 +296,35 @@ function filterAlertMessage(ret_obj) {
|
||||||
* @brief Function to process filters
|
* @brief Function to process filters
|
||||||
* @deprecated
|
* @deprecated
|
||||||
*/
|
*/
|
||||||
function procFilter(fo_obj, filter_func)
|
function procFilter(form, filter_func) {
|
||||||
{
|
filter_func(form);
|
||||||
filter_func(fo_obj);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function legacy_filter(filter_name, form, module, act, callback, responses, confirm_msg) {
|
||||||
|
var v = xe.getApp('validator')[0], $ = jQuery, args = [];
|
||||||
|
|
||||||
|
if (!v) return false;
|
||||||
|
|
||||||
|
if (!form.elements['_filter']) $(form).prepend('<input type="hidden" name="_filter" />');
|
||||||
|
form.elements['_filter'].value = filter_name;
|
||||||
|
|
||||||
|
args[0] = filter_name;
|
||||||
|
args[1] = function(f) {
|
||||||
|
var params = {}, res = [], elms = f.elements, data = $(f).serializeArray();
|
||||||
|
$.each(data, function(i, field) {
|
||||||
|
var v = $.trim(field.value);
|
||||||
|
if(!v) return false;
|
||||||
|
if(/\[\]$/.test(field.name)) field.name = field.name.replace(/\[\]$/, '');
|
||||||
|
if(params[field.name]) params[field.name] += '|@|'+v;
|
||||||
|
else params[field.name] = field.value;
|
||||||
|
});
|
||||||
|
if (confirm_msg && !confirm(confirm_msg)) return false;
|
||||||
|
exec_xml(module, act, params, callback, responses, params, form);
|
||||||
|
};
|
||||||
|
|
||||||
|
v.cast('ADD_CALLBACK', args);
|
||||||
|
v.cast('VALIDATE', [form, filter_name]);
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
@ -6,7 +6,9 @@
|
||||||
* A rule is a method validate one field.
|
* A rule is a method validate one field.
|
||||||
* A filter is made up of one or more rules.
|
* A filter is made up of one or more rules.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
(function($){var messages=[];var rules=[];var filters=[];var callbacks=[];var extras={};var Validator=xe.createApp('Validator',{init:function(){var regEmail=/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)*$/;this.cast('ADD_RULE',['email',regEmail]);this.cast('ADD_RULE',['email_address',regEmail]);var regUserid=/^[a-z]+[\w-]*[a-z0-9_]+$/i;this.cast('ADD_RULE',['userid',regUserid]);this.cast('ADD_RULE',['user_id',regUserid]);var regUrl=/^(https?|ftp|mms):\/\/[0-9a-z-]+(\.[_0-9a-z-\/\~]+)+(:[0-9]{2,4})*$/;this.cast('ADD_RULE',['url',regUrl]);this.cast('ADD_RULE',['homepage',regUrl]);var regKor=/^[가-힣]*$/;this.cast('ADD_RULE',['korean',regKor]);var regKorNum=/^[가-힣0-9]*$/;this.cast('ADD_RULE',['korean_number',regKorNum]);var regAlpha=/^[a-z]*$/i;this.cast('ADD_RULE',['alpha',regAlpha]);var regAlphaNum=/^[a-z][a-z0-9_]*$/i;this.cast('ADD_RULE',['alpha_number',regAlphaNum]);var regNum=/^[0-9]*$/;this.cast('ADD_RULE',['number',regNum]);},run:function(oForm){var filter='';if(oForm._filter)filter=oForm._filter.value;var params=[oForm,filter];var result=this.cast('VALIDATE',params);if(typeof result=='undefined')result=false;return result;},API_ONREADY:function(){var self=this;$('form').each(function(){if(this.onsubmit){this['xe:onsubmit']=this.onsubmit;this.onsubmit=null;}}).submit(function(){var legacyFn=this['xe:onsubmit'];var hasLegacyFn=$.isFunction(legacyFn);var bResult=hasLegacyFn?legacyFn.apply(this):self.run(this);return bResult;});},API_VALIDATE:function(sender,params){var self=this,result=true,form=params[0],filter=null,callback=null;if(form.elements['_filter'])filter=form.elements['_filter'].value;if(!filter)return true;if($.isFunction(callbacks[filter]))callback=callbacks[filter];filter=$.extend({},filters[filter.toLowerCase()]||{},extras);$.each(filter,function(name){var _el=form.elements[name];if(!_el)return true;var el=$(_el),val=$.trim(get_value(el));var minlen=parseInt(this.minlength)||0;var maxlen=parseInt(this.maxlength)||0;var rule=(this.rule||'').split(',');if(this.required&&!val)return(result=(!!self.cast('ALERT',[form,name,'isnull'])&&false));if(!this.required&&!val)return(result=true);if((minlen&&val.length<minlen)||(maxlen&&val.length>maxlen))return(result=(!!self.cast('ALERT',[form,name,'outofrange',minlen,maxlen])&&false));if(this.equalto){var eq_val=get_value($(form.elements[this.equalto]));if(eq_val!=val)return(result=(!!self.cast('ALERT',[form,name,'equalto'])&&false));}
|
(function($){var messages=[];var rules=[];var filters=[];var callbacks=[];var extras={};var Validator=xe.createApp('Validator',{init:function(){var regEmail=/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)*$/;this.cast('ADD_RULE',['email',regEmail]);this.cast('ADD_RULE',['email_address',regEmail]);var regUserid=/^[a-z]+[\w-]*[a-z0-9_]+$/i;this.cast('ADD_RULE',['userid',regUserid]);this.cast('ADD_RULE',['user_id',regUserid]);var regUrl=/^(https?|ftp|mms):\/\/[0-9a-z-]+(\.[_0-9a-z-\/\~]+)+(:[0-9]{2,4})*$/;this.cast('ADD_RULE',['url',regUrl]);this.cast('ADD_RULE',['homepage',regUrl]);var regKor=/^[가-힣]*$/;this.cast('ADD_RULE',['korean',regKor]);var regKorNum=/^[가-힣0-9]*$/;this.cast('ADD_RULE',['korean_number',regKorNum]);var regAlpha=/^[a-z]*$/i;this.cast('ADD_RULE',['alpha',regAlpha]);var regAlphaNum=/^[a-z][a-z0-9_]*$/i;this.cast('ADD_RULE',['alpha_number',regAlphaNum]);var regNum=/^[0-9]*$/;this.cast('ADD_RULE',['number',regNum]);},run:function(oForm){var filter='';if(oForm._filter)filter=oForm._filter.value;var params=[oForm,filter];var result=this.cast('VALIDATE',params);if(typeof result=='undefined')result=false;return result;},API_ONREADY:function(){var self=this;$('form').each(function(){if(this.onsubmit){this['xe:onsubmit']=this.onsubmit;this.onsubmit=null;}}).submit(function(){var legacyFn=this['xe:onsubmit'];var hasLegacyFn=$.isFunction(legacyFn);var bResult=hasLegacyFn?legacyFn.apply(this):self.run(this);return bResult;});},API_VALIDATE:function(sender,params){var self=this,result=true,form=params[0],filter=null,callback=null;if(form.elements['_filter'])filter=form.elements['_filter'].value;if(!filter)return true;if($.isFunction(callbacks[filter]))callback=callbacks[filter];filter=$.extend({},filters[filter.toLowerCase()]||{},extras);$.each(filter,function(name){var _el=form.elements[name];if(!_el)return true;var el=$(_el),val=$.trim(get_value(el));var minlen=parseInt(this.minlength)||0;var maxlen=parseInt(this.maxlength)||0;var rule=(this.rule||'').split(',');if(this.required&&!val)return(result=(!!self.cast('ALERT',[form,name,'isnull'])&&false));if(!this.required&&!val)return(result=true);if((minlen&&val.length<minlen)||(maxlen&&val.length>maxlen))return(result=(!!self.cast('ALERT',[form,name,'outofrange',minlen,maxlen])&&false));if(this.equalto){var eq_val=get_value($(form.elements[this.equalto]));if(eq_val!=val)return(result=(!!self.cast('ALERT',[form,name,'equalto'])&&false));}
|
||||||
$.each(rule,function(){var ret=self.cast('APPLY_RULE',[this,val]);if(!ret){self.cast('ALERT',[form,name,'invalid_'+this]);return(result=false);}});if(!result)return false;});if(!result)return false;if($.isFunction(callback))return callback(form);return true;},API_ADD_RULE:function(sender,params){var name=params[0].toLowerCase();rules[name]=params[1];},API_DEL_RULE:function(sender,params){var name=params[0].toLowerCase();delete rules[name];},API_GET_RULE:function(sender,params){var name=params[0].toLowerCase();if(rules[name]){return rules[name];}else{return null;}},API_ADD_FILTER:function(sender,params){var name=params[0].toLowerCase();var filter=params[1];filters[name]=filter;},API_DEL_FILTER:function(sender,params){var name=params[0].toLowerCase();delete filters[name];},API_GET_FILTER:function(sender,params){var name=params[0].toLowerCase();if(filters[name]){return filters[name];}else{return null;}},API_ADD_EXTRA_FIELD:function(sender,params){var name=params[0].toLowerCase();var prop=params[1];extras[name]=prop;},API_GET_EXTRA_FIELD:function(sender,params){var name=params[0].toLowerCase();return extras[name];},API_DEL_EXTRA_FIELD:function(sender,params){var name=params[0].toLowerCase();delete extras[name];},API_APPLY_RULE:function(sender,params){var name=params[0].toLowerCase();var value=params[1];if(typeof(rules[name])=='undefined')return true;if($.isFunction(rules[name]))return rules[name](value);if(rules[name]instanceof RegExp)return rules[name].test(value);return true;},API_ALERT:function(sender,params){var form=params[0];var field_name=params[1];var msg_code=params[2];var minlen=params[3];var maxlen=params[4];var field_msg=this.cast('GET_MESSAGE',[field_name]);var msg=this.cast('GET_MESSAGE',[msg_code]);if(msg!=msg_code)msg=(msg.indexOf('%s')<0)?(field_msg+msg):(msg.replace('%s',field_msg));if(minlen||maxlen)msg+='('+(minlen||'')+'~'+(maxlen||'')+')';this.cast('SHOW_ALERT',[msg]);$(form.elements[field_name]).focus();},API_SHOW_ALERT:function(sender,params){alert(params[0]);},API_ADD_MESSAGE:function(sender,params){var msg_code=params[0];var msg_str=params[1];messages[msg_code]=msg_str;},API_GET_MESSAGE:function(sender,params){var msg_code=params[0];return messages[msg_code]||msg_code;},API_ADD_CALLBACK:function(sender,params){var name=params[0];var func=params[1];callbacks[name]=func;},API_REMOVE_CALLBACK:function(sender,params){var name=params[0];delete callbacks[name];}});var oValidator=new Validator;xe.registerApp(oValidator);var EditorStub=xe.createPlugin('editor_stub',{API_BEFORE_VALIDATE:function(sender,params){var form=params[0];var seq=form.getAttribute('editor_sequence');if(seq){try{editorRelKeys[seq].content.value=editorRelKeys[seq].func(seq)||'';}catch(e){}}}});oValidator.registerPlugin(new EditorStub);function get_value(elem){var vals=[];if(elem.is(':radio')){return elem.filter(':checked').val();}else if(elem.is(':checkbox')){elem.filter(':checked').each(function(){vals.push(this.value);});return vals.join('|@|');}else{return elem.val();}}})(jQuery);function filterAlertMessage(ret_obj){var error=ret_obj["error"];var message=ret_obj["message"];var act=ret_obj["act"];var redirect_url=ret_obj["redirect_url"];var url=location.href;if(typeof(message)!="undefined"&&message&&message!="success")alert(message);if(typeof(act)!="undefined"&&act)url=current_url.setQuery("act",act);else if(typeof(redirect_url)!="undefined"&&redirect_url)url=redirect_url;if(url==location.href)url=url.replace(/#(.*)$/,'');location.href=url;}
|
if(rule){$.each(rule,function(){var ret=self.cast('APPLY_RULE',[this,val]);if(!ret){self.cast('ALERT',[form,name,'invalid_'+this]);return(result=false);}});}
|
||||||
function procFilter(fo_obj,filter_func)
|
if(!result)return false;});if(!result)return false;if($.isFunction(callback))return callback(form);return true;},API_ADD_RULE:function(sender,params){var name=params[0].toLowerCase();rules[name]=params[1];},API_DEL_RULE:function(sender,params){var name=params[0].toLowerCase();delete rules[name];},API_GET_RULE:function(sender,params){var name=params[0].toLowerCase();if(rules[name]){return rules[name];}else{return null;}},API_ADD_FILTER:function(sender,params){var name=params[0].toLowerCase();var filter=params[1];filters[name]=filter;},API_DEL_FILTER:function(sender,params){var name=params[0].toLowerCase();delete filters[name];},API_GET_FILTER:function(sender,params){var name=params[0].toLowerCase();if(filters[name]){return filters[name];}else{return null;}},API_ADD_EXTRA_FIELD:function(sender,params){var name=params[0].toLowerCase();var prop=params[1];extras[name]=prop;},API_GET_EXTRA_FIELD:function(sender,params){var name=params[0].toLowerCase();return extras[name];},API_DEL_EXTRA_FIELD:function(sender,params){var name=params[0].toLowerCase();delete extras[name];},API_APPLY_RULE:function(sender,params){var name=params[0];var value=params[1];if(typeof(rules[name])=='undefined')return true;if($.isFunction(rules[name]))return rules[name](value);if(rules[name]instanceof RegExp)return rules[name].test(value);return true;},API_ALERT:function(sender,params){var form=params[0];var field_name=params[1];var msg_code=params[2];var minlen=params[3];var maxlen=params[4];var field_msg=this.cast('GET_MESSAGE',[field_name]);var msg=this.cast('GET_MESSAGE',[msg_code]);if(msg!=msg_code)msg=(msg.indexOf('%s')<0)?(field_msg+msg):(msg.replace('%s',field_msg));if(minlen||maxlen)msg+='('+(minlen||'')+'~'+(maxlen||'')+')';this.cast('SHOW_ALERT',[msg]);$(form.elements[field_name]).focus();},API_SHOW_ALERT:function(sender,params){alert(params[0]);},API_ADD_MESSAGE:function(sender,params){var msg_code=params[0];var msg_str=params[1];messages[msg_code]=msg_str;},API_GET_MESSAGE:function(sender,params){var msg_code=params[0];return messages[msg_code]||msg_code;},API_ADD_CALLBACK:function(sender,params){var name=params[0];var func=params[1];callbacks[name]=func;},API_REMOVE_CALLBACK:function(sender,params){var name=params[0];delete callbacks[name];}});var oValidator=new Validator;xe.registerApp(oValidator);var EditorStub=xe.createPlugin('editor_stub',{API_BEFORE_VALIDATE:function(sender,params){var form=params[0];var seq=form.getAttribute('editor_sequence');if(seq){try{editorRelKeys[seq].content.value=editorRelKeys[seq].func(seq)||'';}catch(e){}}}});oValidator.registerPlugin(new EditorStub);function get_value(elem){var vals=[];if(elem.is(':radio')){return elem.filter(':checked').val();}else if(elem.is(':checkbox')){elem.filter(':checked').each(function(){vals.push(this.value);});return vals.join('|@|');}else{return elem.val();}}})(jQuery);function filterAlertMessage(ret_obj){var error=ret_obj["error"];var message=ret_obj["message"];var act=ret_obj["act"];var redirect_url=ret_obj["redirect_url"];var url=location.href;if(typeof(message)!="undefined"&&message&&message!="success")alert(message);if(typeof(act)!="undefined"&&act)url=current_url.setQuery("act",act);else if(typeof(redirect_url)!="undefined"&&redirect_url)url=redirect_url;if(url==location.href)url=url.replace(/#(.*)$/,'');location.href=url;}
|
||||||
{filter_func(fo_obj);return false;}
|
function procFilter(form,filter_func){filter_func(form);return false;}
|
||||||
|
function legacy_filter(filter_name,form,module,act,callback,responses,confirm_msg){var v=xe.getApp('validator')[0],$=jQuery,args=[];if(!v)return false;if(!form.elements['_filter'])$(form).prepend('<input type="hidden" name="_filter" />');form.elements['_filter'].value=filter_name;args[0]=filter_name;args[1]=function(f){var params={},res=[],elms=f.elements,data=$(f).serializeArray();$.each(data,function(i,field){var v=$.trim(field.value);if(!v)return false;if(/\[\]$/.test(field.name))field.name=field.name.replace(/\[\]$/,'');if(params[field.name])params[field.name]+='|@|'+v;else params[field.name]=field.value;});if(confirm_msg&&!confirm(confirm_msg))return false;exec_xml(module,act,params,callback,responses,params,form);};v.cast('ADD_CALLBACK',args);v.cast('VALIDATE',[form,filter_name]);return false;}
|
||||||
|
|
@ -275,4 +275,5 @@
|
||||||
$lang->edit->autosave_mins_ago = '%d분 전';
|
$lang->edit->autosave_mins_ago = '%d분 전';
|
||||||
|
|
||||||
$lang->edit->upload_not_enough_quota = '허용된 용량이 부족하여 파일을 첨부할 수 없습니다.';
|
$lang->edit->upload_not_enough_quota = '허용된 용량이 부족하여 파일을 첨부할 수 없습니다.';
|
||||||
|
$lang->edit->toolbar_moreless = '도구 모음 더보기/접기';
|
||||||
?>
|
?>
|
||||||
|
|
|
||||||
|
|
@ -271,4 +271,5 @@
|
||||||
$lang->edit->autosave_mins_ago = '%d분 전';
|
$lang->edit->autosave_mins_ago = '%d분 전';
|
||||||
|
|
||||||
$lang->edit->upload_not_enough_quota = '허용된 용량이 부족하여 파일을 첨부할 수 없습니다.';
|
$lang->edit->upload_not_enough_quota = '허용된 용량이 부족하여 파일을 첨부할 수 없습니다.';
|
||||||
|
$lang->edit->toolbar_moreless = '도구 모음 더보기/접기';
|
||||||
?>
|
?>
|
||||||
|
|
@ -275,4 +275,5 @@
|
||||||
$lang->edit->autosave_mins_ago = '%d분 전';
|
$lang->edit->autosave_mins_ago = '%d분 전';
|
||||||
|
|
||||||
$lang->edit->upload_not_enough_quota = '허용된 용량이 부족하여 파일을 첨부할 수 없습니다.';
|
$lang->edit->upload_not_enough_quota = '허용된 용량이 부족하여 파일을 첨부할 수 없습니다.';
|
||||||
|
$lang->edit->toolbar_moreless = '도구 모음 더보기/접기';
|
||||||
?>
|
?>
|
||||||
|
|
@ -277,4 +277,5 @@
|
||||||
$lang->edit->autosave_mins_ago = '%d분 전';
|
$lang->edit->autosave_mins_ago = '%d분 전';
|
||||||
|
|
||||||
$lang->edit->upload_not_enough_quota = '허용된 용량이 부족하여 파일을 첨부할 수 없습니다.';
|
$lang->edit->upload_not_enough_quota = '허용된 용량이 부족하여 파일을 첨부할 수 없습니다.';
|
||||||
|
$lang->edit->toolbar_moreless = '도구 모음 더보기/접기';
|
||||||
?>
|
?>
|
||||||
|
|
|
||||||
|
|
@ -277,4 +277,5 @@
|
||||||
$lang->edit->autosave_mins_ago = '%d분 전';
|
$lang->edit->autosave_mins_ago = '%d분 전';
|
||||||
|
|
||||||
$lang->edit->upload_not_enough_quota = '허용된 용량이 부족하여 파일을 첨부할 수 없습니다.';
|
$lang->edit->upload_not_enough_quota = '허용된 용량이 부족하여 파일을 첨부할 수 없습니다.';
|
||||||
|
$lang->edit->toolbar_moreless = '도구 모음 더보기/접기';
|
||||||
?>
|
?>
|
||||||
|
|
@ -277,4 +277,5 @@
|
||||||
$lang->edit->autosave_mins_ago = '%d분 전';
|
$lang->edit->autosave_mins_ago = '%d분 전';
|
||||||
|
|
||||||
$lang->edit->upload_not_enough_quota = '허용된 용량이 부족하여 파일을 첨부할 수 없습니다.';
|
$lang->edit->upload_not_enough_quota = '허용된 용량이 부족하여 파일을 첨부할 수 없습니다.';
|
||||||
|
$lang->edit->toolbar_moreless = '도구 모음 더보기/접기';
|
||||||
?>
|
?>
|
||||||
|
|
@ -278,4 +278,5 @@
|
||||||
$lang->edit->autosave_mins_ago = '%d분 전';
|
$lang->edit->autosave_mins_ago = '%d분 전';
|
||||||
|
|
||||||
$lang->edit->upload_not_enough_quota = '허용된 용량이 부족하여 파일을 첨부할 수 없습니다.';
|
$lang->edit->upload_not_enough_quota = '허용된 용량이 부족하여 파일을 첨부할 수 없습니다.';
|
||||||
|
$lang->edit->toolbar_moreless = '도구 모음 더보기/접기';
|
||||||
?>
|
?>
|
||||||
|
|
@ -277,4 +277,5 @@
|
||||||
$lang->edit->autosave_mins_ago = '%d분 전';
|
$lang->edit->autosave_mins_ago = '%d분 전';
|
||||||
|
|
||||||
$lang->edit->upload_not_enough_quota = '허용된 용량이 부족하여 파일을 첨부할 수 없습니다.';
|
$lang->edit->upload_not_enough_quota = '허용된 용량이 부족하여 파일을 첨부할 수 없습니다.';
|
||||||
|
$lang->edit->toolbar_moreless = '도구 모음 더보기/접기';
|
||||||
?>
|
?>
|
||||||
|
|
|
||||||
|
|
@ -278,4 +278,5 @@
|
||||||
$lang->edit->autosave_mins_ago = '%d分前';
|
$lang->edit->autosave_mins_ago = '%d分前';
|
||||||
|
|
||||||
$lang->edit->upload_not_enough_quota = '已超過上傳大小限制無法上傳附檔。';
|
$lang->edit->upload_not_enough_quota = '已超過上傳大小限制無法上傳附檔。';
|
||||||
|
$lang->edit->toolbar_moreless = '도구 모음 더보기/접기';
|
||||||
?>
|
?>
|
||||||
|
|
@ -895,24 +895,26 @@ var TextWriter = xe.createPlugin('TextWriter', {
|
||||||
obj.children('div._txt').each(function(){
|
obj.children('div._txt').each(function(){
|
||||||
var div = $(this), node = null;
|
var div = $(this), node = null;
|
||||||
|
|
||||||
div.contents().each(function(){
|
div
|
||||||
var t = $(this);
|
.contents()
|
||||||
|
.each(function(){
|
||||||
|
var $this = $(this);
|
||||||
|
|
||||||
if(this.nodeType == 3 || t.is('br,a,b,i,s,u,sub,sup,em,strong,span,img,font')) {
|
if(this.nodeType == 3 || $this.is('br,a,b,i,s,u,sub,sup,em,strong,span,img,font')) {
|
||||||
if( t.is('br,img') || $.trim(t.text()) ) {
|
if( $this.is('br,img') || $.trim($this.text()) ) {
|
||||||
if(!node) div.before(node = $('<p>'));
|
if(!node) div.before(node = $('<p>'));
|
||||||
node.append(this);
|
node.append(this);
|
||||||
} else {
|
} else {
|
||||||
t.remove();
|
$this.remove();
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.before(t);
|
div.before($this);
|
||||||
node = null;
|
node = null;
|
||||||
});
|
})
|
||||||
|
.end()
|
||||||
div.remove();
|
.remove();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
API_OPEN_TXT_EDITOR : function(sender, params) {
|
API_OPEN_TXT_EDITOR : function(sender, params) {
|
||||||
|
|
@ -961,6 +963,7 @@ var TextWriter = xe.createPlugin('TextWriter', {
|
||||||
|
|
||||||
if(save) {
|
if(save) {
|
||||||
var newBox = $('<div>').html( cfg.xpress.getIR() );
|
var newBox = $('<div>').html( cfg.xpress.getIR() );
|
||||||
|
if (newBox.find('>p'))
|
||||||
box.remove();
|
box.remove();
|
||||||
this.cast('SAVE_PARAGRAPH', [seq, cfg.editor, box=newBox, 'TXT']);
|
this.cast('SAVE_PARAGRAPH', [seq, cfg.editor, box=newBox, 'TXT']);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,3 @@
|
||||||
/* 로그인 영역에 포커스 */
|
|
||||||
function doFocusUserId(fo_id) {
|
|
||||||
if(xScrollTop()) return;
|
|
||||||
var fo_obj = xGetElementById(fo_id);
|
|
||||||
if(fo_obj.user_id) {
|
|
||||||
try{
|
|
||||||
fo_obj.user_id.focus();
|
|
||||||
} catch(e) {};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 로그인 후 */
|
/* 로그인 후 */
|
||||||
function completeLogin(ret_obj, response_tags, params, fo_obj) {
|
function completeLogin(ret_obj, response_tags, params, fo_obj) {
|
||||||
var url = current_url.setQuery('act','');
|
var url = current_url.setQuery('act','');
|
||||||
|
|
@ -21,16 +10,21 @@ function completeOpenIDLogin(ret_obj, response_tags) {
|
||||||
location.href = redirect_url;
|
location.href = redirect_url;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 오픈 아이디 폼 변환 */
|
jQuery(function($){
|
||||||
function toggleLoginForm(obj) {
|
$('#openid_login').hide();
|
||||||
if(xGetElementById('login').style.display != "none") {
|
$('#keepid').click(function(){ if(this.checked) return confirm(keep_signed_msg) });
|
||||||
xGetElementById('login').style.display = "none";
|
|
||||||
xGetElementById('openid_login').style.display = "block";
|
/* focus on login form */
|
||||||
xGetElementById('use_open_id_2').checked = true;
|
if (!$(document).scrollTop()) $('#fo_login_widget input[name=user_id]').focus();
|
||||||
} else {
|
|
||||||
xGetElementById('openid_login').style.display = "none";
|
// show/hide openid form
|
||||||
xGetElementById('login').style.display = "block";
|
$('#use_open_id,#use_open_id_2').click(function(){
|
||||||
xGetElementById('use_open_id').checked = false;
|
if($('#login').toggle().is(':visible')) {
|
||||||
xGetElementById('use_open_id_2').checked = false;
|
$('#openid_login').hide();
|
||||||
}
|
$('#use_open_id,#use_open_id_2').removeAttr('checked');
|
||||||
}
|
} else {
|
||||||
|
$('#openid_login').show();
|
||||||
|
$('#use_open_id_2').attr('checked', 'checked');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
@ -7,52 +7,43 @@
|
||||||
<!--%import("css/default.css")-->
|
<!--%import("css/default.css")-->
|
||||||
<!--@end-->
|
<!--@end-->
|
||||||
|
|
||||||
<!--%import("./filter/login.xml")-->
|
<load target="./filter/login.xml" />
|
||||||
<!--%import("./filter/openid_login.xml")-->
|
<load target="./filter/openid_login.xml" />
|
||||||
<!--%import("./js/login.js")-->
|
<load target="./js/login.js" />
|
||||||
|
|
||||||
<script type="text/javascript">
|
|
||||||
var keep_signed_msg = "{$lang->about_keep_signed}";
|
|
||||||
xAddEventListener(window, "load", function(){ doFocusUserId("fo_login_widget"); });
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<fieldset id="login" class="login_{$colorset}">
|
<fieldset id="login" class="login_{$colorset}">
|
||||||
<legend>{$lang->cmd_login}</legend>
|
<legend>{$lang->cmd_login}</legend>
|
||||||
<form action="./" method="post" onsubmit="return procFilter(this, widget_login)" id="fo_login_widget">
|
<form action="./" method="post" onsubmit="return procFilter(this, widget_login)" id="fo_login_widget">
|
||||||
|
<div class="idpwWrap">
|
||||||
|
<div class="idpw">
|
||||||
|
<input name="user_id" type="text" title="user id" />
|
||||||
|
<input name="password" type="password" title="password" />
|
||||||
|
</div>
|
||||||
|
<input type="image" src="./images/{$colorset}/buttonLogin.gif" alt="login" class="login" />
|
||||||
|
</div>
|
||||||
|
<p class="securitySignIn SSL"|cond="$ssl_mode" class="securitySignIn noneSSL"|cond="!$ssl_mode" cond="$member_config->enable_ssl=='Y'">
|
||||||
|
<a href="#" onclick="toggleSecuritySignIn(); return false;">{$lang->security_sign_in}</a>
|
||||||
|
</p>
|
||||||
|
<p class="save">
|
||||||
|
<input type="checkbox" name="keep_signed" id="keepid" value="Y" />
|
||||||
|
<label for="keepid">{$lang->keep_signed}</label>
|
||||||
|
|
||||||
<div class="idpwWrap">
|
<block cond="$member_config->enable_openid=='Y'">
|
||||||
<div class="idpw">
|
<br />
|
||||||
<input name="user_id" type="text" title="user id" />
|
<input name="use_open_id" id="use_open_id" type="checkbox" value="Y" />
|
||||||
<input name="password" type="password" title="password" />
|
<label for="use_open_id">Open ID</label>
|
||||||
</div>
|
</block>
|
||||||
<input type="image" src="./images/{$colorset}/buttonLogin.gif" alt="login" class="login" />
|
</p>
|
||||||
</div>
|
<ul class="help">
|
||||||
<!--@if($member_config->enable_ssl=='Y')-->
|
<li class="first-child"><a href="{getUrl('act','dispMemberSignUpForm')}">{$lang->cmd_signup}</a></li>
|
||||||
<p class="securitySignIn <!--@if($ssl_mode)-->SSL<!--@else-->noneSSL<!--@end-->">
|
<li><a href="{getUrl('act','dispMemberFindAccount')}">{$lang->cmd_find_member_account}</a></li>
|
||||||
<a href="#" onclick="toggleSecuritySignIn(); return false;">{$lang->security_sign_in}</a>
|
<li><a href="{getUrl('act','dispMemberResendAuthMail')}">{$lang->cmd_resend_auth_mail}</a></li>
|
||||||
</p>
|
</ul>
|
||||||
<!--@end-->
|
|
||||||
<p class="save">
|
|
||||||
<input type="checkbox" name="keep_signed" id="keepid" value="Y" onclick="if(this.checked) return confirm(keep_signed_msg);" />
|
|
||||||
<label for="keepid">{$lang->keep_signed}</label>
|
|
||||||
|
|
||||||
<!--@if($member_config->enable_openid=='Y')-->
|
|
||||||
<br />
|
|
||||||
<input name="use_open_id" id="use_open_id" type="checkbox" value="Y" onclick="toggleLoginForm(this); return false;" />
|
|
||||||
<label for="use_open_id">Open ID</label>
|
|
||||||
<!--@end-->
|
|
||||||
</p>
|
|
||||||
<ul class="help">
|
|
||||||
<li class="first-child"><a href="{getUrl('act','dispMemberSignUpForm')}">{$lang->cmd_signup}</a></li>
|
|
||||||
<li><a href="{getUrl('act','dispMemberFindAccount')}">{$lang->cmd_find_member_account}</a></li>
|
|
||||||
<li><a href="{getUrl('act','dispMemberResendAuthMail')}">{$lang->cmd_resend_auth_mail}</a></li>
|
|
||||||
</ul>
|
|
||||||
</form>
|
</form>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<!-- OpenID -->
|
<!-- OpenID -->
|
||||||
<!--@if($member_config->enable_openid=='Y')-->
|
<fieldset id="openid_login" class="openid_login_{$colorset}" cond="$member_config->enable_openid=='Y'">
|
||||||
<fieldset id="openid_login" class="openid_login_{$colorset}" style="display:none;">
|
|
||||||
<legend>{$lang->cmd_login}</legend>
|
<legend>{$lang->cmd_login}</legend>
|
||||||
<form action="{getUrl('module','member','act','procMemberOpenIDLogin')}" method="post" onsubmit="return procFilter(this, openid_login)" >
|
<form action="{getUrl('module','member','act','procMemberOpenIDLogin')}" method="post" onsubmit="return procFilter(this, openid_login)" >
|
||||||
<div class="idpwWrap">
|
<div class="idpwWrap">
|
||||||
|
|
@ -63,13 +54,12 @@
|
||||||
<input type="image" src="./images/{$colorset}/buttonLogin.gif" alt="login" class="login" />
|
<input type="image" src="./images/{$colorset}/buttonLogin.gif" alt="login" class="login" />
|
||||||
</div>
|
</div>
|
||||||
<p class="save">
|
<p class="save">
|
||||||
<input name="use_open_id" id="use_open_id_2" type="checkbox" value="Y" onclick="toggleLoginForm(this); return false;"/>
|
<input name="use_open_id" id="use_open_id_2" type="checkbox" value="Y"/>
|
||||||
<label for="use_open_id_2">Open ID</label>
|
<label for="use_open_id_2">Open ID</label>
|
||||||
</p>
|
</p>
|
||||||
</form>
|
</form>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<!--@end-->
|
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
xAddEventListener(window, "load", function(){ doFocusUserId("fo_login_widget"); });
|
var keep_signed_msg = "{$lang->about_keep_signed}";
|
||||||
</script>
|
</script>
|
||||||
Loading…
Add table
Add a link
Reference in a new issue