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); } }