コード例 #1
0
 /**
  * @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;
 }
コード例 #2
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;
 }