diff --git a/modules/admin/tpl/config.html b/modules/admin/tpl/config.html
index 301568c1f..6665f90d3 100644
--- a/modules/admin/tpl/config.html
+++ b/modules/admin/tpl/config.html
@@ -6,6 +6,15 @@
+
+
diff --git a/modules/admin/tpl/js/admin.js b/modules/admin/tpl/js/admin.js
index 199d5268a..7985a3b88 100644
--- a/modules/admin/tpl/js/admin.js
+++ b/modules/admin/tpl/js/admin.js
@@ -50,9 +50,3 @@ function doAdminLogout() {
exec_xml('admin','procAdminLogout',new Array(), function() { location.reload(); });
}
-function insertSelectedModule(id, module_srl, mid, browser_title) {
- var obj= xGetElementById('_'+id);
- var sObj = xGetElementById(id);
- sObj.value = module_srl;
- obj.value = browser_title+' ('+mid+')';
-}
diff --git a/modules/comment/comment.model.php b/modules/comment/comment.model.php
index 565390de8..e61ea1ddc 100644
--- a/modules/comment/comment.model.php
+++ b/modules/comment/comment.model.php
@@ -344,6 +344,7 @@
$args->list_count = $obj->list_count?$obj->list_count:20;
$args->page_count = $obj->page_count?$obj->page_count:10;
$args->s_module_srl = $obj->module_srl;
+ $args->exclude_module_srl = $obj->exclude_module_srl;
// 검색 옵션 정리
$search_target = $obj->search_target?$obj->search_target:trim(Context::get('search_target'));
diff --git a/modules/comment/queries/getTotalCommentList.xml b/modules/comment/queries/getTotalCommentList.xml
index a660c769e..8e2bbd081 100644
--- a/modules/comment/queries/getTotalCommentList.xml
+++ b/modules/comment/queries/getTotalCommentList.xml
@@ -7,6 +7,7 @@
+
diff --git a/modules/document/document.model.php b/modules/document/document.model.php
index 45d489ea6..13fc16d10 100644
--- a/modules/document/document.model.php
+++ b/modules/document/document.model.php
@@ -170,6 +170,10 @@
if(is_array($obj->module_srl)) $args->module_srl = implode(',', $obj->module_srl);
else $args->module_srl = $obj->module_srl;
+ // 제외 module_srl에 대한 검사
+ if(is_array($obj->exclude_module_srl)) $args->exclude_module_srl = implode(',', $obj->exclude_module_srl);
+ else $args->exclude_module_srl = $obj->exclude_module_srl;
+
// 변수 체크
$args->category_srl = $obj->category_srl?$obj->category_srl:null;
$args->sort_index = $obj->sort_index;
@@ -278,6 +282,7 @@
// division값이 없다면 제일 상위
if(!$division) {
$division_args->module_srl = $args->module_srl;
+ $division_args->exclude_module_srl = $args->exclude_module_srl;
$division_args->list_count = 1;
$division_args->sort_index = $args->sort_index;
$division_args->order_type = $args->order_type;
@@ -295,6 +300,7 @@
// 지정된 division에서부터 5000개 후의 division값을 구함
if(!$last_division) {
$last_division_args->module_srl = $args->module_srl;
+ $last_division_args->exclude_module_srl = $args->exclude_module_srl;
$last_division_args->list_count = 1;
$last_division_args->sort_index = $args->sort_index;
$last_division_args->order_type = $args->order_type;
@@ -312,6 +318,7 @@
if($last_division) {
$last_division_args = null;
$last_division_args->module_srl = $args->module_srl;
+ $last_division_args->exclude_module_srl = $args->exclude_module_srl;
$last_division_args->list_order = $last_division;
$output = executeQuery("document.getDocumentDivisionCount", $last_division_args);
if($output->data->count<1) $last_division = null;
diff --git a/modules/document/queries/getDocumentDivision.xml b/modules/document/queries/getDocumentDivision.xml
index ebe094a5c..b7a058b3c 100644
--- a/modules/document/queries/getDocumentDivision.xml
+++ b/modules/document/queries/getDocumentDivision.xml
@@ -7,6 +7,7 @@
+
diff --git a/modules/document/queries/getDocumentDivisionCount.xml b/modules/document/queries/getDocumentDivisionCount.xml
index 92bdce812..c061f2a84 100644
--- a/modules/document/queries/getDocumentDivisionCount.xml
+++ b/modules/document/queries/getDocumentDivisionCount.xml
@@ -7,6 +7,7 @@
+
diff --git a/modules/document/queries/getDocumentList.xml b/modules/document/queries/getDocumentList.xml
index 82338e103..a8726e1df 100644
--- a/modules/document/queries/getDocumentList.xml
+++ b/modules/document/queries/getDocumentList.xml
@@ -7,6 +7,7 @@
+
diff --git a/modules/document/queries/getDocumentListWithinComment.xml b/modules/document/queries/getDocumentListWithinComment.xml
index 3076c607e..f463669d5 100644
--- a/modules/document/queries/getDocumentListWithinComment.xml
+++ b/modules/document/queries/getDocumentListWithinComment.xml
@@ -9,6 +9,7 @@
+
diff --git a/modules/document/queries/getDocumentListWithinTag.xml b/modules/document/queries/getDocumentListWithinTag.xml
index d6f0441b3..ca10e5170 100644
--- a/modules/document/queries/getDocumentListWithinTag.xml
+++ b/modules/document/queries/getDocumentListWithinTag.xml
@@ -9,6 +9,7 @@
+
diff --git a/modules/file/file.admin.model.php b/modules/file/file.admin.model.php
index c1f8df06c..e054df2bf 100644
--- a/modules/file/file.admin.model.php
+++ b/modules/file/file.admin.model.php
@@ -74,6 +74,7 @@
$args->list_count = $obj->list_count?$obj->list_count:20;
$args->page_count = $obj->page_count?$obj->page_count:10;
$args->s_module_srl = $obj->module_srl;
+ $args->exclude_module_srl = $obj->exclude_module_srl;
// file.getFileList쿼리 실행
$output = executeQuery('file.getFileList', $args);
diff --git a/modules/file/queries/getFileList.xml b/modules/file/queries/getFileList.xml
index 61512f712..5bd85b5f0 100644
--- a/modules/file/queries/getFileList.xml
+++ b/modules/file/queries/getFileList.xml
@@ -12,6 +12,7 @@
+
diff --git a/modules/integration_search/integration_search.admin.controller.php b/modules/integration_search/integration_search.admin.controller.php
index 1e03bdb3a..ed0eff234 100644
--- a/modules/integration_search/integration_search.admin.controller.php
+++ b/modules/integration_search/integration_search.admin.controller.php
@@ -23,7 +23,9 @@
$config = $oModuleModel->getModuleConfig('integration_search');
$args->skin = Context::get('skin');
- $args->target_mid = explode('|@|',Context::get('target_mid'));
+ $args->target = Context::get('target');
+ $args->target_module_srl = Context::get('target_module_srl');
+ if(!$args->target_module_srl) $args->target_module_srl = '';
$args->skin_vars = $config->skin_vars;
$oModuleController = &getController('module');
@@ -39,7 +41,7 @@
$config = $oModuleModel->getModuleConfig('integration_search');
$args->skin = $config->skin;
- $args->target_mid = $config->target_mid;
+ $args->target_module_srl = $config->target_module_srl;
// 스킨의 정보를 구해옴 (extra_vars를 체크하기 위해서)
$skin_info = $oModuleModel->loadSkinInfo($this->module_path, $config->skin);
diff --git a/modules/integration_search/integration_search.admin.view.php b/modules/integration_search/integration_search.admin.view.php
index 2e115cc5a..330ec82bd 100644
--- a/modules/integration_search/integration_search.admin.view.php
+++ b/modules/integration_search/integration_search.admin.view.php
@@ -19,7 +19,6 @@
// 설정 정보를 받아옴 (module model 객체를 이용)
$oModuleModel = &getModel('module');
$this->config = $oModuleModel->getModuleConfig('integration_search');
- if(!$this->config->target_mid) $this->config->target_mid = array();
Context::set('config',$this->config);
$this->setTemplatePath($this->module_path."/tpl/");
diff --git a/modules/integration_search/integration_search.model.php b/modules/integration_search/integration_search.model.php
index 6c24cf887..025674490 100644
--- a/modules/integration_search/integration_search.model.php
+++ b/modules/integration_search/integration_search.model.php
@@ -15,9 +15,12 @@
/**
* @brief 게시글 검색
**/
- function getDocuments($module_srls_list, $search_target, $search_keyword, $page=1, $list_count = 20) {
- if(is_array($module_srls_list)) $args->module_srl = implode(',',$module_srls_list);
- else $args->module_srl = $module_srls_list;
+ function getDocuments($target, $module_srls_list, $search_target, $search_keyword, $page=1, $list_count = 20) {
+ if(is_array($module_srls_list)) $module_srls = implode(',',$module_srls_list);
+ else $module_srls = $module_srls_list;
+ if($target == 'exclude') $args->exclude_module_srl = $module_srls;
+ else $args->module_srl = $module_srls;
+
$args->page = $page;
$args->list_count = $list_count;
$args->page_count = 10;
@@ -34,9 +37,11 @@
/**
* @brief 댓글 검색
**/
- function getComments($module_srls_list, $search_keyword, $page=1, $list_count = 20) {
- if(is_array($module_srls_list)) $args->module_srl = implode(',',$module_srls_list);
- else $args->module_srl = $module_srls_list;
+ function getComments($target, $module_srls_list, $search_keyword, $page=1, $list_count = 20) {
+ if(is_array($module_srls_list)) $module_srls = implode(',',$module_srls_list);
+ else $module_srls = $module_srls_list;
+ if($target == 'exclude') $args->exclude_module_srl = $module_srls;
+ else $args->module_srl = $module_srls;
$args->page = $page;
$args->list_count = $list_count;
$args->page_count = 10;
@@ -55,9 +60,11 @@
/**
* @brief 엮인글 검색
**/
- function getTrackbacks($module_srls_list, $search_target = "title", $search_keyword, $page=1, $list_count = 20) {
- if(is_array($module_srls_list)) $args->module_srl = implode(',',$module_srls_list);
- else $args->module_srl = $module_srls_list;
+ function getTrackbacks($target, $module_srls_list, $search_target = "title", $search_keyword, $page=1, $list_count = 20) {
+ if(is_array($module_srls_list)) $module_srls = implode(',',$module_srls_list);
+ else $module_srls = $module_srls_list;
+ if($target == 'exclude') $args->exclude_module_srl = $module_srls;
+ else $args->module_srl = $module_srls;
$args->page = $page;
$args->list_count = $list_count;
$args->page_count = 10;
@@ -76,9 +83,11 @@
/**
* @brief 파일 검색
**/
- function _getFiles($module_srls_list, $search_keyword, $page, $list_count, $direct_download = 'Y') {
- if(is_array($module_srls_list)) $args->module_srl = implode(',',$module_srls_list);
- else $args->module_srl = $module_srls_list;
+ function _getFiles($target, $module_srls_list, $search_keyword, $page, $list_count, $direct_download = 'Y') {
+ if(is_array($module_srls_list)) $module_srls = implode(',',$module_srls_list);
+ else $module_srls = $module_srls_list;
+ if($target == 'exclude') $args->exclude_module_srl = $module_srls;
+ else $args->module_srl = $module_srls;
$args->page = $page;
$args->list_count = $list_count;
$args->page_count = 10;
@@ -161,15 +170,15 @@
/**
* @brief 멀티미디어 검색
**/
- function getImages($module_srls_list, $search_keyword, $page=1, $list_count = 20) {
- return $this->_getFiles($module_srls_list, $search_keyword, $page, $list_count);
+ function getImages($target, $module_srls_list, $search_keyword, $page=1, $list_count = 20) {
+ return $this->_getFiles($target, $module_srls_list, $search_keyword, $page, $list_count);
}
/**
* @brief 첨부파일 검색
**/
- function getFiles($module_srls_list, $search_keyword, $page=1, $list_count = 20) {
- return $this->_getFiles($module_srls_list, $search_keyword, $page, $list_count, 'N');
+ function getFiles($target, $module_srls_list, $search_keyword, $page=1, $list_count = 20) {
+ return $this->_getFiles($target, $module_srls_list, $search_keyword, $page, $list_count, 'N');
}
}
diff --git a/modules/integration_search/integration_search.view.php b/modules/integration_search/integration_search.view.php
index 87519d719..72c7e725f 100644
--- a/modules/integration_search/integration_search.view.php
+++ b/modules/integration_search/integration_search.view.php
@@ -17,48 +17,26 @@
* @brief 초기화
**/
function init() {
- // 설정 정보를 받아옴 (module model 객체를 이용)
- $oModuleModel = &getModel('module');
- $config = $oModuleModel->getModuleConfig('integration_search');
- if(!$config->skin) $config->skin = 'default';
-
- $this->target_mid = $config->target_mid;
- if(!$this->target_mid) $this->target_mid = array();
-
- $this->skin = $config->skin;
- $this->module_info = unserialize($config->skin_vars);
- Context::set('module_info', $this->module_info);
-
- $this->setTemplatePath($this->module_path."/skins/".$this->skin."/");
}
/**
* @brief 통합 검색 출력
**/
function IS() {
+ $oFile = &getClass('file');
+ $oModuleModel = &getModel('module');
+
// 권한 체크
if(!$this->grant->access) return new Object(-1,'msg_not_permitted');
- // 검색이 가능한 목록을 구하기 위해 전체 목록을 구해옴
- $oModuleModel = &getModel('module');
- $site_module_info = Context::get('site_module_info');
- if($site_module_info->site_srl) {
- $args->site_srl = (int)$site_module_info->site_srl;
- $module_list = $oModuleModel->getMidList($args);
- foreach($module_list as $mid => $val) {
- $mid_list[$val->module_srl] = $val;
- $module_srl_list[] = $val->module_srl;
- }
- } else {
- // 대상 모듈을 정리함
- $module_list = $oModuleModel->getMidList($args);
- $module_srl_list = array();
- foreach($module_list as $mid => $val) {
- $mid_list[$val->module_srl] = $val;
- if(count($this->target_mid) && !in_array($mid, $this->target_mid)) continue;
- $module_srl_list[] = $val->module_srl;
- }
- }
+ $config = $oModuleModel->getModuleConfig('integration_search');
+ if(!$config->skin) $config->skin = 'default';
+ Context::set('module_info', unserialize($config->skin_vars));
+ $this->setTemplatePath($this->module_path."/skins/".$this->skin."/");
+
+ $target = $config->target;
+ if(!$target) $target = 'include';
+ $module_srl_list = explode(',',$config->target_module_srl);
// 검색어 변수 설정
$is_keyword = Context::get('is_keyword');
@@ -70,8 +48,6 @@
// 검색탭에 따른 검색
$where = Context::get('where');
- $oFile = &getClass('file');
-
// integration search model객체 생성
if($is_keyword) {
$oIS = &getModel('integration_search');
@@ -81,12 +57,12 @@
if(!in_array($search_target, array('title','content','title_content','tag'))) $search_target = 'title';
Context::set('search_target', $search_target);
- $output = $oIS->getDocuments($module_srl_list, $search_target, $is_keyword, $page, 10);
+ $output = $oIS->getDocuments($target, $module_srl_list, $search_target, $is_keyword, $page, 10);
Context::set('output', $output);
$this->setTemplateFile("document", $page);
break;
case 'comment' :
- $output = $oIS->getComments($module_srl_list, $is_keyword, $page, 10);
+ $output = $oIS->getComments($target, $module_srl_list, $is_keyword, $page, 10);
Context::set('output', $output);
$this->setTemplateFile("comment", $page);
break;
@@ -95,26 +71,26 @@
if(!in_array($search_target, array('title','url','blog_name','excerpt'))) $search_target = 'title';
Context::set('search_target', $search_target);
- $output = $oIS->getTrackbacks($module_srl_list, $search_target, $is_keyword, $page, 10);
+ $output = $oIS->getTrackbacks($target, $module_srl_list, $search_target, $is_keyword, $page, 10);
Context::set('output', $output);
$this->setTemplateFile("trackback", $page);
break;
case 'multimedia' :
- $output = $oIS->getImages($module_srl_list, $is_keyword, $page,20);
+ $output = $oIS->getImages($target, $module_srl_list, $is_keyword, $page,20);
Context::set('output', $output);
$this->setTemplateFile("multimedia", $page);
break;
case 'file' :
- $output = $oIS->getFiles($module_srl_list, $is_keyword, $page, 20);
+ $output = $oIS->getFiles($target, $module_srl_list, $is_keyword, $page, 20);
Context::set('output', $output);
$this->setTemplateFile("file", $page);
break;
default :
- $output['document'] = $oIS->getDocuments($module_srl_list, 'title', $is_keyword, $page, 5);
- $output['comment'] = $oIS->getComments($module_srl_list, $is_keyword, $page, 5);
- $output['trackback'] = $oIS->getTrackbacks($module_srl_list, 'title', $is_keyword, $page, 5);
- $output['multimedia'] = $oIS->getImages($module_srl_list, $is_keyword, $page, 5);
- $output['file'] = $oIS->getFiles($module_srl_list, $is_keyword, $page, 5);
+ $output['document'] = $oIS->getDocuments($target, $module_srl_list, 'title', $is_keyword, $page, 5);
+ $output['comment'] = $oIS->getComments($target, $module_srl_list, $is_keyword, $page, 5);
+ $output['trackback'] = $oIS->getTrackbacks($target, $module_srl_list, 'title', $is_keyword, $page, 5);
+ $output['multimedia'] = $oIS->getImages($target, $module_srl_list, $is_keyword, $page, 5);
+ $output['file'] = $oIS->getFiles($target, $module_srl_list, $is_keyword, $page, 5);
Context::set('search_result', $output);
$this->setTemplateFile("index", $page);
break;
diff --git a/modules/integration_search/lang/en.lang.php b/modules/integration_search/lang/en.lang.php
index c9f16b038..d2e47dea7 100644
--- a/modules/integration_search/lang/en.lang.php
+++ b/modules/integration_search/lang/en.lang.php
@@ -14,6 +14,9 @@
$lang->is_result_text = "There are %d result(s) for '%s'";
$lang->multimedia = "Images/ Movies";
+
+ $lang->include_search_target = 'Search for selected modules';
+ $lang->exclude_search_target = 'Exclude selected modules for search';
$lang->is_search_option = array(
'document' => array(
diff --git a/modules/integration_search/lang/es.lang.php b/modules/integration_search/lang/es.lang.php
index aab9ff9bc..9b3fc5e8d 100644
--- a/modules/integration_search/lang/es.lang.php
+++ b/modules/integration_search/lang/es.lang.php
@@ -14,6 +14,9 @@
$lang->is_result_text = "%d Resultados con la palabra '%s' ";
$lang->multimedia = "Images/ Movies";
+
+ $lang->include_search_target = 'Sólo en determinados ';
+ $lang->exclude_search_target = 'Búsqueda para el destino de';
$lang->is_search_option = array(
'document' => array(
diff --git a/modules/integration_search/lang/fr.lang.php b/modules/integration_search/lang/fr.lang.php
index 557e34195..4cf6c87fb 100644
--- a/modules/integration_search/lang/fr.lang.php
+++ b/modules/integration_search/lang/fr.lang.php
@@ -14,6 +14,9 @@
$lang->is_result_text = "Il y a %d résultat(s) pour '%s'";
$lang->multimedia = "Images/ Movies";
+
+ $lang->include_search_target = 'Seulement dans certaines cibles ';
+ $lang->exclude_search_target = 'Recherche de la destination sélectionnée à partir de';
$lang->is_search_option = array(
'document' => array(
diff --git a/modules/integration_search/lang/jp.lang.php b/modules/integration_search/lang/jp.lang.php
index 6694ffcf9..9f4c50ae0 100644
--- a/modules/integration_search/lang/jp.lang.php
+++ b/modules/integration_search/lang/jp.lang.php
@@ -15,6 +15,9 @@
$lang->is_result_text = "'%s'に対する検索結果%d件";
$lang->multimedia = '画像/動画';
+
+ $lang->include_search_target = '選択された対象のみ';
+ $lang->exclude_search_target = '選択した対象を検索から除外';
$lang->is_search_option = array(
'document' => array(
diff --git a/modules/integration_search/lang/ko.lang.php b/modules/integration_search/lang/ko.lang.php
index 32cd631dd..6d20d17d6 100644
--- a/modules/integration_search/lang/ko.lang.php
+++ b/modules/integration_search/lang/ko.lang.php
@@ -15,6 +15,9 @@
$lang->is_result_text = "'%s' 에 대한 검색결과 %d건";
$lang->multimedia = '이미지/동영상';
+
+ $lang->include_search_target = '선택된 대상만 검색';
+ $lang->exclude_search_target = '선택된 대상을 검색에서 제외';
$lang->is_search_option = array(
'document' => array(
diff --git a/modules/integration_search/lang/ru.lang.php b/modules/integration_search/lang/ru.lang.php
index 2f53ab13a..4f70e4590 100644
--- a/modules/integration_search/lang/ru.lang.php
+++ b/modules/integration_search/lang/ru.lang.php
@@ -14,6 +14,9 @@
$lang->is_result_text = "%d результатов для '%s'";
$lang->multimedia = "Images/ Movies";
+
+ $lang->include_search_target = 'Лишь в отдельных целевых';
+ $lang->exclude_search_target = 'Поиск на выбранный пункт назначения из';
$lang->is_search_option = array(
'document' => array(
diff --git a/modules/integration_search/lang/zh-CN.lang.php b/modules/integration_search/lang/zh-CN.lang.php
index cf10df4d7..2682c4926 100644
--- a/modules/integration_search/lang/zh-CN.lang.php
+++ b/modules/integration_search/lang/zh-CN.lang.php
@@ -13,6 +13,9 @@
$lang->is_result_text = "符合'%s'的搜索结果约有%d项";
$lang->multimedia = "图片/视频";
+
+ $lang->include_search_target = '只有在选定的目标';
+ $lang->exclude_search_target = '搜索选定目的地从';
$lang->is_search_option = array(
'document' => array(
diff --git a/modules/integration_search/lang/zh-TW.lang.php b/modules/integration_search/lang/zh-TW.lang.php
index 9a3a889ab..ed58e0024 100644
--- a/modules/integration_search/lang/zh-TW.lang.php
+++ b/modules/integration_search/lang/zh-TW.lang.php
@@ -15,6 +15,9 @@
$lang->is_result_text = "符合'%s'的搜尋結果,約有%d項";
$lang->multimedia = "圖片/影片";
+
+ $lang->include_search_target = '只有在選定的目標';
+ $lang->exclude_search_target = '搜索選定目的地從';
$lang->is_search_option = array(
'document' => array(
diff --git a/modules/integration_search/tpl/index.html b/modules/integration_search/tpl/index.html
index 5049abfb9..1690bd8ab 100644
--- a/modules/integration_search/tpl/index.html
+++ b/modules/integration_search/tpl/index.html
@@ -1,18 +1,20 @@
+