/** * @param string $title * @param array $senderInfo * * @return string */ public function formatTitle($title, $senderInfo) { $hook = HookNotificationTitle::create(); if (!empty($hook)) { $hook->setEventData(array('title' => $title)); $data = $hook->notifyNotificationTitle(HOOK_EVENT_TYPE_PRE); if (isset($data['title'])) { $title = $data['title']; } } $newTitle = $this->getTitlePrefix(); switch ($this->type) { case self::NOTIFICATION_TYPE_MESSAGE: if (!empty($senderInfo)) { $senderName = api_get_person_name($senderInfo['firstname'], $senderInfo['lastname'], null, PERSON_NAME_EMAIL_ADDRESS); $newTitle .= sprintf(get_lang('YouHaveANewMessageFromX'), $senderName); } break; case self::NOTIFICATION_TYPE_DIRECT_MESSAGE: $newTitle = $title; break; case self::NOTIFICATION_TYPE_INVITATION: if (!empty($senderInfo)) { $senderName = api_get_person_name($senderInfo['firstname'], $senderInfo['lastname'], null, PERSON_NAME_EMAIL_ADDRESS); $newTitle .= sprintf(get_lang('YouHaveANewInvitationFromX'), $senderName); } break; case self::NOTIFICATION_TYPE_GROUP: if (!empty($senderInfo)) { $senderName = $senderInfo['group_info']['name']; $newTitle .= sprintf(get_lang('YouHaveReceivedANewMessageInTheGroupX'), $senderName); $senderName = api_get_person_name($senderInfo['user_info']['firstname'], $senderInfo['user_info']['lastname'], null, PERSON_NAME_EMAIL_ADDRESS); $newTitle .= $senderName; } break; } if (!empty($hook)) { $hook->setEventData(array('title' => $newTitle)); $data = $hook->notifyNotificationTitle(HOOK_EVENT_TYPE_POST); if (isset($data['title'])) { $newTitle = $data['title']; } } return $newTitle; }
/** * This method will call the Hook management deleteHook to disable Hook observer from this plugin * @return int */ public function uninstallHook() { $hookObserver = HookAdvancedSubscription::create(); HookAdminBlock::create()->detach($hookObserver); HookWSRegistration::create()->detach($hookObserver); HookNotificationContent::create()->detach($hookObserver); HookNotificationTitle::create()->detach($hookObserver); }