25 if (empty($mentions)) {
30 $notified = (array)
$entity->_mentioned_usernames;
31 $entity->_mentioned_usernames = array_merge($notified, $mentions);
39 'metadata_name_value_pairs' => [
48 $preference =
$user->getNotificationSettings(
'mentions');
49 $preference = array_keys(array_filter($preference));
50 if (empty($preference)) {
58 unset(
$result[$this->event->getActorGUID()]);
67 $lan_key =
'notification:mentions:subject';
69 $lan_key =
"notification:{$this->event->getDescription()}:subject";
79 $entity = $this->getEventEntity();
81 $lan_key =
'notification:mentions:body';
83 $lan_key =
"notification:{$this->event->getDescription()}:body";
87 $this->getEventActor()?->getDisplayName(),
129 $entity = $this->getEventEntity();
135 $metadata_fields = $this->getMetadataFields();
137 foreach ($metadata_fields as
$field) {
153 preg_match_all(HtmlFormatter::MENTION_REGEX,
$text, $matches);
157 $text_mentions = array_values(array_unique(array_filter($text_mentions)));
159 $text_mentions = array_map(
function($mention) {
160 return rtrim($mention,
'.');
169 $text_mentions = (array)
_elgg_services()->events->triggerResults(
'usernames',
'mentions',
$params, $text_mentions);
177 return $this->filterMentions(
$result);
189 $entity = $this->getEventEntity();
194 $already_notified = (array)
$entity->_mentioned_usernames;
196 return array_diff($mentions, $already_notified);
if(! $annotation->delete()) $lan_key
$params
Saves global plugin settings.
return[ 'admin/delete_admin_notices'=>['access'=> 'admin'], 'admin/menu/save'=>['access'=> 'admin'], 'admin/plugins/activate'=>['access'=> 'admin'], 'admin/plugins/activate_all'=>['access'=> 'admin'], 'admin/plugins/deactivate'=>['access'=> 'admin'], 'admin/plugins/deactivate_all'=>['access'=> 'admin'], 'admin/plugins/set_priority'=>['access'=> 'admin'], 'admin/security/security_txt'=>['access'=> 'admin'], 'admin/security/settings'=>['access'=> 'admin'], 'admin/security/regenerate_site_secret'=>['access'=> 'admin'], 'admin/site/cache/invalidate'=>['access'=> 'admin'], 'admin/site/flush_cache'=>['access'=> 'admin'], 'admin/site/icons'=>['access'=> 'admin'], 'admin/site/set_maintenance_mode'=>['access'=> 'admin'], 'admin/site/set_robots'=>['access'=> 'admin'], 'admin/site/theme'=>['access'=> 'admin'], 'admin/site/unlock_upgrade'=>['access'=> 'admin'], 'admin/site/settings'=>['access'=> 'admin'], 'admin/upgrade'=>['access'=> 'admin'], 'admin/upgrade/reset'=>['access'=> 'admin'], 'admin/user/ban'=>['access'=> 'admin'], 'admin/user/bulk/ban'=>['access'=> 'admin'], 'admin/user/bulk/delete'=>['access'=> 'admin'], 'admin/user/bulk/unban'=>['access'=> 'admin'], 'admin/user/bulk/validate'=>['access'=> 'admin'], 'admin/user/change_email'=>['access'=> 'admin'], 'admin/user/delete'=>['access'=> 'admin'], 'admin/user/login_as'=>['access'=> 'admin'], 'admin/user/logout_as'=>[], 'admin/user/makeadmin'=>['access'=> 'admin'], 'admin/user/resetpassword'=>['access'=> 'admin'], 'admin/user/removeadmin'=>['access'=> 'admin'], 'admin/user/unban'=>['access'=> 'admin'], 'admin/user/validate'=>['access'=> 'admin'], 'annotation/delete'=>[], 'avatar/upload'=>[], 'comment/save'=>[], 'diagnostics/download'=>['access'=> 'admin'], 'entity/chooserestoredestination'=>[], 'entity/delete'=>[], 'entity/mute'=>[], 'entity/restore'=>[], 'entity/subscribe'=>[], 'entity/trash'=>[], 'entity/unmute'=>[], 'entity/unsubscribe'=>[], 'login'=>['access'=> 'logged_out'], 'logout'=>[], 'notifications/mute'=>['access'=> 'public'], 'plugins/settings/remove'=>['access'=> 'admin'], 'plugins/settings/save'=>['access'=> 'admin'], 'plugins/usersettings/save'=>[], 'register'=>['access'=> 'logged_out', 'middleware'=>[\Elgg\Router\Middleware\RegistrationAllowedGatekeeper::class,],], 'river/delete'=>[], 'settings/notifications'=>[], 'settings/notifications/subscriptions'=>[], 'user/changepassword'=>['access'=> 'public'], 'user/requestnewpassword'=>['access'=> 'public'], 'useradd'=>['access'=> 'admin'], 'usersettings/save'=>[], 'widgets/add'=>[], 'widgets/delete'=>[], 'widgets/move'=>[], 'widgets/save'=>[],]
if(empty($user_guids)) $users
Mentions notification handler.
addMuteLink()
{Add a mute link in the email notification.bool}
filterMentions(array $mentions)
Filter mentions.
getMentions()
Get usernames which are mentioned in the configured metadata fields.
getNotificationBody(\ElggUser $recipient, string $method)
{Get body for the notification.Plugin can define a subtype specific body simply by providing a transl...
getMetadataFields()
Get the metadata fields to check for mentions.
getSubscriptions()
{Returns subscriptions for the event.array}
getNotificationSubject(\ElggUser $recipient, string $method)
{Get subject for the notification.Plugins can define a subtype specific subject simply by providing a...
static isConfigurableForUser(\ElggUser $user)
{Can this event be configured for a specific user.the user to check forbool 4.1}
static isConfigurableForGroup(\ElggGroup $group)
{Can this event be configured for a specific group.For example this can be based on a group tools opt...
Notification Event Handler handles preparation of a notification.
getEventEntity()
Get the entity from the notification event.
_elgg_services()
Get the global service provider.
elgg_extract($key, $array, $default=null, bool $strict=true)
Checks for $array[$key] and returns its value if it exists, else returns $default.
elgg_get_entities(array $options=[])
Fetches/counts entities or performs a calculation on their properties.
elgg_language_key_exists(string $key, string $language='en')
Check if a given language key exists.
elgg_echo(string $message_key, array $args=[], string $language='')
Elgg language module Functions to manage language and translations.
if(!elgg_get_config('trash_enabled')) $group