PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.9.2
Independent Analytics – WordPress Analytics Plugin v2.9.2
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 / IAWP / Utils / Link_Validator.php
independent-analytics / IAWP / Utils Last commit date
BladeOne.php 2 years ago CSV.php 2 years ago Calculations.php 2 years ago Currency.php 1 year ago Device.php 1 year ago Device_Cache.php 2 years ago Dir.php 2 years ago Link_Validator.php 1 year ago Number_Formatter.php 2 years ago Request.php 1 year ago Salt.php 2 years ago Security.php 2 years ago Server.php 2 years ago Singleton.php 2 years ago String_Util.php 2 years ago Timezone.php 1 year ago URL.php 1 year ago WP_Async_Request.php 2 years ago WordPress_Site_Date_Format_Pattern.php 2 years ago
Link_Validator.php
71 lines
1 <?php
2
3 namespace IAWP\Utils;
4
5 use IAWP\Click_Tracking;
6 use IAWPSCOPED\League\Uri\Uri;
7 /** @internal */
8 class Link_Validator
9 {
10 public static function error_messages()
11 {
12 return ['empty-name' => \__('Name cannot be empty.', 'independent-analytics'), 'empty-value' => \__('Value cannot be empty.', 'independent-analytics'), 'invalid-type' => \__('Invalid type.', 'independent-analytics'), 'class-number' => \__('Class cannot start with a number or special character.', 'independent-analytics'), 'class-space' => \__('Class cannot contain spaces.', 'independent-analytics'), 'class-characters' => \__('Class cannot contain special characters besides "-" and "_".', 'independent-analytics'), 'invalid-extension' => \__('Invalid Extension.', 'independent-analytics'), 'invalid-protocol' => \__('Invalid Protocol.', 'independent-analytics'), 'invalid-domain' => \__('Invalid domain.', 'independent-analytics'), 'invalid-subdirectory' => \__('Invalid characters in subdirectory.', 'independent-analytics')];
13 }
14 public static function validate(string $property, string $value, string $type)
15 {
16 if ($property == 'name') {
17 if (\trim($value) == '') {
18 return 'empty-name';
19 }
20 } elseif ($property == 'type') {
21 if (!\array_key_exists($value, Click_Tracking::types())) {
22 return 'invalid-type';
23 }
24 } elseif ($property == 'value') {
25 if (\trim($value) == '') {
26 return 'empty-value';
27 }
28 if ($type == 'class') {
29 if (!\preg_match('/[a-zA-Z]/', \substr($value, 0, 1))) {
30 return 'class-number';
31 } elseif (\preg_match('/\\s/', $value)) {
32 return 'class-space';
33 } elseif (\preg_match('/[^a-zA-Z0-9_-]/', $value)) {
34 return 'class-characters';
35 }
36 } elseif ($type == 'extension') {
37 if (!\in_array($value, Click_Tracking::extensions())) {
38 return 'invalid-extension';
39 }
40 } elseif ($type == 'protocol') {
41 if (!\in_array($value, Click_Tracking::protocols())) {
42 return 'invalid-protocol';
43 }
44 } elseif ($type == 'domain') {
45 if (!self::is_valid_domain($value)) {
46 return 'invalid-domain';
47 }
48 } elseif ($type == 'subdirectory') {
49 if (\preg_match("/[^A-Za-z0-9-._~!\$&'()*+,;=:@\\/]/", $value)) {
50 return 'invalid-subdirectory';
51 }
52 }
53 }
54 return \false;
55 }
56 public static function is_valid_domain(string $domain)
57 {
58 return \preg_match('/^(http[s]?\\:\\/\\/)?((\\w+)\\.)?(([\\w-]+)+)(\\.[\\w-]+){1,2}$/', $domain);
59 }
60 public static function sanitize_domain($domain)
61 {
62 $domain = \strpos($domain, 'http') !== 0 ? "http://{$domain}" : $domain;
63 $components = Uri::createFromString($domain);
64 return $components->getHost();
65 }
66 public static function sanitize_subdirectory($subdirectory)
67 {
68 return \sanitize_text_field(\trim($subdirectory, '/'));
69 }
70 }
71