1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
sectionmodel.php
См. документацию.
1<?php
2
3namespace Bitrix\Calendar\Access\Model;
4
5use Bitrix\Calendar\Access\AccessibleSection;
6use Bitrix\Main\Access\AccessibleItem;
7
9{
10 private static array $cache = [];
11
12 private int $id = 0;
13 private string $type = '';
14 private int $ownerId = 0;
15
16 public static function createFromId(int $itemId): AccessibleItem
17 {
18 if (!isset(static::$cache[$itemId]))
19 {
20 $model = new self();
21 $model->setId($itemId);
22 static::$cache[$itemId] = $model;
23 }
24
25 return static::$cache[$itemId];
26 }
27
28 public static function createNew(): self
29 {
30 return new self();
31 }
32
33 public static function createFromArray(array $fields): self
34 {
35 if (($fields['ID'] ?? false) && (int)$fields['ID'] > 0)
36 {
37 $model = self::createFromId((int)$fields['ID']);
38 }
39 else
40 {
41 $model = self::createNew();
42 }
43
44 if (($fields['CAL_TYPE'] ?? false) && is_string($fields['CAL_TYPE']))
45 {
46 $model->setType($fields['CAL_TYPE']);
47 }
48
49 if (($fields['OWNER_ID'] ?? false) && (int)$fields['OWNER_ID'] > 0)
50 {
51 $model->setOwnerId((int)$fields['OWNER_ID']);
52 }
53
54 return $model;
55 }
56
57 public static function createFromEventModel(EventModel $eventModel): self
58 {
59 if ($eventModel->getSectionId() > 0)
60 {
61 $model = self::createFromId($eventModel->getSectionId());
62 }
63 else
64 {
65 $model = self::createNew();
66 }
67
68 $model
69 ->setType($eventModel->getSectionType())
70 // TODO: fix me
71 // this is not right approach for group sections
72 // in group sections owner_id IS group_id, so here is potential bug on further model usages
73 // as example, in some cases extranet right check can fail
74 ->setOwnerId($eventModel->getOwnerId())
75 ;
76
77 return $model;
78 }
79
80 public static function createFromEventModelParentFields(EventModel $eventModel): self
81 {
82 if ($eventModel->getSectionId() > 0)
83 {
84 $model = self::createFromId($eventModel->getParentEventSectionId());
85 }
86 else
87 {
88 $model = self::createNew();
89 }
90
91 $model
92 ->setType($eventModel->getParentEventSectionType())
93 ->setOwnerId($eventModel->getParentEventOwnerId())
94 ;
95
96 return $model;
97 }
98
99 public function setId(int $id): self
100 {
101 $this->id = $id;
102 return $this;
103 }
104
105 public function getId(): int
106 {
107 return $this->id;
108 }
109
110 public function setType(string $type): self
111 {
112 $this->type = $type;
113 return $this;
114 }
115
116 public function getType(): string
117 {
118 return $this->type;
119 }
120
121 public function setOwnerId(int $ownerId): self
122 {
123 $this->ownerId = $ownerId;
124 return $this;
125 }
126
127 public function getOwnerId(): int
128 {
129 return $this->ownerId;
130 }
131}
$type
Определения options.php:106
static createFromArray(array $fields)
Определения sectionmodel.php:33
static createFromEventModelParentFields(EventModel $eventModel)
Определения sectionmodel.php:80
static createFromId(int $itemId)
Определения sectionmodel.php:16
static createFromEventModel(EventModel $eventModel)
Определения sectionmodel.php:57
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$fields
Определения yandex_run.php:501