1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
userlinkmapper.php
См. документацию.
1<?php
2namespace Bitrix\Calendar\Sharing\Link;
3
4use Bitrix\Calendar\Sharing\Link\Joint\JointLinkMapper;
5use Bitrix\Main\Web\Json;
6
8{
9 protected const DEFAULT_SELECT = ['*', 'MEMBERS', 'MEMBERS.USER', 'MEMBERS.IMAGE'];
10
11 protected function convertToObject($objectEO): ?UserLink
12 {
13 $sharingUserLink = (new UserLink())
14 ->setId($objectEO->getId())
15 ->setUserId($objectEO->getObjectId())
16 ->setDateCreate($objectEO->getDateCreate())
17 ->setDateExpire($objectEO->getDateExpire())
18 ->setActive($objectEO->getActive())
19 ->setHash($objectEO->getHash())
20 ->setMembersHash($objectEO->getMembersHash())
21 ->setFrequentUse($objectEO->getFrequentUse())
22 ;
23
24 if ($objectEO->getMembers()?->count() > 0)
25 {
26 $sharingUserLink->setMembers((new Member\Manager())->createMembersFromEntityObject($objectEO->getMembers()));
27 }
28
29 $options = Json::decode($objectEO->getOptions() ?? '');
30 if (!empty($options['slotSize']))
31 {
32 $sharingUserLink->setSlotSize($options['slotSize']);
33 }
34
35 $rule = (new Rule\Factory())->getRuleBySharingLink($sharingUserLink);
36 $sharingUserLink->setSharingRule($rule);
37
38 return $sharingUserLink;
39 }
40
44 public function convertToArray($sharingLink): array
45 {
46 $baseArray = parent::convertToArray($sharingLink);
47
48 return array_merge($baseArray, [
49 'userId' => $sharingLink->getUserId(),
50 'slotSize' => $sharingLink->getSlotSize(),
51 'rule' => (new Rule\Mapper())->convertToArray($sharingLink->getSharingRule()),
52 ]);
53 }
54
55 protected function getOptionsArray($entity): array
56 {
57 $options = [];
58
59 if (!empty($entity->getSlotSize()))
60 {
61 $options['slotSize'] = $entity->getSlotSize();
62 }
63
64 return $options;
65 }
66
67 protected function getSpecificFields($entity): array
68 {
69 return [
70 'MEMBERS_HASH' => $entity->getMembersHash(),
71 ];
72 }
73
74 protected function getEntityClass(): string
75 {
76 return UserLink::class;
77 }
78
79 protected function getEntityName(): string
80 {
81 return 'Calendar sharing user link';
82 }
83}
$options
Определения commerceml2.php:49
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$entity