diff --git a/classes/xml/XmlJsFilter.class.php b/classes/xml/XmlJsFilter.class.php index 4546552c8..730e44c49 100644 --- a/classes/xml/XmlJsFilter.class.php +++ b/classes/xml/XmlJsFilter.class.php @@ -88,12 +88,29 @@ // extend_filter가 있을 경우 해당 method를 호출하여 결과를 받음 if($extend_filter) { + + // extend_filter는 module.method 로 지칭되어 이를 분리 list($module_name, $method) = explode('.',$extend_filter); + + // 모듈 이름과 method가 있을 경우 진행 if($module_name&&$method) { + // 해당 module의 model 객체를 받음 $oExtendFilter = &getModel($module_name); + + // method가 존재하면 실행 if(method_exists($oExtendFilter, $method)) { - $extend_filter_obj = call_user_method($method, $oExtendFilter, true); + // 결과를 받음 + $extend_filter_list = call_user_method($method, $oExtendFilter, true); + $extend_filter_count = count($extend_filter_list); + + // 결과에서 lang값을 이용 문서 변수에 적용 + for($i=0;$i<$extend_filter_count;$i++) { + $name = $extend_filter_list[$i]->name; + $lang_value = $extend_filter_list[$i]->lang; + if($lang_value) $lang->{$name} = $lang_value; + } } + } } @@ -102,6 +119,7 @@ // 언어 입력을 위한 사용되는 필드 조사 $target_list = array(); + $target_type_list = array(); // js function 을 만들기 시작 $js_doc = sprintf("function %s(fo_obj) {\n", $filter_name); @@ -126,21 +144,69 @@ ); if(!in_array($target, $target_list)) $target_list[] = $target; + if(!$target_type_list[$target]) $target_type_list[$target] = $filter; } } + // extend_filter_item 체크 + for($i=0;$i<$extend_filter_count;$i++) { + $filter_item = $extend_filter_list[$i]; + $target = trim($filter_item->name); + if(!$target) continue; + $type = $filter_item->type; + $required = $filter_item->required?'true':'false'; + + // extend filter item의 type으로 filter를 구함 + switch($type) { + case 'homepage' : + $filter = 'homepage'; + break; + case 'email_address' : + $filter = 'email'; + break; + default : + $filter = ''; + break; + } + + $js_doc .= sprintf( + "\toFilter.addFieldItem(\"%s\",%s,%s,%s,\"%s\",\"%s\");\n", + $target, $required, 0, 0, '', $filter + ); + + if(!in_array($target, $target_list)) $target_list[] = $target; + if(!$target_type_list[$target]) $target_type_list[$target] = $type; + + } + // 데이터를 만들기 위한 parameter script 생성 $parameter_count = count($parameter_param); if($parameter_count) { + // 기본 필터 내용의 parameter로 구성 foreach($parameter_param as $key =>$param) { $attrs = $param->attrs; $name = trim($attrs->name); $target = trim($attrs->target); if(!$name || !$target) continue; $target = htmlentities($target,ENT_QUOTES); + $js_doc .= sprintf( - "\toFilter.addParameterItem(\"%s\",\"%s\");\n", - $name, $target + "\toFilter.addParameterItem(\"%s\",\"%s\");\n", + $name, $target + ); + if(!in_array($name, $target_list)) $target_list[] = $name; + } + + // extend_filter_item 체크 + for($i=0;$i<$extend_filter_count;$i++) { + $filter_item = $extend_filter_list[$i]; + $target = $name = trim($filter_item->name); + if(!$name || !$target) continue; + $target = htmlentities($target,ENT_QUOTES); + + $js_doc .= sprintf( + "\toFilter.addParameterItem(\"%s\",\"%s\");\n", + $name, $target ); if(!in_array($name, $target_list)) $target_list[] = $name; } @@ -159,14 +225,24 @@ $js_doc .= "}\n"; // form 필드 lang 값을 기록 - $target_cnt = count($target_list); - for($i=0;$i<$target_cnt;$i++) { + $target_count = count($target_list); + for($i=0;$i<$target_count;$i++) { $target = $target_list[$i]; - $js_doc .= sprintf("alertMsg[\"%s\"] = \"%s\"\n", $target, str_replace("\"","\\\"",$lang->{$target})); + if(!$lang->{$target}) $lang->{$target} = $target; + $js_doc .= sprintf("alertMsg[\"%s\"] = \"%s\";\n", $target, str_replace("\"","\\\"",$lang->{$target})); + } + + // target type을 기록 + $target_type_count = count($target_type_list); + if($target_type_count) { + foreach($target_type_list as $target => $type) { + $js_doc .= sprintf("target_type_list[\"%s\"] = \"%s\";\n", $target, $type); + } } // 에러 메세지를 기록 foreach($lang->filter as $key => $val) { + if(!$val) $val = $key; $js_doc .= sprintf("alertMsg[\"%s\"] = \"%s\";\n", $key, str_replace("\"","\\\"",$val)); } diff --git a/common/js/xml_js_filter.js b/common/js/xml_js_filter.js index 379d9f35f..e32f07204 100644 --- a/common/js/xml_js_filter.js +++ b/common/js/xml_js_filter.js @@ -5,6 +5,7 @@ **/ var alertMsg = new Array(); +var target_type_list = new Array(); /** * @function filterAlertMessage @@ -26,7 +27,6 @@ function filterAlertMessage(ret_obj) { * @brief form elements, module/act, callback_user_func을 이용하여 서버에 ajax로 form 데이터를 넘기고 결과를 받아오는 js class **/ function XmlJsFilter(form_object, module, act, callback_user_func) { - this.field = new Array(); this.parameter = new Array(); this.response = new Array(); @@ -36,6 +36,7 @@ function XmlJsFilter(form_object, module, act, callback_user_func) { this.act = act; this.user_func = callback_user_func; + this.setFocus = XmlJsFilterSetFocus; this.addFieldItem = XmlJsFilterAddFieldItem; this.addParameterItem = XmlJsFilterAddParameterItem; this.addResponseItem = XmlJsFilterAddResponseItem; @@ -47,6 +48,21 @@ function XmlJsFilter(form_object, module, act, callback_user_func) { this.proc = XmlJsFilterProc; } +function XmlJsFilterSetFocus(target_name) { + var obj = this.fo_obj[target_name]; + if(typeof(obj)=='undefined' || !obj) return; + + var length = obj.length; + try { + if(typeof(length)!='undefined') { + obj[0].focus(); + } else { + obj.focus(); + } + } catch(e) { + } +} + function XmlJsFilterAddFieldItem(target, required, minlength, maxlength, equalto, filter) { var obj = new Array(target, required, minlength, maxlength, equalto, filter); this.field[this.field.length] = obj; @@ -63,84 +79,97 @@ function XmlJsFilterAddResponseItem(name) { function XmlJsFilterGetValue(target_name) { var obj = this.fo_obj[target_name]; - if(typeof(obj)=='undefined') return ''; + if(typeof(obj)=='undefined' || !obj) return ''; var value = ''; var length = obj.length; var type = obj.type; - - if(length) type = obj[0].type; + if((typeof(type)=='undefined'||!type) && typeof(length)!='undefined' && typeof(obj[0])!='undefined' && length>0) type = obj[0].type; + else length = 0; switch(type) { - case 'checkbox' : - if(typeof(length)!='undefined') { - value_list = new Array(); - for(var i=0;i0) { - value = obj.options[obj.selectedIndex].value; - } - break; - default : - value = obj.value; - break; + case 'checkbox' : + if(length>0) { + value_list = new Array(); + for(var i=0;i0) { + for(var i=0;i=0) value = obj.options[obj.selectedIndex].value; + break; + default : + if(length>0 && target_type_list[target_name]) { + switch(target_type_list[target_name]) { + case 'tel' : + var val1 = obj[0].value; + var val2 = obj[1].value; + var val3 = obj[2].value; + if(val1&&val2&&val3) { + value = val1+'|@|'+val2+'|@|'+val3; + } + break; + } + + } else { + value = obj.value; + } + break; } + if(typeof(value)=='undefined'||!value) return ''; return value.trim(); } function XmlJsFilterExecuteFilter(filter, value) { switch(filter) { - case "email" : - case "email_address" : - var regx = /^[_0-9a-zA-Z-]+(\.[_0-9a-zA-Z-]+)*@[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*$/; - return regx.test(value); - break; - case "userid" : - case "user_id" : - var regx = /^[a-zA-Z]+([_0-9a-zA-Z]+)*$/; - return regx.test(value); - break; - case "homepage" : - var regx = /(^[_0-9a-zA-Z-]+(\.[_0-9a-zA-Z-]+)*@[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*$)/; - return regx.test(value); - break; - case "korean" : - var regx = /^[가-힣]*$/; - return regx.test(value); - break; - case "korean_number" : - var regx = /^[가-힣0-9]*$/; - return regx.test(value); - break; - case "alpha" : - var regx = /^[a-zA-Z]*$/; - return regx.test(value); - break; - case "alpha_number" : - var regx = /^[a-zA-Z0-9]*$/; - return regx.test(value); - break; - case "number" : - return !isNaN(value); + case "email" : + case "email_address" : + var regx = /^[_0-9a-zA-Z-]+(\.[_0-9a-zA-Z-]+)*@[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*$/; + return regx.test(value); + break; + case "userid" : + case "user_id" : + var regx = /^[a-zA-Z]+([_0-9a-zA-Z]+)*$/; + return regx.test(value); + break; + case "homepage" : + var regx = /^(http|https|ftp|mms):\/\/[0-9a-z-]+(\.[_0-9a-z-\/\~]+)+(:[0-9]{2,4})*$/; + return regx.test(value); + break; + case "korean" : + var regx = /^[가-힣]*$/; + return regx.test(value); + break; + case "korean_number" : + var regx = /^[가-힣0-9]*$/; + return regx.test(value); + break; + case "alpha" : + var regx = /^[a-zA-Z]*$/; + return regx.test(value); + break; + case "alpha_number" : + var regx = /^[a-zA-Z0-9]*$/; + return regx.test(value); + break; + case "number" : + return !isNaN(value); break; } } @@ -153,49 +182,47 @@ function XmlJsFilterAlertMsg(target, msg_code, minlength, maxlength) { var msg = ""; if(typeof(alertMsg[msg_code])!='undefined') { - if(alertMsg[msg_code].indexOf('%s')>=0) msg = alertMsg[msg_code].replace('%s',target_msg); - else msg = target_msg+alertMsg[msg_code]; + if(alertMsg[msg_code].indexOf('%s')>=0) msg = alertMsg[msg_code].replace('%s',target_msg); + else msg = target_msg+alertMsg[msg_code]; } else { - msg = msg_code; + msg = msg_code; } if(typeof(minlength)!='undefined' && typeof(maxlength)!='undefined') msg += "("+minlength+"~"+maxlength+")"; alert(msg); - try { - this.fo_obj[target].focus(); - } catch(e) { - } + this.setFocus(target); + return false; } function XmlJsFilterCheckFieldItem() { for(var i=0; i0 && 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) { - var equalto_value = this.getValue(equalto); - if(equalto_value != value) return this.alertMsg(target, 'equalto'); - } - - if(filter.length && filter[0]) { - for(var j=0;j $val) { - unset($var->{$var_name}); + $target = array_keys($target_vars); + $del = array_keys($del_vars); + if(!count($target)||!count($del)) return $target_obj; + + $return_obj = NULL; + + $target_count = count($target); + for($i=0;$i<$target_count;$i++) { + $target_key = $target[$i]; + if(!in_array($target_key, $del)) $return_obj->{$target_key} = $target_obj->{$target_key}; } - return $var; + return $return_obj; } /** diff --git a/modules/member/lang/ko.lang.php b/modules/member/lang/ko.lang.php index edd5a56b6..bfd73564e 100644 --- a/modules/member/lang/ko.lang.php +++ b/modules/member/lang/ko.lang.php @@ -36,7 +36,7 @@ $lang->column_type_list['checkbox'] = '다중 선택 (checkbox)'; $lang->column_type_list['select'] = '단일 선택 (select)'; $lang->column_type_list['kr_zip'] = '한국주소 (zip)'; - $lang->column_type_list['jp_zip'] = '일본주소 (zip)'; + //$lang->column_type_list['jp_zip'] = '일본주소 (zip)'; $lang->column_name = '입력항목 이름'; $lang->column_title = '입력항목 제목'; $lang->default_value = '기본 값'; diff --git a/modules/member/member.controller.php b/modules/member/member.controller.php index 504d743bc..2f47dbf7f 100644 --- a/modules/member/member.controller.php +++ b/modules/member/member.controller.php @@ -71,6 +71,14 @@ function procInsert() { // 일단 입력된 값들을 모두 받아서 db 입력항목과 그외 것으로 분리 $args = Context::gets('member_srl','user_id','user_name','nick_name','email_address','password','allow_mailing','denied','is_admin','signature','profile_image','image_nick','image_mark','description','group_srl_list'); + $all_args = Context::getRequestVars(); + unset($all_args->page); + unset($all_args->module); + unset($all_args->act); + + // 모든 request argument에서 필수 정보만 제외 한 후 추가 데이터로 입력 + $extra_vars = delObjectVars($all_args, $args); + $args->extra_vars = serialize($extra_vars); // member_srl이 넘어오면 원 회원이 있는지 확인 if($args->member_srl) { diff --git a/modules/member/member.model.php b/modules/member/member.model.php index 444847fba..d30b1c52f 100644 --- a/modules/member/member.model.php +++ b/modules/member/member.model.php @@ -7,6 +7,13 @@ class memberModel extends member { + /** + * @brief 자주 호출될거라 예상되는 데이터는 내부적으로 가지고 있자... + **/ + var $member_info = NULL; + var $member_groups = NULL; + var $join_form_list = NULL; + /** * @brief 초기화 **/ @@ -37,34 +44,54 @@ * @brief user_id에 해당하는 사용자 정보 return **/ function getMemberInfoByUserID($user_id) { - // DB 객체 생성 - $oDB = &DB::getInstance(); + if(!$this->member_info[$member_srl]) { + // DB 객체 생성 + $oDB = &DB::getInstance(); - $args->user_id = $user_id; - $output = $oDB->executeQuery('member.getMemberInfo', $args); - if(!$output) return $output; + $args->user_id = $user_id; + $output = $oDB->executeQuery('member.getMemberInfo', $args); + if(!$output) return $output; - $member_info = $output->data; - $member_info->group_list = $this->getMemberGroups($member_info->member_srl); + $member_info = $this->arrangeMemberInfo($output->data); + $member_info->group_list = $this->getMemberGroups($member_info->member_srl); - return $member_info; + $this->member_info[$$member_info->member_srl] = $member_info; + } + return $this->member_info[$member_srl]; } /** * @brief member_srl로 사용자 정보 return **/ function getMemberInfoByMemberSrl($member_srl) { - // DB 객체 생성 - $oDB = &DB::getInstance(); + if(!$this->member_info[$member_srl]) { + // DB 객체 생성 + $oDB = &DB::getInstance(); - $args->member_srl = $member_srl; - $output = $oDB->executeQuery('member.getMemberInfoByMemberSrl', $args); - if(!$output) return $output; + $args->member_srl = $member_srl; + $output = $oDB->executeQuery('member.getMemberInfoByMemberSrl', $args); + if(!$output) return $output; - $member_info = $output->data; - $member_info->group_list = $this->getMemberGroups($member_info->member_srl); + $member_info = $this->arrangeMemberInfo($output->data); + $member_info->group_list = $this->getMemberGroups($member_info->member_srl); - return $member_info; + $this->member_info[$member_srl] = $member_info; + } + return $this->member_info[$member_srl]; + } + + /** + * @brief 사용자 정보 중 extra_vars를 알맞게 편집 + **/ + function arrangeMemberInfo($info) { + $extra_vars = unserialize($info->extra_vars); + unset($info->extra_vars); + if(!$extra_vars) return $info; + foreach($extra_vars as $key => $val) { + if(eregi('\|\@\|', $val)) $val = explode('|@|', $val); + if(!$info->{$key}) $info->{$key} = $val; + } + return $info; } /** @@ -138,20 +165,23 @@ * @brief member_srl이 속한 group 목록을 가져옴 **/ function getMemberGroups($member_srl) { - // DB 객체 생성 - $oDB = &DB::getInstance(); + if(!$this->member_groups[$member_srl]) { + // DB 객체 생성 + $oDB = &DB::getInstance(); - $args->member_srl = $member_srl; - $output = $oDB->executeQuery('member.getMemberGroups', $args); - if(!$output->data) return; + $args->member_srl = $member_srl; + $output = $oDB->executeQuery('member.getMemberGroups', $args); + if(!$output->data) return; - $group_list = $output->data; - if(!is_array($group_list)) $group_list = array($group_list); + $group_list = $output->data; + if(!is_array($group_list)) $group_list = array($group_list); - foreach($group_list as $group) { - $result[$group->group_srl] = $group->title; + foreach($group_list as $group) { + $result[$group->group_srl] = $group->title; + } + $this->member_groups[$member_srl] = $result; } - return $result; + return $this->member_groups[$member_srl]; } /** @@ -204,42 +234,64 @@ * 이 인자값이 true일 경우 filter 타입에 맞는 형태의 object로 결과를 return하여야 한다. **/ function getJoinFormList($filter_response = false) { - // DB 객체 생성 - $oDB = &DB::getInstance(); + global $lang; - // list_order 컬럼의 정렬을 위한 인자 세팅 - $args->sort_index = "list_order"; - $output = $oDB->executeQuery('member.getJoinFormList', $args); + if(!$this->join_form_list) { + // DB 객체 생성 + $oDB = &DB::getInstance(); - // 결과 데이터가 없으면 NULL return - $join_form_list = $output->data; - if(!$join_form_list) return NULL; + // list_order 컬럼의 정렬을 위한 인자 세팅 + $args->sort_index = "list_order"; + $output = $oDB->executeQuery('member.getJoinFormList', $args); - // default_value의 경우 DB에 array가 serialize되어 입력되므로 unserialize가 필요 - if(!is_array($join_form_list)) $join_form_list = array($join_form_list); - $join_form_count = count($join_form_list); - for($i=0;$i<$join_form_count;$i++) { - $member_join_form_srl = $join_form_list[$i]->member_join_form_srl; - $column_type = $join_form_list[$i]->column_type; - $default_value = $join_form_list[$i]->default_value; + // 결과 데이터가 없으면 NULL return + $join_form_list = $output->data; + if(!$join_form_list) return NULL; - if(in_array($column_type, array('checkbox','select'))) { - $join_form_list[$i]->default_value = unserialize($default_value); - if(!$join_form_list[$i]->default_value[0]) $join_form_list[$i]->default_value = ''; - } else { - $join_form_list[$i]->default_value = ''; + // default_value의 경우 DB에 array가 serialize되어 입력되므로 unserialize가 필요 + if(!is_array($join_form_list)) $join_form_list = array($join_form_list); + $join_form_count = count($join_form_list); + for($i=0;$i<$join_form_count;$i++) { + $member_join_form_srl = $join_form_list[$i]->member_join_form_srl; + $column_type = $join_form_list[$i]->column_type; + $column_name = $join_form_list[$i]->column_name; + $column_title = $join_form_list[$i]->column_title; + $default_value = $join_form_list[$i]->default_value; + + // 언어변수에 추가 + $lang->extend_vars[$column_name] = $column_title; + + // checkbox, select등 다수 데이터 형식일 경우 unserialize해줌 + if(in_array($column_type, array('checkbox','select'))) { + $join_form_list[$i]->default_value = unserialize($default_value); + if(!$join_form_list[$i]->default_value[0]) $join_form_list[$i]->default_value = ''; + } else { + $join_form_list[$i]->default_value = ''; + } + + $list[$member_join_form_srl] = $join_form_list[$i]; } - - $list[$member_join_form_srl] = $join_form_list[$i]; + $this->join_form_list = $list; } // filter_response가 true일 경우 object 스타일을 구함 - if($filter_response) { + if($filter_response && count($this->join_form_list)) { + + foreach($this->join_form_list as $key => $val) { + if($val->is_active != 'Y') continue; + unset($obj); + $obj->type = $val->column_type; + $obj->name = $val->column_name; + $obj->lang = $val->column_title; + $obj->required = $val->required=='Y'?true:false; + $filter_output[] = $obj; + } + return $filter_output; + } - // 결과 리턴 - return $list; + return $this->join_form_list; } /** @@ -269,16 +321,19 @@ * @brief 금지 아이디 목록 가져오기 **/ function getDeniedIDList() { - // DB 객체 생성 - $oDB = &DB::getInstance(); + if(!$this->denied_id_list) { + // DB 객체 생성 + $oDB = &DB::getInstance(); - $args->sort_index = "list_order"; - $args->page = Context::get('page'); - $args->list_count = 40; - $args->page_count = 10; + $args->sort_index = "list_order"; + $args->page = Context::get('page'); + $args->list_count = 40; + $args->page_count = 10; - $output = $oDB->executeQuery('member.getDeniedIDList', $args); - return $output; + $output = $oDB->executeQuery('member.getDeniedIDList', $args); + $this->denied_id_list = $output; + } + return $this->denied_id_list; } /** diff --git a/modules/member/member.view.php b/modules/member/member.view.php index bf49cdf6f..81d960edb 100644 --- a/modules/member/member.view.php +++ b/modules/member/member.view.php @@ -21,9 +21,9 @@ // member_srl이 있으면 미리 체크하여 member_info 세팅 $member_srl = Context::get('member_srl'); if($member_srl) { - $member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl); - if(!$member_info) Context::set('member_srl',''); - else Context::set('member_info',$member_info); + $this->member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl); + if(!$this->member_info) Context::set('member_srl',''); + else Context::set('member_info',$this->member_info); } // group 목록 가져오기 @@ -60,6 +60,17 @@ * @brief 회원 정보 출력 **/ function dispMemberInfo() { + // 추가 가입폼 목록을 받음 + $oMemberModel = &getModel('member'); + $extend_form_list = $oMemberModel->getJoinFormlist(); + if($extend_form_list) { + foreach($extend_form_list as $srl => $item) { + $column_name = $item->column_name; + $value = $this->member_info->{$column_name}; + $extend_form_list[$srl]->value = $this->member_info->{$column_name}; + } + Context::set('extend_form_list', $extend_form_list); + } $this->setTemplateFile('member_info'); } @@ -70,7 +81,14 @@ // 추가 가입폼 목록을 받음 $oMemberModel = &getModel('member'); $extend_form_list = $oMemberModel->getJoinFormlist(); - if($extend_form_list) Context::set('extend_form_list', $extend_form_list); + if($extend_form_list) { + foreach($extend_form_list as $srl => $item) { + $column_name = $item->column_name; + $value = $this->member_info->{$column_name}; + $extend_form_list[$srl]->value = $this->member_info->{$column_name}; + } + Context::set('extend_form_list', $extend_form_list); + } // 템플릿 파일 지정 $this->setTemplateFile('insert_member'); diff --git a/modules/member/queries/insertMember.xml b/modules/member/queries/insertMember.xml index bacc7366d..8ebf22748 100644 --- a/modules/member/queries/insertMember.xml +++ b/modules/member/queries/insertMember.xml @@ -22,5 +22,6 @@ + diff --git a/modules/member/queries/updateMember.xml b/modules/member/queries/updateMember.xml index 1dedebeef..377516e1e 100644 --- a/modules/member/queries/updateMember.xml +++ b/modules/member/queries/updateMember.xml @@ -17,6 +17,7 @@ + diff --git a/modules/member/schemas/member.xml b/modules/member/schemas/member.xml index 6aeac602e..1d71ce6f4 100644 --- a/modules/member/schemas/member.xml +++ b/modules/member/schemas/member.xml @@ -17,8 +17,6 @@ - - diff --git a/modules/member/tpl.admin/filter/insert.xml b/modules/member/tpl.admin/filter/insert.xml index c38088a2f..30c55050a 100644 --- a/modules/member/tpl.admin/filter/insert.xml +++ b/modules/member/tpl.admin/filter/insert.xml @@ -1,4 +1,4 @@ - +
diff --git a/modules/member/tpl.admin/insert_member.html b/modules/member/tpl.admin/insert_member.html index 3e68077f3..4279a01b1 100644 --- a/modules/member/tpl.admin/insert_member.html +++ b/modules/member/tpl.admin/insert_member.html @@ -114,42 +114,42 @@ - + * {$val->column_title} - + - http:// + - @ + - - - - - + - + - + - + - {$v} + value)&&in_array($v, $val->value))-->checked="true"/> {$v} - + - + @@ -165,7 +165,11 @@ diff --git a/modules/member/tpl.admin/member_info.html b/modules/member/tpl.admin/member_info.html index 5d19ebcbe..402be2e5d 100644 --- a/modules/member/tpl.admin/member_info.html +++ b/modules/member/tpl.admin/member_info.html @@ -37,6 +37,22 @@ + + + + + + + +
- + + + + +
{$val->column_title} + + {implode("-",$val->value)} + + {implode(",",$val->value)} + + {$val->value} + +
{$lang->description} {$member_info->description}