Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/ilovecveti.ru/bitrix/modules/calendar/lib/sharing/link/ |
Upload File : |
<?php namespace Bitrix\Calendar\Sharing\Link; use Bitrix\Calendar\Sharing\Link\Joint\JointLinkMapper; use Bitrix\Main\Web\Json; class UserLinkMapper extends JointLinkMapper { protected const DEFAULT_SELECT = ['*', 'MEMBERS', 'MEMBERS.USER', 'MEMBERS.IMAGE']; protected function convertToObject($objectEO): ?UserLink { $sharingUserLink = (new UserLink()) ->setId($objectEO->getId()) ->setUserId($objectEO->getObjectId()) ->setDateCreate($objectEO->getDateCreate()) ->setDateExpire($objectEO->getDateExpire()) ->setActive($objectEO->getActive()) ->setHash($objectEO->getHash()) ->setMembersHash($objectEO->getMembersHash()) ->setFrequentUse($objectEO->getFrequentUse()) ; if ($objectEO->getMembers()?->count() > 0) { $sharingUserLink->setMembers((new Member\Manager())->createMembersFromEntityObject($objectEO->getMembers())); } $options = Json::decode($objectEO->getOptions() ?? ''); if (!empty($options['slotSize'])) { $sharingUserLink->setSlotSize($options['slotSize']); } $rule = (new Rule\Factory())->getRuleBySharingLink($sharingUserLink); $sharingUserLink->setSharingRule($rule); return $sharingUserLink; } /** * @param UserLink $sharingLink */ public function convertToArray($sharingLink): array { $baseArray = parent::convertToArray($sharingLink); return array_merge($baseArray, [ 'userId' => $sharingLink->getUserId(), 'slotSize' => $sharingLink->getSlotSize(), 'rule' => (new Rule\Mapper())->convertToArray($sharingLink->getSharingRule()), ]); } protected function getOptionsArray($entity): array { $options = []; if (!empty($entity->getSlotSize())) { $options['slotSize'] = $entity->getSlotSize(); } return $options; } protected function getSpecificFields($entity): array { return [ 'MEMBERS_HASH' => $entity->getMembersHash(), ]; } protected function getEntityClass(): string { return UserLink::class; } protected function getEntityName(): string { return 'Calendar sharing user link'; } }