mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-07 02:31:40 +09:00
#18240064 통합검색 모듈의 기능 추가
모듈 선택을 모듈 선택기로 대체 선택된 모듈을 검색할지 혹은 검색에서 제외할지 정하는 옵션 추가 git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6752 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
dadcfc7c6a
commit
7421cfd5e8
27 changed files with 119 additions and 93 deletions
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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/");
|
||||
|
|
|
|||
|
|
@ -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');
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -14,6 +14,9 @@
|
|||
|
||||
$lang->is_result_text = "There are <strong>%d</strong> result(s) for <strong>'%s'</strong>";
|
||||
$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(
|
||||
|
|
|
|||
|
|
@ -14,6 +14,9 @@
|
|||
|
||||
$lang->is_result_text = "<strong>%d</strong> Resultados con la palabra <strong>'%s'</strong> ";
|
||||
$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(
|
||||
|
|
|
|||
|
|
@ -14,6 +14,9 @@
|
|||
|
||||
$lang->is_result_text = "Il y a <strong>%d</strong> résultat(s) pour <strong>'%s'</strong>";
|
||||
$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(
|
||||
|
|
|
|||
|
|
@ -15,6 +15,9 @@
|
|||
|
||||
$lang->is_result_text = "<strong>'%s'</strong>に対する検索結果<strong>%d</strong>件";
|
||||
$lang->multimedia = '画像/動画';
|
||||
|
||||
$lang->include_search_target = '選択された対象のみ';
|
||||
$lang->exclude_search_target = '選択した対象を検索から除外';
|
||||
|
||||
$lang->is_search_option = array(
|
||||
'document' => array(
|
||||
|
|
|
|||
|
|
@ -15,6 +15,9 @@
|
|||
|
||||
$lang->is_result_text = "<strong>'%s'</strong> 에 대한 검색결과 <strong>%d</strong>건";
|
||||
$lang->multimedia = '이미지/동영상';
|
||||
|
||||
$lang->include_search_target = '선택된 대상만 검색';
|
||||
$lang->exclude_search_target = '선택된 대상을 검색에서 제외';
|
||||
|
||||
$lang->is_search_option = array(
|
||||
'document' => array(
|
||||
|
|
|
|||
|
|
@ -14,6 +14,9 @@
|
|||
|
||||
$lang->is_result_text = "<strong>%d</strong> результатов для <strong>'%s'</strong>";
|
||||
$lang->multimedia = "Images/ Movies";
|
||||
|
||||
$lang->include_search_target = 'Лишь в отдельных целевых';
|
||||
$lang->exclude_search_target = 'Поиск на выбранный пункт назначения из';
|
||||
|
||||
$lang->is_search_option = array(
|
||||
'document' => array(
|
||||
|
|
|
|||
|
|
@ -13,6 +13,9 @@
|
|||
|
||||
$lang->is_result_text = "符合<strong>'%s'</strong>的搜索结果约有<strong>%d</strong>项";
|
||||
$lang->multimedia = "图片/视频";
|
||||
|
||||
$lang->include_search_target = '只有在选定的目标';
|
||||
$lang->exclude_search_target = '搜索选定目的地从';
|
||||
|
||||
$lang->is_search_option = array(
|
||||
'document' => array(
|
||||
|
|
|
|||
|
|
@ -15,6 +15,9 @@
|
|||
|
||||
$lang->is_result_text = "符合<strong>'%s'</strong>的搜尋結果,約有<strong>%d</strong>項";
|
||||
$lang->multimedia = "圖片/影片";
|
||||
|
||||
$lang->include_search_target = '只有在選定的目標';
|
||||
$lang->exclude_search_target = '搜索選定目的地從';
|
||||
|
||||
$lang->is_search_option = array(
|
||||
'document' => array(
|
||||
|
|
|
|||
|
|
@ -1,18 +1,20 @@
|
|||
<!--#include("header.html")-->
|
||||
<!--%import("filter/insert_config.xml")-->
|
||||
<!--%import("../../widget/tpl/js/widget_admin.js")-->
|
||||
|
||||
<form action="./" method="get" onsubmit="return procFilter(this, insert_config)">
|
||||
<input type="hidden" name="target_module_srl" id="target_module_srl" value="{$config->target_module_srl}" />
|
||||
<table cellspacing="0" class="rowTable">
|
||||
<tr class="row2">
|
||||
<th scope="row"><div>{$lang->sample_code}</div></th>
|
||||
<td colspan="2" class="wide">
|
||||
<td class="wide">
|
||||
<textarea class="inputTypeTextArea fullWidth" readonly="readonly">{$sample_code}</textarea>
|
||||
<p>{$lang->about_sample_code}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->skin}</div></th>
|
||||
<td colspan="2">
|
||||
<td>
|
||||
<select name="skin">
|
||||
<!--@foreach($skin_list as $key=>$val)-->
|
||||
<option value="{$key}" <!--@if($config->skin==$key)-->selected="selected"<!--@end-->>{$val->title}</option>
|
||||
|
|
@ -22,30 +24,23 @@
|
|||
</td>
|
||||
</tr>
|
||||
<tr class="row2">
|
||||
<td colspan="3"><input type="checkbox" onclick="XE.checkboxToggleAll('target_mid'); return false;" /> {$lang->about_target_module}</td>
|
||||
</tr>
|
||||
<!--@foreach($mid_list as $module_category_srl => $modules)-->
|
||||
<!--@if($modules->title)-->
|
||||
<tr>
|
||||
<th rowspan="{count($modules->list)+1}"><div>{$modules->title}</div></th>
|
||||
<!--@if(count($modules->list)<1)--><td colspan="2"> </td><!--@end-->
|
||||
</tr>
|
||||
<!--@else-->
|
||||
<tr>
|
||||
<th rowspan="{count($modules->list)+1}"><div> </div></th>
|
||||
<!--@if(count($modules->list)<1)--><td colspan="2"> </td><!--@end-->
|
||||
</tr>
|
||||
<!--@end-->
|
||||
<!--@foreach($modules->list as $key => $val)-->
|
||||
<tr class="row{$cycle_idx}">
|
||||
<td>{$val->module}</td>
|
||||
<th scope="row"><div>{$lang->target}</div></th>
|
||||
<td>
|
||||
<input type="checkbox" name="target_mid" value="{$key}" id="target_mid_{$key}" <!--@if(in_array($key,$config->target_mid))-->checked="checked"<!--@end--> />
|
||||
<label for="target_mid_{$key}">{$val->browser_title} ({$val->mid})</label>
|
||||
<select name="target">
|
||||
<option value="include">{$lang->include_search_target}</option>
|
||||
<option value="exclude" <!--@if($config->target=='exclude')-->selected="selected"<!--@end-->>{$lang->exclude_search_target}</option>
|
||||
</select>
|
||||
|
||||
<select name="_target_module_srl" id="_target_module_srl" size="8" class="w200" style="display:block;margin:10px 0;"></select>
|
||||
|
||||
<a href="{getUrl('','module','module','act','dispModuleSelectList','id','target_module_srl')}" onclick="popopen(this.href, 'ModuleSelect');return false;" class="button blue"><span>{$lang->cmd_insert}</span></a></li>
|
||||
<a href="#" onclick="midRemove('target_module_srl');return false;" class="button red"><span>{$lang->cmd_delete}</span></a></li>
|
||||
|
||||
<script type="text/javascript">
|
||||
doAddWindowLoadEventLoader( function() { getModuleSrlList('target_module_srl'); } );
|
||||
</script>
|
||||
</td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
<!--@end-->
|
||||
<tr class="row2">
|
||||
<th class="button" colspan="3">
|
||||
<span class="button black strong"><input type="submit" value="{$lang->cmd_registration}" accesskey="s" /></span>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue