PluginProbe
VikBooking Hotel Booking Engine & PMS / 1.8.16
VikBooking Hotel Booking Engine & PMS v1.8.16
1.8.16 1.8.15 1.8.14 1.8.13 1.8.12 1.8.11 1.8.10 1.8.9 1.8.6 1.8.7 1.8.8 trunk 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 All 37 releases
← All changes | admin/helpers/src/platform/uri/aware.php +60 -0 1.6.3 → 1.8.16 View file →
@@ -1,0 +1,60 @@
1 +<?php
2 +/**
3 + * @package VikBooking
4 + * @subpackage core
5 + * @author E4J s.r.l.
6 + * @copyright Copyright (C) 2021 E4J s.r.l. All Rights Reserved.
7 + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
8 + * @link https://vikwp.com
9 + */
10 +
11 +// No direct access
12 +defined('ABSPATH') or die('No script kiddies please!');
13 +
14 +/**
15 + * Adapter used to implement URI commons methods between the platform interfaces.
16 + *
17 + * @since 1.5
18 + */
19 +abstract class VBOPlatformUriAware implements VBOPlatformUriInterface
20 +{
21 + /**
22 + * Converts the given absolute path into a reachable URL.
23 + *
24 + * @param string $path The absolute path.
25 + * @param boolean $relative True to receive a relative path.
26 + *
27 + * @return mixed The resulting URL on success, null otherwise.
28 + */
29 + public function getUrlFromPath($path, $relative = false)
30 + {
31 + // get platform base path
32 + $base = $this->getAbsolutePath();
33 +
34 + if (strpos($path, $base) !== 0)
35 + {
36 + // The path doesn't start with the base path of the site...
37 + // Probably the path cannot be reached via URL.
38 + return null;
39 + }
40 +
41 + // remove initial path
42 + $path = str_replace($base, '', $path);
43 + // remove initial directory separator
44 + $path = preg_replace("/^[\/\\\\]/", '', $path);
45 +
46 + if (DIRECTORY_SEPARATOR === '\\')
47 + {
48 + // replace Windows DS
49 + $path = preg_replace("[\\\\]", '/', $path);
50 + }
51 +
52 + if ($relative)
53 + {
54 + return $path;
55 + }
56 +
57 + // rebuild URL
58 + return JUri::root() . $path;
59 + }
60 +}