source: branches/dev/data/class/GC_MobileUserAgent.php @ 11686

Revision 11686, 3.5 KB checked in by uehara, 14 years ago (diff)
  • Property svn:eol-style set to native
Line 
1<?php
2/**
3 *
4 * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved.
5 *
6 * http://www.lockon.co.jp/
7 *
8 */
9require_once(dirname(__FILE__) . '/../module/Net/UserAgent/Mobile.php');
10
11/**
12 * ·ÈÂÓüËö¤Î¾ðÊó¤ò°·¤¦¥¯¥é¥¹
13 *
14 * ÂоݤȤ¹¤ë·ÈÂÓüËö¤Ï $_SERVER ¤«¤é·èÄꤹ¤ë¡£
15 * ¤¹¤Ù¤Æ¤Î¥á¥½¥Ã¥É¤Ï¥¯¥é¥¹¥á¥½¥Ã¥É¡£
16 */
17class GC_MobileUserAgent {
18    /**
19     * ·ÈÂÓüËö¤Î¥­¥ã¥ê¥¢¤òɽ¤¹Ê¸»úÎó¤ò¼èÆÀ¤¹¤ë¡£
20     *
21     * ʸ»úÎó¤Ï docomo, ezweb, softbank ¤Î¤¤¤º¤ì¤«¡£
22     *
23     * @return string|false ·ÈÂÓüËö¤Î¥­¥ã¥ê¥¢¤òɽ¤¹Ê¸»úÎó¤òÊÖ¤¹¡£
24     *                      ·ÈÂÓüËö¤Ç¤Ï¤Ê¤¤¾ì¹ç¤Ï false ¤òÊÖ¤¹¡£
25     */
26    function getCarrier() {
27        $objAgent =& Net_UserAgent_Mobile::singleton();
28        if (Net_UserAgent_Mobile::isError($objAgent)) {
29            return false;
30        }
31
32        switch ($objAgent->getCarrierShortName()) {
33        case 'I':
34            return 'docomo';
35        case 'E':
36            return 'ezweb';
37        case 'V':
38            return 'softbank';
39        default:
40            return false;
41        }
42    }
43
44    /**
45     * ¾¡¼ê¥µ¥¤¥È¤ÇÍøÍѲÄǽ¤Ê·ÈÂÓüËö/ÍøÍѼԤÎID¤ò¼èÆÀ¤¹¤ë¡£
46     *
47     * ³Æ¥­¥ã¥ê¥¢¤Ç»ÈÍѤ¹¤ëID¤Î¼ïÎà:
48     * + docomo   ... UTN
49     * + ezweb    ... EZÈÖ¹æ
50     * + softbank ... üËö¥·¥ê¥¢¥ëÈÖ¹æ
51     *
52     * @return string|false ¼èÆÀ¤·¤¿ID¤òÊÖ¤¹¡£¼èÆÀ¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï false ¤òÊÖ¤¹¡£
53     */
54    function getId() {
55        $objAgent =& Net_UserAgent_Mobile::singleton();
56        if (Net_UserAgent_Mobile::isError($objAgent)) {
57            return false;
58        } elseif ($objAgent->isDoCoMo() || $objAgent->isVodafone()) {
59            $id = $objAgent->getSerialNumber();
60        } elseif ($objAgent->isEZweb()) {
61            $id = @$_SERVER['HTTP_X_UP_SUBNO'];
62        }
63        return isset($id) ? $id : false;
64    }
65
66    /**
67     * ·ÈÂÓüËö¤Îµ¡¼ï¤òɽ¤¹Ê¸»úÎó¤ò¼èÆÀ¤¹¤ë¡£
68     * ·ÈÂÓüËö¤Ç¤Ï¤Ê¤¤¾ì¹ç¤Ï¥æ¡¼¥¶¡¼¥¨¡¼¥¸¥§¥ó¥È¤Î̾Á°¤ò¼èÆÀ¤¹¤ë¡£(Îã: "Mozilla")
69     *
70     * @return string ·ÈÂÓüËö¤Î¥â¥Ç¥ë¤òɽ¤¹Ê¸»úÎó¤òÊÖ¤¹¡£
71     */
72    function getModel() {
73        $objAgent =& Net_UserAgent_Mobile::singleton();
74        if (Net_UserAgent_Mobile::isError($objAgent)) {
75            return 'Unknown';
76        } elseif ($objAgent->isNonMobile()) {
77            return $objAgent->getName();
78        } else {
79            return $objAgent->getModel();
80        }
81    }
82
83    /**
84     * EC-CUBE ¤¬¥µ¥Ý¡¼¥È¤¹¤ë·ÈÂÓ¥­¥ã¥ê¥¢¤«¤É¤¦¤«¤òȽÊ̤¹¤ë¡£
85     *
86     * @return boolean ¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¾ì¹ç¤Ï true¡¢¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï false ¤òÊÖ¤¹¡£
87     */
88    function isMobile() {
89        $objAgent =& Net_UserAgent_Mobile::singleton();
90        if (Net_UserAgent_Mobile::isError($objAgent)) {
91            return false;
92        } else {
93            return $objAgent->isDoCoMo() || $objAgent->isEZweb() || $objAgent->isVodafone();
94        }
95    }
96
97    /**
98     * EC-CUBE ¤¬¥µ¥Ý¡¼¥È¤¹¤ë·ÈÂÓ¥­¥ã¥ê¥¢¤«¤É¤¦¤«¤òȽÊ̤¹¤ë¡£
99     *
100     * @return boolean ·ÈÂÓüËö¤Ç¤Ï¤Ê¤¤¾ì¹ç¤Ï true¡¢¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï false ¤òÊÖ¤¹¡£
101     */
102    function isNonMobile() {
103        return !GC_MobileUserAgent::isMobile();
104    }
105
106    /**
107     * EC-CUBE ¤¬¥µ¥Ý¡¼¥È¤¹¤ë·ÈÂÓüËö¤«¤É¤¦¤«¤òȽÊ̤¹¤ë¡£
108     *
109     * @return boolean ¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¾ì¹ç¤Ï true¡¢¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï false ¤òÊÖ¤¹¡£
110     */
111    function isSupported() {
112        $objAgent =& Net_UserAgent_Mobile::singleton();
113
114        // ·ÈÂÓüËö¤À¤Èǧ¼±¤µ¤ì¤¿¤¬¡¢User-Agent ¤Î·Á¼°¤¬Ì¤ÃΤξì¹ç
115        if (Net_UserAgent_Mobile::isError($objAgent)) {
116            gfPrintLog($objAgent->toString());
117            return false;
118        }
119
120        if ($objAgent->isDoCoMo()) {
121            $arrUnsupportedSeries = array('501i', '502i', '209i', '210i');
122            $arrUnsupportedModels = array('SH821i', 'N821i', 'P821i ', 'P651ps', 'R691i', 'F671i', 'SH251i', 'SH251iS');
123            return !in_array($objAgent->getSeries(), $arrUnsupportedSeries) && !in_array($objAgent->getModel(), $arrUnsupportedModels);
124        } elseif ($objAgent->isEZweb()) {
125            return $objAgent->isWAP2();
126        } elseif ($objAgent->isVodafone()) {
127            return $objAgent->isPacketCompliant();
128        } else {
129            // ·ÈÂÓüËö¤Ç¤Ï¤Ê¤¤¾ì¹ç¤Ï¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤³¤È¤Ë¤¹¤ë¡£
130            return true;
131        }
132    }
133}
134?>
Note: See TracBrowser for help on using the repository browser.