PluginProbe ʕ •ᴥ•ʔ
Download Manager / trunk
Download Manager vtrunk
3.3.62 3.3.61 3.3.60 3.3.59 3.3.58 3.3.57 3.3.56 trunk 2.1.3 2.3.0 2.5.96 2.5.97 2.6.2 2.6.96 2.8.3 2.9.99 3.0.4 3.1.05 3.1.07 3.1.08 3.1.11 3.1.12 3.1.14 3.1.17 3.1.18 3.1.22 3.1.23 3.1.24 3.1.25 3.1.26 3.1.27 3.1.28 3.2.04 3.2.13 3.2.14 3.2.16 3.2.18 3.2.19 3.2.21 3.2.22 3.2.23 3.2.24 3.2.25 3.2.27 3.2.28 3.2.29 3.2.30 3.2.31 3.2.32 3.2.33 3.2.34 3.2.35 3.2.37 3.2.38 3.2.39 3.2.40 3.2.41 3.2.42 3.2.43 3.2.44 3.2.45 3.2.46 3.2.47 3.2.48 3.2.49 3.2.50 3.2.51 3.2.52 3.2.53 3.2.54 3.2.55 3.2.56 3.2.57 3.2.58 3.2.59 3.2.60 3.2.61 3.2.63 3.2.64 3.2.65 3.2.66 3.2.67 3.2.68 3.2.69 3.2.70 3.2.71 3.2.72 3.2.73 3.2.74 3.2.75 3.2.76 3.2.77 3.2.78 3.2.79 3.2.80 3.2.81 3.2.82 3.2.83 3.2.84 3.2.85 3.2.86 3.2.87 3.2.88 3.2.89 3.2.90 3.2.91 3.2.92 3.2.93 3.2.94 3.2.95 3.2.96 3.2.97 3.2.98 3.2.99 3.3.00 3.3.01 3.3.02 3.3.03 3.3.04 3.3.05 3.3.06 3.3.07 3.3.08 3.3.09 3.3.10 3.3.11 3.3.12 3.3.13 3.3.14 3.3.15 3.3.16 3.3.17 3.3.18 3.3.19 3.3.20 3.3.21 3.3.22 3.3.23 3.3.24 3.3.25 3.3.26 3.3.27 3.3.28 3.3.29 3.3.30 3.3.31 3.3.32 3.3.33 3.3.34 3.3.35 3.3.36 3.3.37 3.3.38 3.3.39 3.3.40 3.3.41 3.3.42 3.3.43 3.3.44 3.3.45 3.3.46 3.3.47 3.3.48 3.3.49 3.3.50 3.3.51 3.3.52 3.3.53 3.3.54 3.3.55
download-manager / src / __ / HTML / Element.php
download-manager / src / __ / HTML Last commit date
Element.php 1 year ago
Element.php
62 lines
1 <?php
2
3 namespace WPDM\__\HTML;
4
5 class Element
6 {
7 protected string $tag;
8 protected array $attributes = [];
9 protected string $content = '';
10 protected bool $selfClosing;
11
12 public function __construct(string $tag, bool $selfClosing = false)
13 {
14 $this->tag = $tag;
15 $this->selfClosing = $selfClosing;
16 }
17
18 public function attr(string $key, string $value): self
19 {
20 $this->attributes[$key] = $value;
21 return $this;
22 }
23
24 public function attrs(array $attributes): self
25 {
26 foreach ($attributes as $key => $value) {
27 $this->attr($key, $value);
28 }
29 return $this;
30 }
31
32 public function data(string $key, string $value): self
33 {
34 return $this->attr("data-{$key}", $value);
35 }
36
37 public function content(string $content): self
38 {
39 $this->content = $content;
40 return $this;
41 }
42
43 public function render(): string
44 {
45 $attrString = '';
46 foreach ($this->attributes as $key => $value) {
47 $attrString .= " {$key}='" . htmlspecialchars($value, ENT_QUOTES) . "'";
48 }
49
50 if ($this->selfClosing) {
51 return "<{$this->tag}{$attrString} />";
52 }
53
54 return "<{$this->tag}{$attrString}>{$this->content}</{$this->tag}>";
55 }
56
57 public function __toString(): string
58 {
59 return $this->render();
60 }
61 }
62