getCarrierShortName()) { case 'I': return 'docomo'; case 'E': return 'ezweb'; case 'V': return 'softbank'; case 'S': return 'softbank'; default: return false; } } /** * 勝手サイトで利用可能な携帯端末/利用者のIDを取得する。 * * 各キャリアで使用するIDの種類: * + docomo ... UTN * + ezweb ... EZ番号 * + softbank ... 端末シリアル番号 * * @return string|false 取得したIDを返す。取得できなかった場合は false を返す。 */ function getId() { $objAgent =& Net_UserAgent_Mobile::singleton(); if (Net_UserAgent_Mobile::isError($objAgent)) { return false; } elseif ($objAgent->isDoCoMo() || $objAgent->isVodafone()) { $id = $objAgent->getSerialNumber(); } elseif ($objAgent->isEZweb()) { $id = @$_SERVER['HTTP_X_UP_SUBNO']; } return isset($id) ? $id : false; } /** * 携帯端末の機種を表す文字列を取得する。 * 携帯端末ではない場合はユーザーエージェントの名前を取得する。(例: "Mozilla") * * @return string 携帯端末のモデルを表す文字列を返す。 */ function getModel() { $objAgent =& Net_UserAgent_Mobile::singleton(); if (Net_UserAgent_Mobile::isError($objAgent)) { return 'Unknown'; } elseif ($objAgent->isNonMobile()) { return $objAgent->getName(); } else { return $objAgent->getModel(); } } /** * EC-CUBE がサポートする携帯キャリアかどうかを判別する。 * * @return boolean サポートしている場合は true、それ以外の場合は false を返す。 */ function isMobile() { $objAgent =& Net_UserAgent_Mobile::singleton(); if (Net_UserAgent_Mobile::isError($objAgent)) { return false; } else { return $objAgent->isDoCoMo() || $objAgent->isEZweb() || $objAgent->isVodafone(); } } /** * EC-CUBE がサポートする携帯キャリアかどうかを判別する。 * * @return boolean 携帯端末ではない場合は true、それ以外の場合は false を返す。 */ function isNonMobile() { return !SC_MobileUserAgent::isMobile(); } /** * EC-CUBE がサポートする携帯端末かどうかを判別する。 * * @return boolean サポートしている場合は true、それ以外の場合は false を返す。 */ function isSupported() { $objAgent =& Net_UserAgent_Mobile::singleton(); // 携帯端末だと認識されたが、User-Agent の形式が未知の場合 if (Net_UserAgent_Mobile::isError($objAgent)) { GC_Utils_Ex::gfPrintLog($objAgent->toString()); return false; } if ($objAgent->isDoCoMo()) { $arrUnsupportedSeries = array('501i', '502i', '209i', '210i'); $arrUnsupportedModels = array('SH821i', 'N821i', 'P821i ', 'P651ps', 'R691i', 'F671i', 'SH251i', 'SH251iS'); return !in_array($objAgent->getSeries(), $arrUnsupportedSeries) && !in_array($objAgent->getModel(), $arrUnsupportedModels); } elseif ($objAgent->isEZweb()) { return $objAgent->isWAP2(); } elseif ($objAgent->isVodafone()) { return $objAgent->isPacketCompliant(); } else { // 携帯端末ではない場合はサポートしていることにする。 return true; } } } ?>