PluginProbe
Independent Analytics – WordPress Analytics Plugin / 2.14.0
Independent Analytics – WordPress Analytics Plugin v2.14.0
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 All 120 releases
independent-analytics / IAWP / Favicon / Favicon.php
Favicon.php
49 lines 1.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace IAWP\Favicon;
4
5 use IAWP\Known_Referrers;
6 /** @internal */
7 class Favicon
8 {
9 public string $domain;
10 public function __construct(string $domain)
11 {
12 $group = Known_Referrers::get_group_for($domain);
13 if (\is_array($group)) {
14 $this->domain = $group['domain'];
15 } else {
16 $this->domain = $domain;
17 }
18 }
19 public function file_name() : string
20 {
21 $sanitized = \preg_replace('/[^a-z0-9]/', '-', \strtolower($this->domain));
22 if (\strlen($sanitized) > 100) {
23 $sanitized = \substr($sanitized, 0, 100);
24 }
25 $hash = \substr(\md5($this->domain), 0, 6);
26 return $sanitized . '-' . $hash . '.png';
27 }
28 public function exists() : bool
29 {
30 return $this->url() !== null;
31 }
32 public function url() : ?string
33 {
34 $path_in_plugin = 'img/favicons/' . $this->file_name();
35 if (\file_exists(\IAWPSCOPED\iawp_path_to($path_in_plugin))) {
36 return \IAWPSCOPED\iawp_url_to($path_in_plugin);
37 }
38 $path_in_uploads = 'iawp-favicons/' . $this->file_name();
39 if (\file_exists(\IAWPSCOPED\iawp_upload_path_to($path_in_uploads))) {
40 return \IAWPSCOPED\iawp_upload_url_to($path_in_uploads);
41 }
42 return null;
43 }
44 public static function for(string $domain) : self
45 {
46 return new self($domain);
47 }
48 }
49