source: branches/version-2_5-dev/data/class/SC_SmartphoneUserAgent.php @ 19661

Revision 19661, 2.6 KB checked in by nanasess, 13 years ago (diff)

source:branches/camp/camp-2_5-E のマージ

  • スマートフォン対応(#787)
  • プラグイン機能(#494)
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     * $_SESSION['pc_disp'] = true の場合はPC表示。
34     *
35     * @return boolean
36     */
37    function isSmartphone() {
38        $nu = new Net_UserAgent_Mobile();
39        // SPでかつPC表示OFFの場合
40        return $nu->isSmartphone() && !SC_SmartphoneUserAgent::getSmartphonePcFlag();
41    }
42
43    /**
44     * スマートフォンかどうかを判別する。
45     *
46     * @return boolean
47     */
48    function isNonSmartphone() {
49        return !SC_SmartphoneUserAgent::isSmartphone();
50    }
51
52    /**
53     * PC表示フラグの取得
54     *
55     * @return string
56     */
57    function getSmartphonePcFlag() {
58        $_SESSION['pc_disp'] = empty($_SESSION['pc_disp']) ? false : $_SESSION['pc_disp'];
59        return $_SESSION['pc_disp'];
60    }
61
62    /**
63     * PC表示ON
64     */
65    function setPcDsiplayOn() {
66        $_SESSION['pc_disp'] = true;
67    }
68
69    /**
70     * PC表示OFF
71     */
72    function setPcDsiplayOff() {
73        $_SESSION['pc_disp'] = false;
74    }
75
76    /**
77     * スマートフォン端末の判定とリダイレクト
78     *
79     * @return void
80     */
81    function sfAutoRedirectSmartphoneSite() {
82        // SPでない場合は、処理しない
83        if (SC_SmartphoneUserAgent::isNonSmartphone()) return;
84
85
86        $url = SC_Utils_Ex::sfIsHTTPS()
87            ? SPHONE_SSL_URL
88            : SPHONE_SITE_URL
89        ;
90
91        $url .= (preg_match('|^' . URL_DIR . '(.*)$|', $_SERVER['REQUEST_URI'], $matches))
92            ? $matches[1]
93            : ''
94        ;
95
96        header("Location: ". SC_Utils_Ex::sfRmDupSlash($url));
97        exit;
98    }
99}
100?>
Note: See TracBrowser for help on using the repository browser.