/** * 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; }
/** * 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; } }
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; }
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; }
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(); 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; }
/** * 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; }
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; }
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; }