/** * Create file * * @param Message * @param array * @param string * @return bool */ public function send(Message $objMessage, array $arrTokens, $strLanguage = '') { if ($strLanguage == '') { $strLanguage = $GLOBALS['TL_LANGUAGE']; } if (($objLanguage = Language::findByMessageAndLanguageOrFallback($objMessage, $strLanguage)) === null) { \System::log(sprintf('Could not find matching language or fallback for message ID "%s" and language "%s".', $objMessage->id, $strLanguage), __METHOD__, TL_ERROR); return false; } $strFileName = String::recursiveReplaceTokensAndTags($objLanguage->file_name, $arrTokens, String::NO_TAGS | String::NO_BREAKS); // Escape quotes and line breaks for CSV files if ($this->objModel->file_type == 'csv') { array_walk($arrTokens, function (&$varValue) { $varValue = str_replace(array('"', "\r\n", "\r"), array('""', "\n", "\n"), $varValue); }); } // Preserve all tags here as this is pretty useful in XML :-) $strContent = String::recursiveReplaceTokensAndTags($objLanguage->file_content, $arrTokens); try { return $this->save($strFileName, $strContent, (string) $objLanguage->file_storage_mode); } catch (\Exception $e) { \System::log('Notification Center gateway error: ' . $e->getMessage(), __METHOD__, TL_ERROR); return false; } }
/** * Returns the paths to attachments as an array * @return array */ public function getAttachments() { // Token attachments $arrAttachments = String::getTokenAttachments($this->objLanguage->attachment_tokens, $this->arrTokens); // Add static attachments $arrStaticAttachments = deserialize($this->objLanguage->attachments, true); if (!empty($arrStaticAttachments)) { $objFiles = \FilesModel::findMultipleByUuids($arrStaticAttachments); if ($objFiles === null) { return $arrAttachments; } while ($objFiles->next()) { $arrAttachments[] = TL_ROOT . '/' . $objFiles->path; } } return $arrAttachments; }
/** * @deprecated Use String::compileRecipients() */ protected function compileRecipients($strRecipients, $arrTokens) { return String::compileRecipients($strRecipients, $arrTokens); }
/** * Generate CC or BCC recipients from comma separated string * * @param string $strRecipients * @param array $arrTokens * * @return array */ public static function compileRecipients($strRecipients, $arrTokens) { // Replaces tokens first so that tokens can contain a list of recipients. $strRecipients = \Haste\Util\StringUtil::recursiveReplaceTokensAndTags($strRecipients, $arrTokens, static::NO_TAGS | static::NO_BREAKS); $arrRecipients = array(); foreach ((array) trimsplit(',', $strRecipients) as $strAddress) { if ($strAddress != '') { list($strName, $strEmail) = \String::splitFriendlyEmail($strAddress); // Address could become empty through invalid insert tag if ($strAddress == '' || !\Validator::isEmail($strEmail)) { continue; } $arrRecipients[] = $strAddress; } } return $arrRecipients; }