Exemplo n.º 1
0
 /**
  * Returns an associative array with all filtered and validated
  * fields that where found in $_presence.
  *
  *
  * @throws Zend_Filter_Exception
  *
  * @see $_presence
  */
 public function getProcessedData()
 {
     $data = parent::getProcessedData();
     $value = array();
     $res = preg_match("/^<a href=\"(.*)\">(.*)<\\/a>/i", $data['source'], $value);
     if ($res === 0) {
         $data['sourceUrl'] = "";
     } else {
         $data['source'] = $value[2];
         $data['sourceUrl'] = $value[1];
     }
     return $data;
 }
Exemplo n.º 2
0
 /**
  * Tries to cast a numeric/associative array into it's representant
  * entity model as defined in $_entity.
  *
  * @param array $data The array data, if numeric, a numeric array
  * will be returned, with values of the type $className. If an
  * associative array was submitted, a single object of the type
  * $className will be returned.
  *
  * @return mixed Either an array of objects or a single object.
  */
 protected final function _cast($values, $type)
 {
     if ($values instanceof Zend_Db_Table_Rowset_Abstract || $values instanceof Zend_Db_Table_Row_Abstract || is_object($values) && method_exists($values, 'toArray')) {
         $values = $values->toArray();
     }
     if (!is_array($values) || $type == self::TYPE_ARRAY) {
         return $values;
     }
     $len = count($values);
     if ($len == 0) {
         return array();
     }
     $entity = $this->_entity;
     // simple check to determine if we have a assoc or numeric
     // array
     if (!Conjoon_Util_Array::isAssociative($values)) {
         $data = array();
         $TYPE_DTO = $type == self::TYPE_DTO;
         for ($i = 0; $i < $len; $i++) {
             Conjoon_Util_Array::camelizeKeys($values[$i]);
             if ($this->_filter) {
                 $values[$i] = $this->_filter->setData($values[$i])->getProcessedData();
             }
             $data[] = Conjoon_BeanContext_Inspector::create($entity, $values[$i], !$this->_strict);
             if ($TYPE_DTO) {
                 $data[$i] = $data[$i]->getDto();
                 if ($this->_filter) {
                     $vv =& $values[$i];
                     $dd =& $data[$i];
                     $props = get_class_vars(get_class($data[$i]));
                     foreach ($props as $propname => $propvalue) {
                         if (!array_key_exists($propname, $vv)) {
                             unset($dd->{$propname});
                         }
                     }
                 }
             }
         }
         return $data;
     } else {
         Conjoon_Util_Array::camelizeKeys($values);
         if ($this->_filter) {
             $values = $this->_filter->setData($values)->getProcessedData();
         }
         $data = Conjoon_BeanContext_Inspector::create($entity, $values, !$this->_strict);
         if ($type == self::TYPE_DTO) {
             return $data->getDto();
         }
         return $data;
     }
 }
Exemplo n.º 3
0
 public function getProcessedData()
 {
     $data = parent::getProcessedData();
     $message = $data['message'];
     $format = $data['format'];
     unset($data['message']);
     unset($data['format']);
     $data['contentTextHtml'] = "";
     $data['contentTextPlain'] = "";
     if (trim($message) != "") {
         /**
          * @see \Conjoon\Text\Transformer\HtmlToPlainText
          */
         require_once 'Conjoon/Text/Transformer/HtmlToPlainText.php';
         /**
          * @see \Conjoon\Text\Transformer\BlockquoteToQuote
          */
         require_once 'Conjoon/Text/Transformer/BlockquoteToQuote.php';
         /**
          * @see \Conjoon\Text\Transformer\NormalizeLineFeeds
          */
         require_once 'Conjoon/Text/Transformer/NormalizeLineFeeds.php';
         /**
          * @see \Conjoon\Text\Transformer\MultipleWhiteSpaceRemover
          */
         require_once 'Conjoon/Text/Transformer/MultipleWhiteSpaceRemover.php';
         /**
          * @see \Conjoon\Text\Transformer\TagWhiteSpaceRemover
          */
         require_once 'Conjoon/Text/Transformer/TagWhiteSpaceRemover.php';
         $htmlToPlainTextTransformer = new \Conjoon\Text\Transformer\HtmlToPlainText(array('blockquoteToQuote' => new \Conjoon\Text\Transformer\BlockquoteToQuote(), 'normalizeLineFeeds' => new \Conjoon\Text\Transformer\NormalizeLineFeeds(), 'multipleWhiteSpaceRemover' => new \Conjoon\Text\Transformer\MultipleWhiteSpaceRemover(), 'tagWhiteSpaceRemover' => new \Conjoon\Text\Transformer\TagWhiteSpaceRemover()));
         /**
          * @see Conjoon_Filter_DraftToHtml
          */
         require_once 'Conjoon/Filter/DraftToHtml.php';
         $draftToHtmlFilter = new Conjoon_Filter_DraftToHtml();
         switch ($format) {
             case Conjoon_Modules_Groupware_Email_Keys::FORMAT_TEXT_PLAIN:
                 $data['contentTextPlain'] = $htmlToPlainTextTransformer->transform($message);
                 break;
             case Conjoon_Modules_Groupware_Email_Keys::FORMAT_TEXT_HTML:
                 $data['contentTextHtml'] = $draftToHtmlFilter->filter($message);
                 break;
             case Conjoon_Modules_Groupware_Email_Keys::FORMAT_MULTIPART:
                 $data['contentTextHtml'] = $draftToHtmlFilter->filter($message);
                 $data['contentTextPlain'] = $htmlToPlainTextTransformer->transform($message);
                 break;
         }
     }
     return $data;
 }
Exemplo n.º 4
0
 public function getProcessedData()
 {
     $data = parent::getProcessedData();
     if ($this->_context == self::CONTEXT_UPDATE) {
         if ($data['updateInterval'] === NULL) {
             unset($data['updateInterval']);
         }
         if (isset($data['updateInterval'])) {
             $v = $data['updateInterval'];
             $data['update_interval'] = $v;
         }
     }
     return $data;
 }
Exemplo n.º 5
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.º 6
0
 public function getProcessedData()
 {
     $data = parent::getProcessedData();
     if ($this->_context == self::CONTEXT_DELETE || $this->_context == self::CONTEXT_MOVE) {
         return $data;
     }
     $recs = array($data['to'], $data['cc'], $data['bcc']);
     /**
      * @see Conjoon_Filter_EmailRecipients
      */
     require_once 'Conjoon/Filter/EmailRecipients.php';
     /**
      * @see Conjoon_Filter_EmailRecipientsToString
      */
     require_once 'Conjoon/Filter/EmailRecipientsToString.php';
     $emailRecipientsFilter = new Conjoon_Filter_EmailRecipients();
     $emailSenderFilter = new Conjoon_Filter_EmailRecipients(false, false);
     $emailRecipientsToStringFilter = new Conjoon_Filter_EmailRecipientsToString();
     $emailSenderToStringFilter = new Conjoon_Filter_EmailRecipientsToString(false);
     $data['recipients'] = $emailRecipientsToStringFilter->filter($emailRecipientsFilter->filter($recs));
     // it should be safe to store the sender without additional slashes
     $data['sender'] = $emailSenderToStringFilter->filter($emailSenderFilter->filter($data['from']));
     return $data;
 }
Exemplo n.º 7
0
 /**
  * Returns an associative array with all filtered and validated
  * fields that where found in $_presence.
  *
  *
  * @throws Zend_Filter_Exception
  *
  * @see $_presence
  */
 public function getProcessedData()
 {
     $data = parent::getProcessedData();
     if (empty($data)) {
         return $data;
     }
     if (isset($data['protocol']) && $data['protocol'] == 'POP') {
         $data['protocol'] = 'POP3';
     }
     if (str_replace("*", "", $data['passwordInbox']) == "") {
         unset($data['passwordInbox']);
     }
     if ($data['isOutboxAuth']) {
         if (str_replace("*", "", $data['passwordOutbox']) == "") {
             unset($data['passwordOutbox']);
         }
     } else {
         if (!$data['isOutboxAuth']) {
             $data['usernameOutbox'] = null;
             $data['passwordOutbox'] = null;
         }
     }
     return $data;
 }
Exemplo n.º 8
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;
 }
Exemplo n.º 9
0
 public function getProcessedData()
 {
     $data = parent::getProcessedData();
     if ($this->_context == self::CONTEXT_RESPONSE || $this->_context == self::CONTEXT_ITEM_RESPONSE || $this->_context == self::CONTEXT_ITEM_RESPONSE_IMG) {
         /**
          * @see Conjoon_Filter_ExtractHost
          */
         require_once 'Conjoon/Filter/ExtractHost.php';
         $hostFilter = new Conjoon_Filter_ExtractHost();
         $host = $hostFilter->filter($data['link']);
         /**
          * @see Conjoon_Filter_SanitizeRelativeUrls
          */
         require_once 'Conjoon/Filter/SanitizeRelativeUrls.php';
         $sanitizeUrls = new Conjoon_Filter_SanitizeRelativeUrls($host, array('/index/javascript'));
         $data['description'] = $sanitizeUrls->filter($data['description']);
         if ($this->_context != self::CONTEXT_RESPONSE) {
             $data['content'] = $sanitizeUrls->filter($data['content']);
         }
     }
     return $data;
 }