/**
  * @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;
 }
Exemplo n.º 2
0
 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>', '&gt;:o' => '<span class="emoticon yell"></span>', '&gt;:-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;
 }
Exemplo n.º 3
0
 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>', '&gt;:o' => '<span class="emoticon yell"></span>', '&gt;:-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);
     }
 }