1 | <?php |
||||
2 | /** |
||||
3 | * XOOPS kernel |
||||
4 | * |
||||
5 | * !IMPORTANT: The file should have not been created and will be removed |
||||
6 | * |
||||
7 | * You may not change or alter any portion of this comment or credits |
||||
8 | * of supporting developers from this source code or any supporting source code |
||||
9 | * which is considered copyrighted (c) material of the original comment or credit authors. |
||||
10 | * This program is distributed in the hope that it will be useful, |
||||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
||||
13 | * |
||||
14 | * @copyright (c) 2000-2016 XOOPS Project (www.xoops.org) |
||||
15 | * @license GNU GPL 2 (https://www.gnu.org/licenses/gpl-2.0.html) |
||||
16 | * @package kernel |
||||
17 | * @since 2.0.0 |
||||
18 | * @deprecated |
||||
19 | */ |
||||
20 | |||||
21 | defined('XOOPS_ROOT_PATH') || exit('Restricted access'); |
||||
22 | |||||
23 | /** |
||||
24 | * Class xos_kernel_Xoops2 |
||||
25 | */ |
||||
26 | class xos_kernel_Xoops2 |
||||
27 | { |
||||
28 | public $paths = ['XOOPS' => [], 'www' => [], 'var' => [], 'lib' => [], 'modules' => [], 'themes' => []]; |
||||
29 | |||||
30 | /** |
||||
31 | * Actual Xoops OS |
||||
32 | */ |
||||
33 | public function __construct() |
||||
34 | { |
||||
35 | $this->paths['XOOPS'] = [XOOPS_PATH, XOOPS_URL . 'browse.php']; |
||||
36 | $this->paths['www'] = [XOOPS_ROOT_PATH, XOOPS_URL]; |
||||
37 | $this->paths['var'] = [XOOPS_VAR_PATH, null]; |
||||
38 | $this->paths['lib'] = [XOOPS_PATH, XOOPS_URL . 'browse.php']; |
||||
39 | $this->paths['modules'] = [XOOPS_ROOT_PATH . '/modules', XOOPS_URL . '/modules']; |
||||
40 | $this->paths['themes'] = [XOOPS_ROOT_PATH . '/themes', XOOPS_URL . '/themes']; |
||||
41 | } |
||||
42 | |||||
43 | /** |
||||
44 | * Convert a XOOPS path to a physical one |
||||
45 | * @param $url |
||||
46 | * @param bool $virtual |
||||
47 | * @return mixed|string |
||||
48 | */ |
||||
49 | public function path($url, $virtual = false) |
||||
50 | { |
||||
51 | $path = ''; |
||||
52 | $parts = explode('/', $url, 2); |
||||
53 | |||||
54 | if (count($parts) < 2) { |
||||
55 | $root = 'www'; // Default root |
||||
56 | $path = $url; // Entire URL is treated as the path |
||||
57 | } else { |
||||
58 | [$root, $path] = $parts; |
||||
59 | } |
||||
60 | |||||
61 | if (!isset($this->paths[$root])) { |
||||
62 | [$root, $path] = ['www', $url]; |
||||
63 | } |
||||
64 | |||||
65 | if (!$virtual) { // Returns a physical path |
||||
66 | $path = $this->paths[$root][0] . '/' . $path; |
||||
67 | $path = str_replace('/', DS, $path); |
||||
68 | |||||
69 | return $path; |
||||
70 | } |
||||
71 | |||||
72 | return !isset($this->paths[$root][1]) ? '' : ($this->paths[$root][1] . '/' . $path); |
||||
73 | } |
||||
74 | |||||
75 | /** |
||||
76 | * Convert a XOOPS path to a URL |
||||
77 | * @param $url |
||||
78 | * @return mixed|string |
||||
79 | */ |
||||
80 | public function url($url) |
||||
81 | { |
||||
82 | return (false !== strpos($url, '://') ? $url : $this->path($url, true)); |
||||
83 | } |
||||
84 | |||||
85 | /** |
||||
86 | * Build a URL with the specified request params |
||||
87 | * @param $url |
||||
88 | * @param array $params |
||||
89 | * @return string |
||||
90 | */ |
||||
91 | public function buildUrl($url, $params = []) |
||||
92 | { |
||||
93 | if ($url === '.') { |
||||
94 | $url = $_SERVER['REQUEST_URI']; |
||||
95 | } |
||||
96 | $split = explode('?', $url); |
||||
97 | if (count($split) > 1) { |
||||
98 | [$url, $query] = $split; |
||||
99 | parse_str($query, $query); |
||||
100 | $params = array_merge($query, $params); |
||||
101 | } |
||||
102 | if (!empty($params)) { |
||||
103 | foreach ($params as $k => $v) { |
||||
104 | $params[$k] = $k . '=' . rawurlencode((string)$v); |
||||
105 | } |
||||
106 | $url .= '?' . implode('&', $params); |
||||
107 | } |
||||
108 | |||||
109 | return $url; |
||||
110 | } |
||||
111 | |||||
112 | /** |
||||
113 | * xos_kernel_Xoops2::pathExists() |
||||
114 | * |
||||
115 | * @param $path |
||||
116 | * @param $error_type |
||||
117 | * |
||||
118 | * @return bool |
||||
119 | */ |
||||
120 | public function pathExists($path, $error_type) |
||||
121 | { |
||||
122 | if (file_exists($path)) { |
||||
123 | return $path; |
||||
124 | } else { |
||||
125 | $GLOBALS['xoopsLogger']->triggerError($path, _XO_ER_FILENOTFOUND, __FILE__, __LINE__, $error_type); |
||||
126 | |||||
127 | return false; |
||||
128 | } |
||||
129 | } |
||||
130 | |||||
131 | /** |
||||
132 | * xos_kernel_Xoops2::gzipCompression() |
||||
133 | * |
||||
134 | * @return void |
||||
135 | */ |
||||
136 | public function gzipCompression() |
||||
137 | { |
||||
138 | /** |
||||
139 | * Disable gzip compression if PHP is run under CLI mode and needs to be refactored to work correctly |
||||
140 | */ |
||||
141 | if (empty($_SERVER['SERVER_NAME']) || substr(PHP_SAPI, 0, 3) === 'cli') { |
||||
142 | xoops_setConfigOption('gzip_compression', 0); |
||||
0 ignored issues
–
show
Deprecated Code
introduced
by
Loading history...
|
|||||
143 | } |
||||
144 | |||||
145 | if (xoops_getConfigOption('gzip_compression') == 1 && extension_loaded('zlib') && !ini_get('zlib.output_compression')) { |
||||
146 | if (@ini_get('zlib.output_compression_level') < 0) { |
||||
147 | ini_set('zlib.output_compression_level', 6); |
||||
148 | } |
||||
149 | ob_start('ob_gzhandler'); |
||||
150 | } |
||||
151 | } |
||||
152 | |||||
153 | /** |
||||
154 | * xos_kernel_Xoops2::pathTranslation() |
||||
155 | * |
||||
156 | * @return void |
||||
157 | */ |
||||
158 | public function pathTranslation() |
||||
159 | { |
||||
160 | /** |
||||
161 | * *#@+ |
||||
162 | * Host abstraction layer |
||||
163 | */ |
||||
164 | if (!isset($_SERVER['PATH_TRANSLATED']) && isset($_SERVER['SCRIPT_FILENAME'])) { |
||||
165 | $_SERVER['PATH_TRANSLATED'] = $_SERVER['SCRIPT_FILENAME']; // For Apache CGI |
||||
166 | } elseif (isset($_SERVER['PATH_TRANSLATED']) && !isset($_SERVER['SCRIPT_FILENAME'])) { |
||||
167 | $_SERVER['SCRIPT_FILENAME'] = $_SERVER['PATH_TRANSLATED']; // For IIS/2K now I think :-( |
||||
168 | } |
||||
169 | /** |
||||
170 | * User Mulitbytes |
||||
171 | */ |
||||
172 | if (empty($_SERVER['REQUEST_URI'])) { // Not defined by IIS |
||||
173 | // Under some configs, IIS makes SCRIPT_NAME point to php.exe :-( |
||||
174 | if (!(isset($_SERVER['PHP_SELF']) && ($_SERVER['REQUEST_URI'] = $_SERVER['PHP_SELF']))) { |
||||
175 | $_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME']; |
||||
176 | } |
||||
177 | |||||
178 | if (isset($_SERVER['QUERY_STRING'])) { |
||||
179 | $_SERVER['REQUEST_URI'] .= '?' . $_SERVER['QUERY_STRING']; |
||||
180 | } |
||||
181 | } |
||||
182 | } |
||||
183 | |||||
184 | /** |
||||
185 | * xos_kernel_Xoops2::themeSelect() |
||||
186 | * |
||||
187 | * @return void |
||||
188 | */ |
||||
189 | public function themeSelect() |
||||
190 | { |
||||
191 | if (!empty($_POST['xoops_theme_select']) && in_array($_POST['xoops_theme_select'], xoops_getConfigOption('theme_set_allowed'))) { |
||||
192 | xoops_setConfigOption('theme_set', $_POST['xoops_theme_select']); |
||||
0 ignored issues
–
show
The function
xoops_setConfigOption() has been deprecated.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||
193 | $_SESSION['xoopsUserTheme'] = $_POST['xoops_theme_select']; |
||||
194 | } elseif (!empty($_SESSION['xoopsUserTheme']) && in_array($_SESSION['xoopsUserTheme'], xoops_getConfigOption('theme_set_allowed'))) { |
||||
195 | xoops_setConfigOption('theme_set', $_SESSION['xoopsUserTheme']); |
||||
0 ignored issues
–
show
The function
xoops_setConfigOption() has been deprecated.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||
196 | } |
||||
197 | } |
||||
198 | } |
||||
199 |