25 private ?
array $logEntryClasses =
null;
29 $logEntryClasses = $this->getLogEntryClasses();
31 $logEntryClass = $logEntryClasses[$entityObject->getType()] ??
null;
33 if (!is_string($logEntryClass) || !is_subclass_of($logEntryClass, AbstractCollabLogEntry::class))
38 $logEntry =
new $logEntryClass(
39 id: $entityObject->getId(),
40 userId: $entityObject->getUserId(),
41 collabId: $entityObject->getCollabId(),
42 dateTime: $entityObject->getDateTime(),
45 if ($entityObject->getEntityId() > 0)
47 $logEntry->setEntity(CollabEntityFactory::getById($entityObject->getEntityId(), $entityObject->getEntityType()));
50 $logEntry->setData($entityObject->getData());
55 private function getLogEntryClasses():
array
57 if (is_array($this->logEntryClasses))
59 return $this->logEntryClasses;
62 $classes = $this->getSocialNetworkLogEntryClasses();
64 $events = EventManager::getInstance()->findEventHandlers(
'socialnetwork',
'onCollabLogEntryClassesFetch');
65 foreach ($events as
$event)
69 if (is_array($fetchedClasses))
71 $classes = array_merge($classes, $fetchedClasses);
75 $this->logEntryClasses = $classes;
77 return $this->logEntryClasses;
80 private function getSocialNetworkLogEntryClasses():
array
83 AddCalendarEventLogEntry::getEventType() => AddCalendarEventLogEntry::class,
84 AddFileLogEntry::getEventType() => AddFileLogEntry::class,
85 AddFilePublicLinkLogEntry::getEventType() => AddFilePublicLinkLogEntry::class,
86 AddTaskLogEntry::getEventType() => AddTaskLogEntry::class,
87 AddUserToCollabLogEntry::getEventType() => AddUserToCollabLogEntry::class,
88 ChangeCollabMemberRoleLogEntry::getEventType() => ChangeCollabMemberRoleLogEntry::class,
89 CompleteTaskLogEntry::getEventType() => CompleteTaskLogEntry::class,
90 CopyInvitationLinkLogEntry::getEventType() => CopyInvitationLinkLogEntry::class,
91 CreateCollabLogEntry::getEventType() => CreateCollabLogEntry::class,
92 DeleteCalendarEventLogEntry::getEventType() => DeleteCalendarEventLogEntry::class,
93 DeleteFileLogEntry::getEventType() => DeleteFileLogEntry::class,
94 DeleteTaskLogEntry::getEventType() => DeleteTaskLogEntry::class,
95 RemoveUserFromCollabLogEntry::getEventType() => RemoveUserFromCollabLogEntry::class,
96 UpdateCollabLogEntry::getEventType() => UpdateCollabLogEntry::class,