/**
  * Formats the content in order to add the welcome message,
  * the notification preference, etc
  * @param string $content
  * @param array	 $senderInfo result of api_get_user_info() or
  * GroupPortalManager:get_group_data()
  *
  * @return string
  * */
 public function formatContent($content, $senderInfo)
 {
     $hook = HookNotificationContent::create();
     if (!empty($hook)) {
         $hook->setEventData(array('content' => $content));
         $data = $hook->notifyNotificationContent(HOOK_EVENT_TYPE_PRE);
         if (isset($data['content'])) {
             $content = $data['content'];
         }
     }
     $newMessageText = $linkToNewMessage = '';
     switch ($this->type) {
         case self::NOTIFICATION_TYPE_DIRECT_MESSAGE:
             $newMessageText = $content;
             $linkToNewMessage = Display::url(get_lang('SeeMessage'), api_get_path(WEB_CODE_PATH) . 'messages/inbox.php');
             break;
         case self::NOTIFICATION_TYPE_MESSAGE:
             if (!empty($senderInfo)) {
                 $senderName = api_get_person_name($senderInfo['firstname'], $senderInfo['lastname'], null, PERSON_NAME_EMAIL_ADDRESS);
                 $newMessageText = sprintf(get_lang('YouHaveANewMessageFromX'), $senderName);
             }
             $linkToNewMessage = Display::url(get_lang('SeeMessage'), api_get_path(WEB_CODE_PATH) . 'messages/inbox.php');
             break;
         case self::NOTIFICATION_TYPE_INVITATION:
             if (!empty($senderInfo)) {
                 $senderName = api_get_person_name($senderInfo['firstname'], $senderInfo['lastname'], null, PERSON_NAME_EMAIL_ADDRESS);
                 $newMessageText = sprintf(get_lang('YouHaveANewInvitationFromX'), $senderName);
             }
             $linkToNewMessage = Display::url(get_lang('SeeInvitation'), api_get_path(WEB_CODE_PATH) . 'social/invitations.php');
             break;
         case self::NOTIFICATION_TYPE_GROUP:
             $topic_page = intval($_REQUEST['topics_page_nr']);
             if (!empty($senderInfo)) {
                 $senderName = $senderInfo['group_info']['name'];
                 $newMessageText = sprintf(get_lang('YouHaveReceivedANewMessageInTheGroupX'), $senderName);
                 $senderName = api_get_person_name($senderInfo['user_info']['firstname'], $senderInfo['user_info']['lastname'], null, PERSON_NAME_EMAIL_ADDRESS);
                 $senderName = Display::url($senderName, api_get_path(WEB_CODE_PATH) . 'social/profile.php?' . $senderInfo['user_info']['user_id']);
                 $newMessageText .= '<br />' . get_lang('User') . ': ' . $senderName;
             }
             $group_url = api_get_path(WEB_CODE_PATH) . 'social/group_topics.php?id=' . $senderInfo['group_info']['id'] . '&topic_id=' . $senderInfo['group_info']['topic_id'] . '&msg_id=' . $senderInfo['group_info']['msg_id'] . '&topics_page_nr=' . $topic_page;
             $linkToNewMessage = Display::url(get_lang('SeeMessage'), $group_url);
             break;
     }
     $preference_url = api_get_path(WEB_CODE_PATH) . 'auth/profile.php';
     // You have received a new message text
     if (!empty($newMessageText)) {
         $content = $newMessageText . '<br /><hr><br />' . $content;
     }
     // See message with link text
     if (!empty($linkToNewMessage) && api_get_setting('message.allow_message_tool') == 'true') {
         $content = $content . '<br /><br />' . $linkToNewMessage;
     }
     // You have received this message because you are subscribed text
     $content = $content . '<br /><hr><i>' . sprintf(get_lang('YouHaveReceivedThisNotificationBecauseYouAreSubscribedOrInvolvedInItToChangeYourNotificationPreferencesPleaseClickHereX'), Display::url($preference_url, $preference_url)) . '</i>';
     if (!empty($hook)) {
         $hook->setEventData(array('content' => $content));
         $data = $hook->notifyNotificationContent(HOOK_EVENT_TYPE_POST);
         if (isset($data['content'])) {
             $content = $data['content'];
         }
     }
     return $content;
 }
 /**
  * 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);
 }