그누보드 모바일이라면 if문(G5_IS_MOBILE) - 모바일일 때, PC일 때 함수
페이지 정보
조회 958회 작성일 22-05-03 10:17
본문
G5_IS_MOBILE
모바일이라면 if문
홈페이지 제작 때 모바일인지 PC인지를 구분하는 방법은 CSS의 미디어쿼리가 있다.
그러나 접속 기기 자체를 구분해서 적용할 때, 그누보드의 경우 G5_IS_MOBILE를 사용한다. 그 예와 사용 방법을 설명한다.
모바일이라면 if문(G5_IS_MOBILE) - 모바일일 때, PC일 때 함수
반응형 if문 간단 설명
CSS의 경우 @media 쿼리로 자동으로 화면 크기를 바꿔준다.
그런데 만약 화면 크기에 따른 기능 적용이 아니라, 접속기기에 따른 기능을 적용하려면 어떻게 해야 할까?
예를 들어, PC로 접속했으면 https://www.kiss7.kr로 링크를 주고, 모바일로 접속했으면 https://m.kiss7.kr로 링크를 주고 싶을 경우에 이런 함수를 사용한다.
그것은 바로 G5_IS_MOBILE다. 그누보드의 경우 기본 함수를 제공하므로 아래처럼 사용하기만 하면 된다.
단, 주의할 점이 있다.
이것은 PC버전과 모바일 버전을 따로 사용할 때만 사용이 가능하다.
만약 반응형 전용을 위해서 define('G5_USE_MOBILE', false); 가 적용되어 있다면 이 기능이 작동하지 않는다.
http://www.kiss7.kr/siteblog/27
그럴 때는 위의 링크에 있는 방법을 사용해야 한다.
모바일이라면 if문
접속한 기기가 모바일인지를 감지해서 특정 기능을 실행하는 모바일 코드는 아래와 같다.
[code]
<?php if (G5_IS_MOBILE) { ?>
실행 코드 : 모바일일 경우의 코드
<?php } else { ?>
실행 코드 : 모바일이 아닐 경우의 코드
<?php } ?>
[/code]
모바일이 아니라면 if문
그렇다면, 모바일이 아닌지를 감지하려면 어떻게 할까?
이것은 보통의 PHP구문 방법을 그대로 사용한다. 위의 if (G5_IS_MOBILE) 부분을 아래와 같이 수정하면 된다.
[code]
<?php if (!G5_IS_MOBILE) { ?>
[/code]
모바일 반응형 함수인 G5_IS_MOBILE 바로 앞에 ! 표시를 하면 "아니라면..."이라는 뜻의 if문이 된다.
즉, PC일 경우에만 적용할 코드가 있다면 이 if문을 사용하면 된다는 말이다.
G5_IS_MOBILE 함수란
그누보드는 G5_IS_MOBILE 함수를 제공한다. 모바일일 때, PC일 때를 감지해서 그에 맞게 적용할 수 있기 위함이다.
G5_IS_MOBILE의 정의는 루트 디렉토리에 있는 common.php에 들어 있다.
common.php에서 "G5_THEME_DEVICE 설정"라고 검색해 보면 아래와 같은 내용이 들어 있는 것을 볼 수 있다.
[code]
// 사용기기 설정
// 테마의 G5_THEME_DEVICE 설정에 따라 사용자 화면 제한됨
// 테마에 별도 설정이 없는 경우 config.php G5_SET_DEVICE 설정에 따라 사용자 화면 제한됨
// pc 설정 시 모바일 기기에서도 PC화면 보여짐
// mobile 설정 시 PC에서도 모바일화면 보여짐
// both 설정 시 접속 기기에 따른 화면 보여짐
//-------------------------------------------------
$is_mobile = false;
$set_device = true;
if(defined('G5_THEME_DEVICE') && G5_THEME_DEVICE != '') {
switch(G5_THEME_DEVICE) {
case 'pc':
$is_mobile = false;
$set_device = false;
break;
case 'mobile':
$is_mobile = true;
$set_device = false;
break;
default:
break;
}
}
if(defined('G5_SET_DEVICE') && $set_device) {
switch(G5_SET_DEVICE) {
case 'pc':
$is_mobile = false;
$set_device = false;
break;
case 'mobile':
$is_mobile = true;
$set_device = false;
break;
default:
break;
}
}
[/code]
위에서 보듯이 이 코드는 PC페이지, 모바일 페이지를 따로 운영할 때 사용하는 코드다.
반응형 적용을 위해 통합으로 운영할 때는 적용되지 않는다. [저작권법 표시] 원본 출처 : 키스세븐(www.kiss7.kr)
이럴 때는 is_mobile()를 사용해야 한다. (위 링크 참고)