To create and publish an event to the activity app, a new IEvent
should be fetched from the activity manager and afterwards be passed to the publish()
method:
// The activity manager should be automatically injected
// by the type hint OCP\Activity\IManager, when inside a class.
// When you have a plain file without a class, you can use
// \OC::$server->getActivityManager() instead.
$event = $this->activityManager->generateEvent();
...
$this->activityManager->publish($event);
The following values must be set before publishing an event:
setApp()
setType()
- this must match an\OCP\Activity\ISetting::getIdentifier()
setAffectedUser()
setSubject()
setObject()
Additionally these values can be set:
setAuthor()
- if no author is set, the current user will be usedsetTimestamp()
- if no time is set, the current time will be usedsetMessage()
setLink()
- should be done inIProvider::parse()
setIcon()
- should be done inIProvider::parse()
The following values should not be set on publishing (are not saved), instead they should be set in IProvider::parse()
:
setParsedSubject()
setRichSubject()
setParsedMessage()
setRichMessage()
setChildEvent()