Beispiel #1
0
 public function onAnswerAdd(OW_Event $event)
 {
     $params = $event->getParams();
     $option = $this->service->findOption($params['optionId']);
     $userId = $params['userId'];
     $userService = BOL_UserService::getInstance();
     $question = $this->service->findQuestion($option->questionId);
     $answer = $option->text;
     $answerId = $params['id'];
     $ownerId = $question->userId;
     $questionText = UTIL_String::truncate($question->text, 100, '...');
     $questionUrl = OW::getRouter()->urlForRoute('equestions-question', array('qid' => $question->id));
     $notificationParams = array('pluginKey' => EQUESTIONS_Plugin::PLUGIN_KEY, 'action' => self::ACTION_ANSWER, 'entityType' => 'questions-answer', 'entityId' => $answerId, 'userId' => null, 'time' => time());
     $userAvatars = BOL_AvatarService::getInstance()->getDataForUserAvatars(array($userId));
     $userAvatar = $userAvatars[$userId];
     $uniqId = uniqid('notification_answer');
     $string = array('key' => EQUESTIONS_Plugin::PLUGIN_KEY . '+notifications_answer', 'vars' => array('question' => '<a class="' . $uniqId . '" href="' . $questionUrl . '" >' . $questionText . '</a>', 'user' => '<a href="' . $userAvatar['url'] . '">' . $userAvatar['title'] . '</a>', 'answer' => '<a class="' . $uniqId . '" href="' . $questionUrl . '" >' . $answer . '</a>'));
     $questionSettings = array('userContext' => array((int) $userId), 'questionId' => $question->id, 'relationId' => $question->id);
     $notificationData = array('string' => $string, 'avatar' => $userAvatar, 'questionSettings' => $questionSettings, 'uniqId' => $uniqId, 'url' => $questionUrl);
     $follows = $this->service->findFollows($question->id, null, array($userId));
     foreach ($follows as $f) {
         $notificationParams['userId'] = $f->userId;
         $event = new OW_Event('notifications.add', $notificationParams, $notificationData);
         OW::getEventManager()->trigger($event);
     }
 }