PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.16.6
GiveWP – Donation Plugin and Fundraising Platform v4.16.6
4.16.7.2 4.16.7.1 4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.5 4.16.4 4.16.3 4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / vendor / vendor-prefixed / stellarwp / admin-notices / src / DataTransferObjects / NoticeElementProperties.php
give / vendor / vendor-prefixed / stellarwp / admin-notices / src / DataTransferObjects Last commit date
NoticeElementProperties.php 1 year ago
NoticeElementProperties.php
92 lines
1 <?php
2
3 declare(strict_types=1);
4
5
6 namespace Give\Vendors\StellarWP\AdminNotices\DataTransferObjects;
7
8 use InvalidArgumentException;
9 use Give\Vendors\StellarWP\AdminNotices\AdminNotice;
10
11 class NoticeElementProperties
12 {
13 private const CLOSE_BEHAVIOR_HIDE = 'hide';
14 private const CLOSE_BEHAVIOR_MARK_DISMISSED = 'mark-dismissed';
15
16 /**
17 * @var string custom namespace for the library instance
18 */
19 private $namespace;
20
21 /**
22 * @var string id attribute that uniquely identifies the notice
23 */
24 public $idAttribute;
25
26 /**
27 * @var string attribute to put on an element which closes the notice
28 */
29 public $customCloserAttribute;
30
31 /**
32 * @var string attribute for custom notices which specifies the location
33 */
34 public $customLocationAttribute;
35
36 /**
37 * @var string attributes to be applied to custom notices
38 */
39 public $customWrapperAttributes;
40
41 /**
42 * @since 2.0.0
43 */
44 public function __construct(AdminNotice $notice, string $namespace)
45 {
46 $this->namespace = $namespace;
47
48 $this->idAttribute = "data-stellarwp-$namespace-notice-id='{$notice->getId()}'";
49
50 $this->customLocationAttribute = "data-stellarwp-$namespace-location='{$notice->getLocation()}'";
51 $this->customWrapperAttributes = "$this->idAttribute $this->customLocationAttribute";
52
53 $this->customCloserAttribute = "data-stellarwp-$namespace-close-notice='{$notice->getId()}'";
54 }
55
56 /**
57 * @since 2.0.0
58 *
59 * @param 'hide'|'mark-dismissed' $behavior
60 */
61 public function customCloseBehaviorAttribute(string $behavior = self::CLOSE_BEHAVIOR_HIDE): string
62 {
63 if (!$this->behaviorIsValid($behavior)) {
64 throw new InvalidArgumentException('Invalid behavior for custom closer attribute.');
65 }
66
67 return "data-stellarwp-{$this->namespace}-close-notice-behavior='$behavior'";
68 }
69
70 /**
71 * @since 2.0.0
72 *
73 * @param 'hide'|'mark-dismissed' $behavior
74 */
75 public function closeAttributes(string $behavior = self::CLOSE_BEHAVIOR_HIDE): string
76 {
77 if (!$this->behaviorIsValid($behavior)) {
78 throw new InvalidArgumentException('Invalid behavior for custom closer attribute.');
79 }
80
81 return "$this->customCloserAttribute {$this->customCloseBehaviorAttribute($behavior)}";
82 }
83
84 /**
85 * @since 2.0.0
86 */
87 private function behaviorIsValid(string $behavior): bool
88 {
89 return in_array($behavior, [self::CLOSE_BEHAVIOR_HIDE, self::CLOSE_BEHAVIOR_MARK_DISMISSED], true);
90 }
91 }
92