Add emailTextPlain.tpl
authorTim Düsterhus <duesterhus@woltlab.com>
Wed, 8 Jul 2015 21:21:15 +0000 (23:21 +0200)
committerTim Düsterhus <duesterhus@woltlab.com>
Tue, 14 Jul 2015 18:58:29 +0000 (20:58 +0200)
com.woltlab.wcf/templates/emailTextPlain.tpl [new file with mode: 0644]
wcfsetup/install/files/lib/system/email/Email.class.php
wcfsetup/install/files/lib/system/email/mime/AbstractRecipientAwareTextMimePart.class.php [new file with mode: 0644]
wcfsetup/install/files/lib/system/email/mime/PlainTextMimePart.class.php [new file with mode: 0644]

diff --git a/com.woltlab.wcf/templates/emailTextPlain.tpl b/com.woltlab.wcf/templates/emailTextPlain.tpl
new file mode 100644 (file)
index 0000000..ed60bea
--- /dev/null
@@ -0,0 +1,13 @@
+{$content}
+{hascontent}
+
+-- {* The Space is important, do not remove *}
+{content}
+{@MAIL_SIGNATURE|language}
+{if $mailbox|is_a:'wcf\system\email\UserMailbox'}{if MAIL_SIGNATURE|language}{* add newlines *}
+
+
+{/if}This email was sent to you, because you registered on
+the {$mailbox->getUser()->registrationDate|plainTime} at {@PAGE_TITLE|language}.{/if} {* TODO: language item *}
+{/content}
+{/hascontent}
index 5a36a8bd43b0730d428120ff013fb674c1c4c85d..84ec7324e8b87d8e9632a9b3127763ec1e3c106d 100644 (file)
@@ -581,8 +581,6 @@ class Email {
                        $body .= $text;
                }
                
-               // TODO: Where to put the email signature?
-               
                return $body;
        }
        
diff --git a/wcfsetup/install/files/lib/system/email/mime/AbstractRecipientAwareTextMimePart.class.php b/wcfsetup/install/files/lib/system/email/mime/AbstractRecipientAwareTextMimePart.class.php
new file mode 100644 (file)
index 0000000..f2df88e
--- /dev/null
@@ -0,0 +1,68 @@
+<?php
+namespace wcf\system\email\mime;
+use wcf\system\email\Mailbox;
+use wcf\system\email\UserMailbox;
+use wcf\system\WCF;
+
+/**
+ * Abstract implementation of a recipient aware TextMimePart.
+ * 
+ * This implementation generates the final content by passing the content
+ * to a specified template. If the recipient is a UserMailbox the language
+ * will be changed to the user's interface language, before evaluating the
+ * template.
+ * 
+ * @author     Tim Duesterhus
+ * @copyright  2001-2015 WoltLab GmbH
+ * @license    GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
+ * @package    com.woltlab.wcf
+ * @subpackage system.email.mime
+ * @category   Community Framework
+ */
+abstract class AbstractRecipientAwareTextMimePart extends TextMimePart implements IRecipientAwareMimePart {
+       /**
+        * template to use for this email
+        * @var string
+        */
+       protected $template = '';
+       
+       /**
+        * application of this template
+        * @var string
+        */
+       protected $application = 'wcf';
+       
+       /**
+        * the recipient of the email containing this mime part
+        * @var \wcf\system\email\Mailbox
+        */
+       protected $mailbox = null;
+       
+       /**
+        * @see \wcf\system\email\mime\IRecipientAwareMimePart::setRecipient()
+        */
+       public function setRecipient(Mailbox $mailbox = null) {
+               $this->mailbox = $mailbox;
+       }
+       
+       /**
+        * @see \wcf\system\email\mime\AbstractMimePart::getContent()
+        */
+       public function getContent() {
+               $language = WCF::getLanguage();
+               
+               try {
+                       if ($this->mailbox instanceof UserMailbox) {
+                               WCF::setLanguage($this->mailbox->getUser()->getLanguage()->languageID);
+                       }
+                       
+                       return WCF::getTPL()->fetch($this->template, $this->application, [
+                               'content' => $this->content,
+                               'mailbox' => $this->mailbox
+                       ], true);
+               }
+               finally {
+                       WCF::setLanguage($language->languageID);
+               }
+       }
+}
diff --git a/wcfsetup/install/files/lib/system/email/mime/PlainTextMimePart.class.php b/wcfsetup/install/files/lib/system/email/mime/PlainTextMimePart.class.php
new file mode 100644 (file)
index 0000000..226947e
--- /dev/null
@@ -0,0 +1,32 @@
+<?php
+namespace wcf\system\email\mime;
+use wcf\system\email\UserMailbox;
+use wcf\system\WCF;
+
+/**
+ * PlainTextMimePart is a text/plain implementation of an
+ * AbstractRecipientAwareTextMimePart.
+ * 
+ * @author     Tim Duesterhus
+ * @copyright  2001-2015 WoltLab GmbH
+ * @license    GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
+ * @package    com.woltlab.wcf
+ * @subpackage system.email.mime
+ * @category   Community Framework
+ */
+class PlainTextMimePart extends AbstractRecipientAwareTextMimePart {
+       /**
+        * template to use for this email
+        * @var string
+        */
+       protected $template = 'emailTextPlain';
+       
+       /**
+        * Creates a new PlainTextMimePart.
+        * 
+        * @param       string  $content        Content of this text part.
+        */
+       public function __construct($content) {
+               parent::__construct($content, 'text/plain');
+       }
+}