source: branches/camp/camp-2_5-E/data/class/SC_Display.php @ 19027

Revision 19027, 2.5 KB checked in by miningbrownie, 12 years ago (diff)
Line 
1<?php
2class SC_Display{
3
4    var $response;
5
6    var $device;
7
8    var $autoSet;
9
10    // TODO php4を捨てたときに ここのコメントアウトを外してね。
11    /*
12    * const('MOBILE',1);
13    * const('SMARTPHONE',2);
14    * const('PC',4);
15    */
16
17    function SC_Display($autoGenerateHttpHeaders = true){
18        require_once(CLASS_EX_PATH."/SC_Response_Ex.php");
19        $this->response = new SC_Response_Ex();
20        $this->autoSet = $autoGenerateHttpHeaders;
21    }
22
23
24    // TODO このメソッドは、レスポンスを返すためのメソッドです。名前を絶対に変えましょう。
25    /**
26    *
27    * @param $page LC_Page
28    */
29    function hoge(LC_Page $page){
30        $this->assign($page);
31
32    }
33
34    /**
35     * デバイス毎の出力方法を自動で変更する、ファサード
36     * Enter description here ...
37     */
38    function setDevice(int $device = 4){
39        switch ($device){
40            case 1:
41                $this->response->encoding;
42                break;
43            case 2:
44
45
46                break;
47            case 4:
48
49
50                break;
51        }
52    }
53
54    /**
55     * 機種を判別する。
56     * SC_Display::MOBILE = ガラケー = 1
57     * SC_Display::SMARTPHONE = スマホ = 2
58     * SC_Display::PC = PC = 4
59     * ※PHP4の為にconstは使っていません。 1がガラケーで、2がスマホで4がPCです。
60     * @return
61     */
62    function detectDevice(){
63        $nu = new Net_UserAgent_Mobile();
64        $retDevice = 0;
65        if($nu->isMobile()){
66            $retDevice = 1;
67        }elseif ($this->isSmartphone()){
68            $retDevice = 2;
69        }else{
70            $retDevice = 4;
71        }
72
73        if($this->autoSet){
74            $this->setDevice($retDevice);
75        }
76        return $retDevice;
77    }
78
79    function isSmartphone(){
80        $useragents = array(
81            'iPhone',         // Apple iPhone
82    'iPod',           // Apple iPod touch
83    'Android',        // 1.5+ Android
84    'dream',          // Pre 1.5 Android
85    'CUPCAKE',        // 1.5+ Android
86    'blackberry9500', // Storm
87    'blackberry9530', // Storm
88    'blackberry9520', // Storm v2
89    'blackberry9550', // Storm v2
90    'blackberry9800', // Torch
91    'webOS',          // Palm Pre Experimental
92    'incognito',      // Other iPhone browser
93    'webmate'         // Other iPhone browser
94        );
95
96        $pattern = implode("|", $useragents);
97        return preg_match('/['.$pattern.']/', $_SERVER['HTTP_USER_AGENT']);
98
99    }
100
101
102    function assign(LC_Page $page){
103
104    }
105
106
107}
Note: See TracBrowser for help on using the repository browser.