forked from jeedom/core
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.php
More file actions
128 lines (125 loc) · 4.32 KB
/
index.php
File metadata and controls
128 lines (125 loc) · 4.32 KB
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<?php
/* This file is part of Jeedom.
*
* Jeedom is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Jeedom is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Jeedom. If not, see <http://www.gnu.org/licenses/>.
*/
try {
//no config, install Jeedom!
if (!file_exists(__DIR__ . '/core/config/common.config.php')) {
header("location: install/setup.php");
}
//dunno desktop or mobile:
if (!isset($_GET['v'])) {
$useragent = (isset($_SERVER["HTTP_USER_AGENT"])) ? $_SERVER["HTTP_USER_AGENT"] : 'none';
$getParams = (stristr($useragent, "Android") || strpos($useragent, "iPod") || strpos($useragent, "iPhone") || strpos($useragent, "Mobile") || strpos($useragent, "WebOS") || strpos($useragent, "mobile") || strpos($useragent, "hp-tablet")) ? 'm' : 'd';
foreach ($_GET as $var => $value) {
if (is_array($value)) {
continue;
}
$getParams .= '&' . $var . '=' . $value;
}
$url = 'index.php?v=' . trim($getParams, '&');
if (headers_sent()) {
$_script = '<script type="text/javascript">';
$_script .= "window.location.href='$url';";
$_script .= '</script>';
echo $_script;
} else {
exit(header('Location: ' . $url));
}
die();
}
require_once __DIR__ . "/core/php/core.inc.php";
if (isset($_GET['v']) && $_GET['v'] == 'd') {
if (isset($_GET['modal'])) {
try {
include_file('core', 'authentification', 'php');
if (!isConnect()) {
throw new Exception('{{401 - Accès non autorisé}}');
}
include_file('desktop', init('modal'), 'modal', init('plugin'));
} catch (Exception $e) {
ob_end_clean();
$_div = '<div class="alert alert-danger div_alert">';
$_div .= translate::exec(displayException($e), 'desktop/' . init('p') . '.php');
$_div .= '</div>';
echo $_div;
} catch (Error $e) {
ob_end_clean();
$_div = '<div class="alert alert-danger div_alert">';
$_div .= translate::exec(displayException($e), 'desktop/' . init('p') . '.php');
$_div .= '</div>';
echo $_div;
}
} elseif (isset($_GET['configure'])) {
include_file('core', 'authentification', 'php');
include_file('plugin_info', 'configuration', 'configuration', init('plugin'));
} elseif (isset($_GET['ajax']) && $_GET['ajax'] == 1) {
try {
$title = config::byKey('product_name');
if (init('m') != '') {
try {
$plugin = plugin::byId(init('m'));
if (is_object($plugin)) {
$title = $plugin->getName() . ' - ' . config::byKey('product_name');
}
} catch (Exception $e) {
} catch (Error $e) {
}
}
include_file('core', 'authentification', 'php');
include_file('desktop', init('p'), 'php', init('m'));
} catch (Exception $e) {
ob_end_clean();
$_div = '<div class="alert alert-danger div_alert">';
$_div .= translate::exec(displayException($e), 'desktop/' . init('p') . '.php');
$_div .= '</div>';
echo $_div;
} catch (Error $e) {
ob_end_clean();
$_div = '<div class="alert alert-danger div_alert">';
$_div .= translate::exec(displayException($e), 'desktop/' . init('p') . '.php');
$_div .= '</div>';
echo $_div;
}
} else {
include_file('desktop', 'index', 'php');
}
//page title:
try {
if (init('p') != 'message' && !isset($_GET['configure']) && !isset($_GET['modal'])) {
$title = pageTitle(init('p')) . ' - ' . config::byKey('product_name');
echo '<script>document.title = "' . secureXSS($title) . '"</script>';
}
} catch (Exception $e) {
}
} elseif (isset($_GET['v']) && $_GET['v'] == 'm') {
$_fn = 'index';
$_type = 'html';
$_plugin = '';
if (isset($_GET['modal'])) {
$_fn = init('modal');
$_type = 'modalhtml';
$_plugin = init('plugin');
} elseif (isset($_GET['p']) && isset($_GET['ajax'])) {
$_fn = $_GET['p'];
$_plugin = isset($_GET['m']) ? $_GET['m'] : $_plugin;
}
include_file('mobile', $_fn, $_type, $_plugin);
} else {
echo "Unexpected error: Contact administrator";
}
} catch (Exception $e) {
echo $e->getMessage();
}