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
|
<?php
class N2UriAbstract {
/** * @var string It can be relative or absolute uri. It must not end with / * @example https://asd.com/wordpress * @example /wordpress */ var $_baseuri;
var $_currentbase = '';
public static $scheme = 'http';
static function getInstance() {
static $instance; if (!is_object($instance)) { $instance = new N2Uri(); } // if
return $instance; }
static function setBaseUri($uri) { $i = N2Uri::getInstance(); $i->_baseuri = $uri; }
static function getBaseUri() { $i = N2Uri::getInstance();
return $i->_baseuri; }
static function getFullUri() { $i = N2Uri::getInstance();
return $i->_baseuri; }
static function pathToUri($path, $protocol = true) { $i = N2Uri::getInstance();
$from = array(); $to = array();
$basePath = N2Filesystem::getBasePath(); if ($basePath != '/' && $basePath != "\\") { $from[] = $basePath; $to[] = ''; } $from[] = DIRECTORY_SEPARATOR; $to[] = '/';
return ($protocol ? $i->_baseuri : preg_replace('/^http:/', '', $i->_baseuri)) . str_replace($from, $to, str_replace('/', DIRECTORY_SEPARATOR, $path)); }
static function ajaxUri($query = '', $magento = 'nextendlibrary') { $i = N2Uri::getInstance();
return $i->_baseuri; }
static function fixrelative($uri) { if (substr($uri, 0, 1) == '/' || strpos($uri, '://') !== false) return $uri;
return self::getInstance()->_baseuri . $uri; }
static function relativetoabsolute($uri) { if (strpos($uri, '://') !== false) return $uri; $i = self::getInstance(); if (!empty($i->_baseuri) && strpos($uri, $i->_baseuri) === 0) { $uri = substr($uri, strlen($i->_baseuri)); }
return $i->_currentbase . $uri; } }
N2Loader::import("libraries.uri.uri", "platform");
|