PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 1.18
Independent Analytics – WordPress Analytics Plugin v1.18
2.15.5 2.15.4 2.15.3 2.15.2 2.15.1 2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 1.19.1 1.2 1.20.0 1.21.0 1.22.0 1.22.1 1.23.0 1.23.1 1.24.0 1.24.1 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.28.1 1.28.2 1.28.3 1.29.0 1.3 1.30.0 1.30.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0.0 2.0.1 2.1.4 2.1.5 2.1.6 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.10 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6 2.11.7 2.11.8 2.11.9 2.12.0 2.12.1 2.12.2 2.13.1 2.13.2 2.13.5 2.13.6 2.14.0 2.14.1 2.14.2 2.14.4 2.14.6 2.14.7 2.14.8 2.14.9 2.2.0 2.2.1 2.3.1 2.3.2 2.4.2 2.4.3 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.7.1 2.7.2 2.7.3 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
independent-analytics / vendor / league / plates / src / Extension / URI.php
independent-analytics / vendor / league / plates / src / Extension Last commit date
Asset.php 3 years ago ExtensionInterface.php 3 years ago URI.php 3 years ago
URI.php
100 lines
1 <?php
2
3 namespace IAWP\League\Plates\Extension;
4
5 use IAWP\League\Plates\Engine;
6 use IAWP\League\Plates\Template\Template;
7 use LogicException;
8 /**
9 * Extension that adds a number of URI checks.
10 */
11 class URI implements ExtensionInterface
12 {
13 /**
14 * Instance of the current template.
15 * @var Template
16 */
17 public $template;
18 /**
19 * The request URI.
20 * @var string
21 */
22 protected $uri;
23 /**
24 * The request URI as an array.
25 * @var array
26 */
27 protected $parts;
28 /**
29 * Create new URI instance.
30 * @param string $uri
31 */
32 public function __construct($uri)
33 {
34 $this->uri = $uri;
35 $this->parts = \explode('/', $this->uri);
36 }
37 /**
38 * Register extension functions.
39 * @param Engine $engine
40 * @return null
41 */
42 public function register(Engine $engine)
43 {
44 $engine->registerFunction('uri', array($this, 'runUri'));
45 }
46 /**
47 * Perform URI check.
48 * @param null|integer|string $var1
49 * @param mixed $var2
50 * @param mixed $var3
51 * @param mixed $var4
52 * @return mixed
53 */
54 public function runUri($var1 = null, $var2 = null, $var3 = null, $var4 = null)
55 {
56 if (\is_null($var1)) {
57 return $this->uri;
58 }
59 if (\is_numeric($var1) and \is_null($var2)) {
60 return \array_key_exists($var1, $this->parts) ? $this->parts[$var1] : null;
61 }
62 if (\is_numeric($var1) and \is_string($var2)) {
63 return $this->checkUriSegmentMatch($var1, $var2, $var3, $var4);
64 }
65 if (\is_string($var1)) {
66 return $this->checkUriRegexMatch($var1, $var2, $var3);
67 }
68 throw new LogicException('Invalid use of the uri function.');
69 }
70 /**
71 * Perform a URI segment match.
72 * @param integer $key
73 * @param string $string
74 * @param mixed $returnOnTrue
75 * @param mixed $returnOnFalse
76 * @return mixed
77 */
78 protected function checkUriSegmentMatch($key, $string, $returnOnTrue = null, $returnOnFalse = null)
79 {
80 if (\array_key_exists($key, $this->parts) && $this->parts[$key] === $string) {
81 return \is_null($returnOnTrue) ? \true : $returnOnTrue;
82 }
83 return \is_null($returnOnFalse) ? \false : $returnOnFalse;
84 }
85 /**
86 * Perform a regular express match.
87 * @param string $regex
88 * @param mixed $returnOnTrue
89 * @param mixed $returnOnFalse
90 * @return mixed
91 */
92 protected function checkUriRegexMatch($regex, $returnOnTrue = null, $returnOnFalse = null)
93 {
94 if (\preg_match('#^' . $regex . '$#', $this->uri) === 1) {
95 return \is_null($returnOnTrue) ? \true : $returnOnTrue;
96 }
97 return \is_null($returnOnFalse) ? \false : $returnOnFalse;
98 }
99 }
100