/** * @param User $user * @param $maxEmailsDisplay * * @return array */ public function getEmails(User $user, Organization $organization, $maxEmailsDisplay) { $emails = $this->em->getRepository('OroEmailBundle:Email')->getNewEmails($user, $organization, $maxEmailsDisplay); $emailsData = []; /** @var $email Email */ foreach ($emails as $element) { $isSeen = $element['seen']; $email = $element[0]; $bodyContent = ''; try { $this->emailCacheManager->ensureEmailBodyCached($email); $bodyContent = $this->htmlTagHelper->shorten($this->htmlTagHelper->stripTags($this->htmlTagHelper->purify($email->getEmailBody()->getBodyContent()))); } catch (LoadEmailBodyException $e) { // no content } $emailsData[] = ['route' => $this->router->generate('oro_email_email_reply', ['id' => $email->getId()]), 'id' => $email->getId(), 'seen' => $isSeen, 'subject' => $email->getSubject(), 'bodyContent' => $bodyContent, 'fromName' => $email->getFromName(), 'linkFromName' => $this->getFromNameLink($email)]; } return $emailsData; }
/** * {@inheritdoc} */ public function getDescription($entity) { /** @var $entity Email */ if ($entity->getEmailBody()) { $body = $entity->getEmailBody()->getBodyContent(); $content = $this->htmlTagHelper->purify($body); $content = $this->htmlTagHelper->stripTags($content); $content = $this->htmlTagHelper->shorten($content); return $content; } return null; }
/** * @dataProvider shortStringProvider */ public function testGetShort($expected, $actual, $maxLength) { $shortBody = $this->helper->shorten($actual, $maxLength); $this->assertEquals($expected, $shortBody); }