기본으로 탑재된 통합검색 모듈은 모바일을 지원하지 않습니다.

 

모바일 레이아웃에서의 통합검색 by 카르마
https://xe1.xpressengine.com/tip/19766676

 

추천검색어모듈(통합검색모듈) by 카르마
https://xe1.xpressengine.com/index.php?mid=download&package_id=22753410

 

그 밖에 스케치북 레이아웃(모바일)을 사용하시면 반응형이라서 모바일도 대응이 됩니다.

이온디

profile
이온디는 라이믹스를 비롯한 다양한 CMS의 시드뱅크를 꿈꿉니다. 여러분들이 사랑하는 웹소스를 언제든지 사용할 수 있게 하기 위해 이온디는 매일 소스코드를 유지보수하고 있으며, 언제든지 다운로드할 수 있는 소스마켓을 운영하고 있습니다.

#XE마켓 - 이온디스토어
https://eond.com/xemarket/

# XE/라이믹스 단톡방을 운영 중입니다. (비번: 2022)
https://open.kakao.com/o/giaKKnl

# XE/라이믹스 생활코딩 모듈 강좌입니다.
https://opentutorials.org/module/3774
  • profile

    이런 방법도 있죠.

    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'

     

    출처는.. 미안해요..

    누가 작성한건지 모르겠네요. (혹시나 주인이시면 말씀하세요~)

     ㄴㄴ 출처는 아래 이온디님의 댓글에 따라..!!

  • profile profile

    최신버전에도 되겠죠? ㅎ;

    2011년도에 카르마님이 작성하신 위글에 코멘트로 있는 내용이 출처 같네요 ㅎ

  • profile profile
    별 중요한 내용은 없어서 될것 같긴한데.. 글세요 흐음..
    // 그렇군요. 정보 감사합니다~
  • ?
    방법3 XETOWN Core를 사용합니다. https://github.com/xetown/xe-core/pull/9/files
  • ?
    와 ~ 정말 감사드립니다 유용하네요
  • profile
    감사합니다:)
  • profile
    유용하게 사용할 수 있을것 같습니다.
    감사합니다.