웹마스터 팁
모바일뷰 사용 안 할때 (반응형등) 에도 '모바일에서 최적화된 화면으로 보기' 가 나오는 버그 패치
2015.04.10 08:04
원본글을 가져온 글이기에 말이 짧아도 양해바랍니다.
원본글 출처 : http://sejin7940.co.kr/index.php?mid=xe_tips&document_srl=103486
XE 1.8 에서만의 문제가 아니라 이전의 모든 XE 버전에서 생기는 문제일겁니다
GitHub 에 PR 해둘테니, 추후 언젠가는 정식 패치 될거예요 ^^;;
--------------------------------------------------
모바일 기기에서, PC 화면을 보면 '모바일에서 최적화된 화면으로 보기' 라는 문구가 사이트 하단에 자동으로 나온다.
모바일 레이아웃등을 기본적으로 사용하는 경우라면 문제가 없지만..
반응형으로 사이트를 제작했을 경우에는, 이런 메세지가 나오면 안 되는데
모바일기기에서 접속시 이 메세지가 나오는 경우가 있다
정확하게는, 페이지 나 게시판 설정에서 '모바일뷰'가 사용 으로 체크되어있으면 무조건 나타난다
(참고로, 사이트맵에서 페이지나 게시판 생성하면 '모바일뷰' 사용이 기본으로 체크된다)
그런데, XE 는, 이 모듈 설정보다, '일반->설정' 의 '모바일뷰 사용' 여부 설정이 최우선 한다.
여기서 사용 안 함으로 처리하면 모든 모바일뷰가 일괄 사용이 안 되는데..
'모바일에서 최적화된 화면으로 보기' 를 출력하는 부분에 이 '일반->설정' 부분을 고려하지 않는 버그가 있어서 생기는 문제이다.
classes/module/ModuleHandler.class.php 파일에서
670번째 줄 즈음에..
if($type == "view" && $this->module_info->use_mobile == "Y" && Mobile::isMobileCheckByAgent() && !isset($skipAct[Context::get('act')]))
부분을 찾아서
$db_info = Context::getDBInfo();
if($type == "view" && $this->module_info->use_mobile == "Y" && $db_info->use_mobile_view == "Y" && Mobile::isMobileCheckByAgent() && !isset($skipAct[Context::get('act')]))
이렇게 고치면 해당 문구가 '모바일뷰 사용' 일때만 나와, 반응형의 경우 안 나타나게 된다.