From 0a49ee5406b0d3a5e48341a64aa59e98673585e7 Mon Sep 17 00:00:00 2001 From: zero Date: Tue, 27 Feb 2007 03:40:52 +0000 Subject: [PATCH] git-svn-id: http://xe-core.googlecode.com/svn/trunk@192 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- classes/xml/XmlJsFilter.class.php | 16 +++++++++++++--- modules/member/member.model.php | 18 ++++++++++++++++-- modules/member/tpl.admin/filter/insert.xml | 16 +++++++++++++++- 3 files changed, 44 insertions(+), 6 deletions(-) diff --git a/classes/xml/XmlJsFilter.class.php b/classes/xml/XmlJsFilter.class.php index 38cf74d34..4546552c8 100644 --- a/classes/xml/XmlJsFilter.class.php +++ b/classes/xml/XmlJsFilter.class.php @@ -32,7 +32,7 @@ * \n * - parameter - param\n * param = key : key를 이름으로 가지고 value의 값을 가지는 array 값 생성\n - * value = target : target form element의 값을 가져옴\n + * target = target_name : target form element의 값을 가져옴\n * concat = str1,str2,target2... : 값들의 string 또는 form element value를 연결\n * \n * - response\n @@ -80,13 +80,23 @@ $confirm_msg_code = $xml_obj->filter->attrs->confirm_msg_code; $module = $xml_obj->filter->attrs->module; $act = $xml_obj->filter->attrs->act; + $extend_filter = $xml_obj->filter->attrs->extend_filter; $field_node = $xml_obj->filter->form->node; - $parameter_param = $xml_obj->filter->parameter->param; - $response_tag = $xml_obj->filter->response->tag; + // extend_filter가 있을 경우 해당 method를 호출하여 결과를 받음 + if($extend_filter) { + list($module_name, $method) = explode('.',$extend_filter); + if($module_name&&$method) { + $oExtendFilter = &getModel($module_name); + if(method_exists($oExtendFilter, $method)) { + $extend_filter_obj = call_user_method($method, $oExtendFilter, true); + } + } + } + $callback_func = $xml_obj->filter->response->attrs->callback_func; if(!$callback_func) $callback_func = "filterAlertMessage"; diff --git a/modules/member/member.model.php b/modules/member/member.model.php index c58adcb10..444847fba 100644 --- a/modules/member/member.model.php +++ b/modules/member/member.model.php @@ -198,17 +198,24 @@ /** * @brief 회원 가입폼 추가 확장 목록 가져오기 + * + * 이 메소드는 modules/member/tpl.admin/filter/insert.xml 의 extend_filter로 동작을 한다. + * extend_filter로 사용을 하기 위해서는 인자값으로 boolean값을 받도록 규정한다. + * 이 인자값이 true일 경우 filter 타입에 맞는 형태의 object로 결과를 return하여야 한다. **/ - function getJoinFormList() { + function getJoinFormList($filter_response = false) { // DB 객체 생성 $oDB = &DB::getInstance(); + // list_order 컬럼의 정렬을 위한 인자 세팅 $args->sort_index = "list_order"; $output = $oDB->executeQuery('member.getJoinFormList', $args); - $join_form_list = $output->data; + // 결과 데이터가 없으면 NULL return + $join_form_list = $output->data; if(!$join_form_list) return NULL; + // 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++) { @@ -225,6 +232,13 @@ $list[$member_join_form_srl] = $join_form_list[$i]; } + + // filter_response가 true일 경우 object 스타일을 구함 + if($filter_response) { + } + + + // 결과 리턴 return $list; } diff --git a/modules/member/tpl.admin/filter/insert.xml b/modules/member/tpl.admin/filter/insert.xml index e27ae9aa5..c38088a2f 100644 --- a/modules/member/tpl.admin/filter/insert.xml +++ b/modules/member/tpl.admin/filter/insert.xml @@ -1,10 +1,24 @@ - +
+ + + + + + + + + + + + + +