PluginProbe ʕ •ᴥ•ʔ
FAPI Member / 2.2.24
FAPI Member v2.2.24
2.2.33 2.2.32 trunk 1.9.47 2.1.18 2.2.24 2.2.25 2.2.26 2.2.28 2.2.29 2.2.30 2.2.31
fapi-member / src / Model / MemberLevel.php
fapi-member / src / Model Last commit date
Enums 11 months ago ApiConnection.php 11 months ago MemberLevel.php 11 months ago MemberSection.php 11 months ago Membership.php 11 months ago MembershipChange.php 11 months ago Page.php 11 months ago Settings.php 11 months ago User.php 11 months ago
MemberLevel.php
103 lines
1 <?php declare(strict_types=1);
2
3 namespace FapiMember\Model;
4
5 use FapiMember\Library\SmartEmailing\Types\IntArray;
6 use FapiMember\Library\SmartEmailing\Types\IntType;
7 use FapiMember\Library\SmartEmailing\Types\StringType;
8
9 class MemberLevel
10 {
11 protected int $id;
12 protected string $name;
13 protected int|null $parentId;
14 protected string|null $unlockType;
15 protected array|null $pageIds;
16 protected int|null $noAccessPageId;
17 protected int|null $loginPageId;
18 protected int|null $afterLoginPageId;
19
20 public function __construct($data)
21 {
22 $this->id = IntType::extract($data, 'id');
23 $this->name = StringType::extract($data ,'name');
24
25 $parentId = IntType::extractOrNull($data, 'parent_id');
26 $this->parentId = $parentId === 0
27 ? null
28 : $parentId;
29
30 $this->unlockType = StringType::extractOrNull($data, 'unlock_type');
31
32 $this->pageIds = IntArray::extract($data, 'page_ids');
33 $this->noAccessPageId = IntType::extractOrNull($data, 'no_access_page_id');
34 $this->loginPageId = IntType::extractOrNull($data, 'login_page_id');
35 $this->afterLoginPageId = IntType::extractOrNull($data, 'after_login_page_id');
36 }
37
38 public function getId(): int
39 {
40 return $this->id;
41 }
42
43 public function getName(): string
44 {
45 return $this->name;
46 }
47
48 public function getParentId(): int|null
49 {
50 return $this->parentId;
51 }
52
53 public function getUnlockType(): string|null
54 {
55 return $this->unlockType;
56 }
57
58 /** @return array<int> */
59 public function getPageIds(): array
60 {
61 if ($this->pageIds === null) {
62 return [];
63 }
64
65 return $this->pageIds;
66 }
67
68 public function getNoAccessPageId(): int|null
69 {
70 return $this->noAccessPageId;
71 }
72
73 public function getLoginPageId(): int|null
74 {
75 return $this->loginPageId;
76 }
77
78 public function getAfterLoginPageId(): int|null
79 {
80 return $this->afterLoginPageId;
81 }
82
83 public function isSection(): bool
84 {
85 return ($this->parentId === null);
86 }
87
88 public function toArray(): array
89 {
90 return [
91 'id' => $this->id,
92 'parent_id' => $this->parentId,
93 'name' => $this->name,
94 'unlock_type' => $this->unlockType,
95 'page_ids' => $this->pageIds,
96 'no_access_page_id' => $this->noAccessPageId,
97 'login_page_id' => $this->loginPageId,
98 'after_login_page_id' => $this->afterLoginPageId,
99 ];
100 }
101
102 }
103