aboutsummaryrefslogtreecommitdiff
path: root/h-source/External/swiftmailer/lib/classes/Swift/Plugins/DecoratorPlugin.php
diff options
context:
space:
mode:
Diffstat (limited to 'h-source/External/swiftmailer/lib/classes/Swift/Plugins/DecoratorPlugin.php')
-rwxr-xr-xh-source/External/swiftmailer/lib/classes/Swift/Plugins/DecoratorPlugin.php201
1 files changed, 0 insertions, 201 deletions
diff --git a/h-source/External/swiftmailer/lib/classes/Swift/Plugins/DecoratorPlugin.php b/h-source/External/swiftmailer/lib/classes/Swift/Plugins/DecoratorPlugin.php
deleted file mode 100755
index da1a307..0000000
--- a/h-source/External/swiftmailer/lib/classes/Swift/Plugins/DecoratorPlugin.php
+++ /dev/null
@@ -1,201 +0,0 @@
-<?php
-
-/*
- * This file is part of SwiftMailer.
- * (c) 2004-2009 Chris Corbyn
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-//@require 'Swift/Events/SendListener.php';
-//@require 'Swift/Events/SendEvent.php';
-//@require 'Swift/Plugins/Decorator/Replacements.php';
-
-/**
- * Allows customization of Messages on-the-fly.
- *
- * @package Swift
- * @subpackage Plugins
- *
- * @author Chris Corbyn
- */
-class Swift_Plugins_DecoratorPlugin
- implements Swift_Events_SendListener, Swift_Plugins_Decorator_Replacements
-{
-
- /** The replacement map */
- private $_replacements;
-
- /** The body as it was before replacements */
- private $_orginalBody;
-
- /** The original subject of the message, before replacements */
- private $_originalSubject;
-
- /** Bodies of children before they are replaced */
- private $_originalChildBodies = array();
-
- /** The Message that was last replaced */
- private $_lastMessage;
-
- /**
- * Create a new DecoratorPlugin with $replacements.
- *
- * The $replacements can either be an associative array, or an implementation
- * of {@link Swift_Plugins_Decorator_Replacements}.
- *
- * When using an array, it should be of the form:
- * <code>
- * $replacements = array(
- * "address1@domain.tld" => array("{a}" => "b", "{c}" => "d"),
- * "address2@domain.tld" => array("{a}" => "x", "{c}" => "y")
- * )
- * </code>
- *
- * When using an instance of {@link Swift_Plugins_Decorator_Replacements},
- * the object should return just the array of replacements for the address
- * given to {@link Swift_Plugins_Decorator_Replacements::getReplacementsFor()}.
- *
- * @param mixed $replacements
- */
- public function __construct($replacements)
- {
- if (!($replacements instanceof Swift_Plugins_Decorator_Replacements))
- {
- $this->_replacements = (array) $replacements;
- }
- else
- {
- $this->_replacements = $replacements;
- }
- }
-
- /**
- * Invoked immediately before the Message is sent.
- *
- * @param Swift_Events_SendEvent $evt
- */
- public function beforeSendPerformed(Swift_Events_SendEvent $evt)
- {
- $message = $evt->getMessage();
- $this->_restoreMessage($message);
- $to = array_keys($message->getTo());
- $address = array_shift($to);
- if ($replacements = $this->getReplacementsFor($address))
- {
- $body = $message->getBody();
- $search = array_keys($replacements);
- $replace = array_values($replacements);
- $bodyReplaced = str_replace(
- $search, $replace, $body
- );
- if ($body != $bodyReplaced)
- {
- $this->_originalBody = $body;
- $message->setBody($bodyReplaced);
- }
- $subject = $message->getSubject();
- $subjectReplaced = str_replace(
- $search, $replace, $subject
- );
- if ($subject != $subjectReplaced)
- {
- $this->_originalSubject = $subject;
- $message->setSubject($subjectReplaced);
- }
- $children = (array) $message->getChildren();
- foreach ($children as $child)
- {
- list($type, ) = sscanf($child->getContentType(), '%[^/]/%s');
- if ('text' == $type)
- {
- $body = $child->getBody();
- $bodyReplaced = str_replace(
- $search, $replace, $body
- );
- if ($body != $bodyReplaced)
- {
- $child->setBody($bodyReplaced);
- $this->_originalChildBodies[$child->getId()] = $body;
- }
- }
- }
- $this->_lastMessage = $message;
- }
- }
-
- /**
- * Find a map of replacements for the address.
- *
- * If this plugin was provided with a delegate instance of
- * {@link Swift_Plugins_Decorator_Replacements} then the call will be
- * delegated to it. Otherwise, it will attempt to find the replacements
- * from the array provided in the constructor.
- *
- * If no replacements can be found, an empty value (NULL) is returned.
- *
- * @param string $address
- *
- * @return array
- */
- public function getReplacementsFor($address)
- {
- if ($this->_replacements instanceof Swift_Plugins_Decorator_Replacements)
- {
- return $this->_replacements->getReplacementsFor($address);
- }
- else
- {
- return isset($this->_replacements[$address])
- ? $this->_replacements[$address]
- : null
- ;
- }
- }
-
- /**
- * Invoked immediately after the Message is sent.
- *
- * @param Swift_Events_SendEvent $evt
- */
- public function sendPerformed(Swift_Events_SendEvent $evt)
- {
- $this->_restoreMessage($evt->getMessage());
- }
-
- // -- Private methods
-
- /** Restore a changed message back to its original state */
- private function _restoreMessage(Swift_Mime_Message $message)
- {
- if ($this->_lastMessage === $message)
- {
- if (isset($this->_originalBody))
- {
- $message->setBody($this->_originalBody);
- $this->_originalBody = null;
- }
- if (isset($this->_originalSubject))
- {
- $message->setSubject($this->_originalSubject);
- $this->_originalSubject = null;
- }
- if (!empty($this->_originalChildBodies))
- {
- $children = (array) $message->getChildren();
- foreach ($children as $child)
- {
- $id = $child->getId();
- if (array_key_exists($id, $this->_originalChildBodies))
- {
- $child->setBody($this->_originalChildBodies[$id]);
- }
- }
- $this->_originalChildBodies = array();
- }
- $this->_lastMessage = null;
- }
- }
-
-}