-
Notifications
You must be signed in to change notification settings - Fork 5
/
browser.php
105 lines (78 loc) · 1.91 KB
/
browser.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<?php
/**
* @package Warp Theme Framework
* @file browser.php
* @version 6.0.7
* @author YOOtheme http://www.yootheme.com
* @copyright Copyright 2007 - 2011 YOOtheme GmbH
* @license YOOtheme Proprietary Use License (http://www.yootheme.com/license)
*/
/*
Class: BrowserWarpHelper
Browser helper class.
*/
class BrowserWarpHelper extends WarpHelper {
protected $is_mobile;
/*
Function: isMobile
Check for mobile device
Returns:
Boolean
*/
public function isMobile() {
if (is_null($this->is_mobile)) {
$this->is_mobile = false;
if (in_array($this['useragent']->os(), array('iphone', 'ipod', 'android'))) {
$this['asset']->addFile('js', 'js:mobile.js');
if ($this->get('mobile') !== null) {
$this->cookie('WarpMobile', (int) $this->get('mobile') == 0 ? 'no' : 'yes');
}
$this->is_mobile = $this->cookie('WarpMobile') != 'no';
}
}
return $this->is_mobile;
}
/*
Function: isIE6
Check for IE6 browser
Returns:
Boolean
*/
public function isIE6() {
if ($this['useragent']->browser() == 'msie' && $this['useragent']->version() == '6.0') {
if ($this->get('forwardie6') !== null) {
$this->cookie('WarpForwardie6', (int) $this->get('forwardie6') == 0 ? 'no' : 'yes');
}
return $this->cookie('WarpForwardie6') != 'yes';
}
return false;
}
/*
Function: get
Get a value from request
Parameters:
$name - Name
Returns:
Mixed
*/
public function get($name) {
return isset($_GET[$name]) ? $_GET[$name] : null;
}
/*
Function: cookie
Get/Set a cookie
Parameters:
$name - Name
$value - Value
Returns:
Mixed
*/
public function cookie($name) {
$args = func_get_args();
if (count($args) == 1) {
return isset($_COOKIE[$name]) ? $_COOKIE[$name] : null;
}
setcookie($name, $args[1], time() + 60 * 60 * 24 * 30, '/'); // expire in 30 days
$_COOKIE[$name] = $args[1];
}
}