예제 #1
0
 /**
  * @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);
 }