source: branches/camp/camp-2_5-E/data/class/SC_SmartphoneUserAgent.php @ 19029

Revision 19029, 2.7 KB checked in by no61, 12 years ago (diff)

スマートフォンの判定とリダイレクト

Line 
1<?php
2/*
3 * This file is part of EC-CUBE
4 *
5 * Copyright(c) 2000-2010 LOCKON CO.,LTD. All Rights Reserved.
6 *
7 * http://www.lockon.co.jp/
8 *
9 * This program is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License
11 * as published by the Free Software Foundation; either version 2
12 * of the License, or (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
22 */
23require_once(dirname(__FILE__) . '/../module/Net/UserAgent/Mobile.php');
24
25/**
26 * スマートフォンの情報を扱うクラス
27 *
28 */
29class SC_SmartphoneUserAgent {
30
31    /**
32     * スマートフォンかどうかを判別する。
33     *
34     * @return boolean
35     */
36    function isSmartphone() {
37        $objAgent =& Net_UserAgent_Mobile::singleton();
38        if (Net_UserAgent_Mobile::isError($objAgent)) {
39            return false;
40        } else {
41            return SC_SmartphoneUserAgent::isSmartPhone();
42        }
43    }
44
45    /**
46     * スマートフォンかどうかを判別する。
47     *
48     * @return boolean
49     */
50    function isNonSmartphone() {
51        return !SC_SmartphoneUserAgent::isSmartphone();
52    }
53
54    /**
55     * PC表示フラグの取得
56     *
57     * @return string
58     */
59    function getSmartphonePcFlag() {
60        return SC_Session::GetSession('pc_disp');
61    }
62
63    /**
64     * PC表示ON
65     */
66    function setPcDsiplayOn() {
67        SC_Session::SetSession('pc_disp', true);
68    }
69
70    /**
71     * PC表示OFF
72     */
73    function setPcDsiplayOff() {
74        SC_Session::SetSession('pc_disp', false);
75    }
76
77    /**
78     * スマートフォン端末の判定とリダイレクト
79     *
80     * @return void
81     */
82    function sfAutoRedirectSmartphoneSite() {
83        // SPでない場合は、処理しない
84        if (SC_SmartphoneUserAgent::isNonSmartphone()) return;
85        // SPで、PC表示がtrueの場合は、処理しない
86        if (SC_SmartphoneUserAgent::isSmartphone() && SC_SmartphoneUserAgent::getSphonePcFlag()) return;
87
88        $url = SC_Utils_Ex::sfIsHTTPS()
89            ? SPHONE_SSL_URL
90            : SPHONE_SITE_URL
91        ;
92
93        $url .= (preg_match('|^' . URL_DIR . '(.*)$|', $_SERVER['REQUEST_URI'], $matches))
94            ? $matches[1]
95            : ''
96        ;
97
98        header("Location: ". SC_Utils_Ex::sfRmDupSlash($url));
99        exit;
100    }
101}
102?>
Note: See TracBrowser for help on using the repository browser.