/** * @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(); if ($data['body'] == "") { $data['body'] = " "; } else { /** * @see Conjoon_Filter_UrlToATag */ require_once 'Conjoon/Filter/UrlToATag.php'; /** * @see Conjoon_Filter_QuoteToBlockquote */ require_once 'Conjoon/Filter/QuoteToBlockquote.php'; /** * @see Conjoon_Filter_SignatureWrap */ require_once 'Conjoon/Filter/SignatureWrap.php'; /** * @see Conjoon_Filter_NormalizeLineFeeds */ require_once 'Conjoon/Filter/NormalizeLineFeeds.php'; /** * @see Conjoon_Filter_PlainToHtml */ require_once 'Conjoon/Filter/PlainToHtml.php'; /** * @see Conjoon_Filter_EmoticonReplacement */ require_once 'Conjoon/Filter/EmoticonReplacement.php'; $urlFilter = new Conjoon_Filter_UrlToATag(array('target' => '_blank')); $quoteFilter = new Conjoon_Filter_QuoteToBlockquote(); $lineFeedFilter = new Conjoon_Filter_NormalizeLineFeeds(); $signatureFilter = new Conjoon_Filter_SignatureWrap('<div class="signature">', '</div>'); $plainToHtmlFilter = new Conjoon_Filter_PlainToHtml(); $emoticonFilter = new Conjoon_Filter_EmoticonReplacement(array('O:-)' => '<span class="emoticon innocent"></span>', ':-)' => '<span class="emoticon smile"></span>', ':)' => '<span class="emoticon smile"></span>', ':-D' => '<span class="emoticon laughing"></span>', ':D' => '<span class="emoticon laughing"></span>', ':-(' => '<span class="emoticon frown"></span>', ':(' => '<span class="emoticon frown"></span>', ':-[' => '<span class="emoticon embarassed"></span>', ';-)' => '<span class="emoticon wink"></span>', ';)' => '<span class="emoticon wink"></span>', ':-\\' => '<span class="emoticon undecided"></span>', ':-P' => '<span class="emoticon tongue"></span>', ';-P' => '<span class="emoticon tongue"></span>', ':P' => '<span class="emoticon tongue"></span>', '=-O' => '<span class="emoticon surprise"></span>', ':-*' => '<span class="emoticon kiss"></span>', ':*' => '<span class="emoticon kiss"></span>', '>:o' => '<span class="emoticon yell"></span>', '>:-o' => '<span class="emoticon yell"></span>', '8-)' => '<span class="emoticon cool"></span>', ':-$' => '<span class="emoticon money"></span>', ':-!' => '<span class="emoticon foot"></span>', ':\'(' => '<span class="emoticon cry"></span>', ':-X' => '<span class="emoticon sealed"></span>')); /** * @see Conjoon_Text_Transformer_EmailAddressToHtml */ require_once 'Conjoon/Text/Transformer/EmailAddressToHtml.php'; $transformer = new Conjoon_Text_Transformer_EmailAddressToHtml(); $data['body'] = $transformer->transform($plainToHtmlFilter->filter($signatureFilter->filter($quoteFilter->filter($urlFilter->filter($emoticonFilter->filter($lineFeedFilter->filter($data['body']))))))); } return $data; }
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; }
/** * The message text to transform can be found in $data['message']['contentTextPlain']. * * @inheritdoc */ public function execute(array $data) { try { ArgumentCheck::check(array('message' => array('type' => 'array', 'allowEmpty' => false)), $data); ArgumentCheck::check(array('contentTextPlain' => array('type' => 'string', 'allowEmpty' => true)), $data['message']); $text = $data['message']['contentTextPlain']; /** * @ticket CN-920 */ if (trim($text) == "") { return new ReadableStrategyResult("", false, false); } /** * @see \Conjoon_Filter_UrlToATag */ require_once 'Conjoon/Filter/UrlToATag.php'; /** * @see \Conjoon_Filter_QuoteToBlockquote */ require_once 'Conjoon/Filter/QuoteToBlockquote.php'; /** * @see \Conjoon_Filter_SignatureWrap */ require_once 'Conjoon/Filter/SignatureWrap.php'; /** * @see \Conjoon_Filter_NormalizeLineFeeds */ require_once 'Conjoon/Filter/NormalizeLineFeeds.php'; /** * @see \Conjoon_Filter_PlainToHtml */ require_once 'Conjoon/Filter/PlainToHtml.php'; /** * @see \Conjoon_Filter_EmoticonReplacement */ require_once 'Conjoon/Filter/EmoticonReplacement.php'; $urlFilter = new \Conjoon_Filter_UrlToATag(array('target' => '_blank')); $quoteFilter = new \Conjoon_Filter_QuoteToBlockquote(); $lineFeedFilter = new \Conjoon_Filter_NormalizeLineFeeds(); $signatureFilter = new \Conjoon_Filter_SignatureWrap('<div class="signature">', '</div>'); $plainToHtmlFilter = new \Conjoon_Filter_PlainToHtml(); $emoticonFilter = new \Conjoon_Filter_EmoticonReplacement(array('O:-)' => '<span class="emoticon innocent"></span>', ':-)' => '<span class="emoticon smile"></span>', ':)' => '<span class="emoticon smile"></span>', ':-D' => '<span class="emoticon laughing"></span>', ':D' => '<span class="emoticon laughing"></span>', ':-(' => '<span class="emoticon frown"></span>', ':(' => '<span class="emoticon frown"></span>', ':-[' => '<span class="emoticon embarassed"></span>', ';-)' => '<span class="emoticon wink"></span>', ';)' => '<span class="emoticon wink"></span>', ':-\\' => '<span class="emoticon undecided"></span>', ':-P' => '<span class="emoticon tongue"></span>', ';-P' => '<span class="emoticon tongue"></span>', ':P' => '<span class="emoticon tongue"></span>', '=-O' => '<span class="emoticon surprise"></span>', ':-*' => '<span class="emoticon kiss"></span>', ':*' => '<span class="emoticon kiss"></span>', '>:o' => '<span class="emoticon yell"></span>', '>:-o' => '<span class="emoticon yell"></span>', '8-)' => '<span class="emoticon cool"></span>', ':-$' => '<span class="emoticon money"></span>', ':-!' => '<span class="emoticon foot"></span>', ':\'(' => '<span class="emoticon cry"></span>', ':-X' => '<span class="emoticon sealed"></span>')); /** * @see \Conjoon_Text_Transformer_Mail_EmailAddressToHtmlTransformer */ require_once 'Conjoon/Text/Transformer/Mail/EmailAddressToHtmlTransformer.php'; $transformer = new \Conjoon_Text_Transformer_Mail_EmailAddressToHtmlTransformer(); /** * @see \Conjoon\Text\Transformer\Html\SanitizeOpeningBracketForLinkTransformer */ require_once 'Conjoon/Text/Transformer/Html/SanitizeOpeningBracketForLinkTransformer.php'; $openingBracketForLinkTransformer = new \Conjoon\Text\Transformer\Html\SanitizeOpeningBracketForLinkTransformer(); /** * @see \Zend_Filter_HtmlEntities */ require_once 'Zend/Filter/HtmlEntities.php'; $zfe = new \Zend_Filter_HtmlEntities(array('quotestyle' => ENT_COMPAT)); return new ReadableStrategyResult($openingBracketForLinkTransformer->transform($transformer->transform($plainToHtmlFilter->filter($signatureFilter->filter($quoteFilter->filter($urlFilter->filter($emoticonFilter->filter($lineFeedFilter->filter($zfe->filter($text))))))))), false, false); } catch (\Exception $e) { /** * @see \Conjoon\Mail\Client\Message\Strategy\StrategyException; */ require_once 'Conjoon/Mail/Client/Message/Strategy/StrategyException.php'; throw new StrategyException("Exception thrown by previous exception", 0, $e); } }