/** * @param string $text * * @return string */ protected function getContentTextPlain($text) { /** * @see Conjoon_Filter_QuoteToBlockquote */ require_once 'Conjoon/Filter/QuoteToBlockquote.php'; /** * @see Conjoon_Filter_NormalizeLineFeeds */ require_once 'Conjoon/Filter/NormalizeLineFeeds.php'; /** * @see Conjoon_Filter_PlainToHtml */ require_once 'Conjoon/Filter/PlainToHtml.php'; /** * @see Conjoon_Filter_SignatureStrip */ require_once 'Conjoon/Filter/SignatureStrip.php'; $signatureStripper = new \Conjoon_Filter_SignatureStrip(); $quoteFilter = new \Conjoon_Filter_QuoteToBlockquote(); $lineFeedFilter = new \Conjoon_Filter_NormalizeLineFeeds(); $plainToHtmlFilter = new \Conjoon_Filter_PlainToHtml(); /** * @see \Zend_Filter_HtmlEntities */ require_once 'Zend/Filter/HtmlEntities.php'; $entitiesFilter = new \Zend_Filter_HtmlEntities(array('quotestyle' => ENT_COMPAT, 'charset' => 'UTF-8')); $text = $signatureStripper->filter($lineFeedFilter->filter($entitiesFilter->filter($text))); // if signature stripper returned empty messagem, return the data if (trim($text) == "") { $text = trim($text); return $text; } $startTag = "<blockquote>"; $endTag = "</blockquote>"; return $startTag . $plainToHtmlFilter->filter($quoteFilter->filter($text)) . $endTag; }
public function getProcessedData() { $data = parent::getProcessedData(); $data['contentTextHtml'] = ""; switch ($this->_context) { case self::CONTEXT_NEW: $name = $data['name']; $address = $data['address']; unset($data['name']); unset($data['type']); unset($data['address']); $data['to'] = array(); if ($address != "") { /** * @see Conjoon_Modules_Groupware_Email_Address */ require_once 'Conjoon/Modules/Groupware/Email/Address.php'; if ($name === $address) { $data['to'] = array(new Conjoon_Modules_Groupware_Email_Address(array($address))); } else { /** * @see Conjoon_Filter_EmailRecipientsToString */ require_once 'Conjoon/Filter/EmailRecipientsToString.php'; $recipientToStringFilter = new Conjoon_Filter_EmailRecipientsToString(); $str = $recipientToStringFilter->filter(array(array($address, $name))); $data['to'] = array(new Conjoon_Modules_Groupware_Email_Address(array($address, $str))); } } return $data; break; case self::CONTEXT_REPLY: if (!empty($data['replyTo'])) { $data['to'] = $data['replyTo']; } else { $data['to'] = $data['from']; } $data['cc'] = array(); $data['bcc'] = array(); break; case self::CONTEXT_REPLY_ALL: $data['userEmailAddresses'] = (array) $data['userEmailAddresses']; $merge = array(); for ($i = 0, $len = max(count($data['cc']), count($data['to'])); $i < $len; $i++) { if (isset($data['cc'][$i]) && !in_array($data['cc'][$i][0], $data['userEmailAddresses'])) { $merge[] = $data['cc'][$i]; } if (isset($data['to'][$i]) && !in_array($data['to'][$i][0], $data['userEmailAddresses'])) { $merge[] = $data['to'][$i]; } } $data['cc'] = $merge; if (!empty($data['replyTo'])) { $data['to'] = $data['replyTo']; } else { $data['to'] = $data['from']; } break; case self::CONTEXT_EDIT: break; case self::CONTEXT_FORWARD: $data['inReplyTo'] = ""; $data['bcc'] = array(); break; } // unsetting is now donw in the controller //unset($data['userEmailAddresses']); //unset($data['from']); //unset($data['replyTo']); /** * @see Conjoon_Filter_QuoteToBlockquote */ require_once 'Conjoon/Filter/QuoteToBlockquote.php'; /** * @see Conjoon_Filter_NormalizeLineFeeds */ require_once 'Conjoon/Filter/NormalizeLineFeeds.php'; /** * @see Conjoon_Filter_PlainToHtml */ require_once 'Conjoon/Filter/PlainToHtml.php'; /** * @see Conjoon_Filter_SignatureStrip */ require_once 'Conjoon/Filter/SignatureStrip.php'; $signatureStripper = new Conjoon_Filter_SignatureStrip(); $quoteFilter = new Conjoon_Filter_QuoteToBlockquote(); $lineFeedFilter = new Conjoon_Filter_NormalizeLineFeeds(); $plainToHtmlFilter = new Conjoon_Filter_PlainToHtml(); $data['contentTextPlain'] = $signatureStripper->filter($lineFeedFilter->filter($data['contentTextPlain'])); // if signature stripper returned empty messagem, return the data if (trim($data['contentTextPlain']) == "") { $data['contentTextPlain'] = trim($data['contentTextPlain']); return $data; } $startTag = ""; $endTag = ""; switch ($this->_context) { case self::CONTEXT_REPLY: case self::CONTEXT_REPLY_ALL: $startTag = "<blockquote>"; $endTag = "</blockquote>"; break; } /** * @see \Conjoon_Text_Transformer_Mail_EmailAddressToHtmlTransformer */ require_once 'Conjoon/Text/Transformer/Mail/EmailAddressToHtmlTransformer.php'; $transformer = new \Conjoon_Text_Transformer_Mail_EmailAddressToHtmlTransformer(); /** * @see \Conjoon_Filter_UrlToATag */ require_once 'Conjoon/Filter/UrlToATag.php'; $urlFilter = new \Conjoon_Filter_UrlToATag(array('target' => '_blank')); /** * @see \Conjoon\Text\Transformer\Html\SanitizeOpeningBracketForLinkTransformer */ require_once 'Conjoon/Text/Transformer/Html/SanitizeOpeningBracketForLinkTransformer.php'; $openingBracketForLinkTransformer = new \Conjoon\Text\Transformer\Html\SanitizeOpeningBracketForLinkTransformer(); $data['contentTextPlain'] = $startTag . $openingBracketForLinkTransformer->transform($transformer->transform($plainToHtmlFilter->filter($quoteFilter->filter($urlFilter->filter($data['contentTextPlain']))))) . $endTag; return $data; }