기본으로 탑재된 통합검색 모듈은 모바일을 지원하지 않습니다.
모바일 레이아웃에서의 통합검색 by 카르마
https://xe1.xpressengine.com/tip/19766676
추천검색어모듈(통합검색모듈) by 카르마
https://xe1.xpressengine.com/index.php?mid=download&package_id=22753410
그 밖에 스케치북 레이아웃(모바일)을 사용하시면 반응형이라서 모바일도 대응이 됩니다.
이런 방법도 있죠.
Core Version 1.7.7.2 기준 입니다.
먼저 'integration_search.mobile.php' 파일을 'xe/modules/integration_search' 경로에 만들어 줍니다.
그리고 다음의 아래 내용을 'integration_search.mobile.php'에 추가 합니다.
<?php
/* Copyright (C) NAVER <http://www.navercorp.com> */
/**
* The view class of the integration_search module
*
* @author NAVER ([email protected])
*/
class integration_searchMobile extends integration_search
{
/**
* Target mid
* @var array target mid
*/
var $target_mid = array();
/**
* Skin
* @var string skin name
*/
var $skin = 'default';
/**
* Initialization
*
* @return void
*/
function init()
{
}
/**
* Search Result
*
* @return Object
*/
function IS()
{
$oFile = getClass('file');
$oModuleModel = getModel('module');
// Check permissions
if(!$this->grant->access) return new Object(-1,'msg_not_permitted');
$config = $oModuleModel->getModuleConfig('integration_search');
if(!$config) $config = new stdClass;
if(!$config->skin)
{
$config->skin = 'default';
$template_path = sprintf('%sm.skins/%s', $this->module_path, $config->skin);
}
else
{
//check theme
$config_parse = explode('|@|', $config->skin);
if (count($config_parse) > 1)
{
$template_path = sprintf('./themes/%s/modules/integration_search/', $config_parse[0]);
}
else
{
$template_path = sprintf('%sskins/%s', $this->module_path, $config->skin);
}
}
// Template path
$this->setTemplatePath($template_path);
$skin_vars = ($config->skin_vars) ? unserialize($config->skin_vars) : new stdClass;
Context::set('module_info', $skin_vars);
$target = $config->target;
if(!$target) $target = 'include';
if(empty($config->target_module_srl))
$module_srl_list = array();
else
$module_srl_list = explode(',',$config->target_module_srl);
// Set a variable for search keyword
$is_keyword = Context::get('is_keyword');
// Set page variables
$page = (int)Context::get('page');
if(!$page) $page = 1;
// Search by search tab
$where = Context::get('where');
// Create integration search model object
if($is_keyword)
{
$oIS = getModel('integration_search');
switch($where)
{
case 'document' :
$search_target = Context::get('search_target');
if(!in_array($search_target, array('title','content','title_content','tag'))) $search_target = 'title';
Context::set('search_target', $search_target);
$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($target, $module_srl_list, $is_keyword, $page, 10);
Context::set('output', $output);
$this->setTemplateFile("comment", $page);
break;
case 'trackback' :
$search_target = Context::get('search_target');
if(!in_array($search_target, array('title','url','blog_name','excerpt'))) $search_target = 'title';
Context::set('search_target', $search_target);
$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($target, $module_srl_list, $is_keyword, $page,20);
Context::set('output', $output);
$this->setTemplateFile("multimedia", $page);
break;
case 'file' :
$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($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);
Context::set('search_target', 'title');
$this->setTemplateFile("index", $page);
break;
}
}
else
{
$this->setTemplateFile("no_keywords");
}
$security = new Security();
$security->encodeHTML('is_keyword', 'search_target', 'where', 'page');
}
}
사실 위의 내용은 'xe/modules/integration_search' 경로에 있는 기본 파일인 'integration_search.view.php' 내용을 복사한 것입니다.
바뀐 내용은 'class integration_searchView' 을 'class integration_searchMobile' 로, '$template_path = sprintf('%sskins/%s', $this->module_path, $config->skin);' 을 '$template_path = sprintf('%sm.skins/%s', $this->module_path, $config->skin);' 로 바꾼 겁니다.
'$template_path = sprintf('%sskins/%s', $this->module_path, $config->skin);' 은 2군대를 고치셔야 합니다.
이제 마지막으로 하나더! 아직 끝난게 아닙니다. 아래 내용을 그대로 복사합니다.
복사할 대상 : 'xe/modules/integration_search/skins'
복사할 이름 : 'xe/modules/integration_search/m.skins'
출처는.. 미안해요..
누가 작성한건지 모르겠네요. (혹시나 주인이시면 말씀하세요~)
ㄴㄴ 출처는 아래 이온디님의 댓글에 따라..!!