Optionally move links to the bottom in text/plain emails
authorTim Düsterhus <duesterhus@woltlab.com>
Thu, 16 Jun 2016 14:47:15 +0000 (16:47 +0200)
committerTim Düsterhus <duesterhus@woltlab.com>
Fri, 29 Jul 2016 14:24:49 +0000 (16:24 +0200)
wcfsetup/install/files/lib/system/email/mime/RecipientAwareTextMimePart.class.php
wcfsetup/install/lang/de.xml
wcfsetup/install/lang/en.xml

index 7bef27c3f8f0053626a317c21100b960aaedd9c1..122025b641e44307f920bc7e89eb2644bd4e12e7 100644 (file)
@@ -79,6 +79,24 @@ class RecipientAwareTextMimePart extends TextMimePart implements IRecipientAware
                                
                                $result = $emogrifier->emogrify();
                        }
+                       else if ($this->mimeType === 'text/plain') {
+                               $counter = 1;
+                               $urls = [];
+                               $result = preg_replace_callback('~\[URL:(https?://[^\]\s]*)\]~', function ($matches) use (&$counter, &$urls) {
+                                       if (!isset($urls[$matches[1]])) {
+                                               $urls[$matches[1]] = $counter++;
+                                       }
+                                       
+                                       return '['.$urls[$matches[1]].']';
+                               }, $result);
+                               $result = preg_replace_callback('/(\r?\n-- \r?\n|$)/', function ($matches) use ($urls) {
+                                       $list = '';
+                                       foreach ($urls as $url => $number) {
+                                               $list .= "\r\n[".$number."] ".$url;
+                                       }
+                                       return $list."\r\n".$matches[0];
+                               }, $result, 1);
+                       }
                        
                        return $result;
                }
index e7d0ccea51492b9bdd4d29eca72df50f6b73c27f..a02262acdf21f1b82f5ec4146fdd25d06fcfcb2b 100644 (file)
@@ -1806,11 +1806,9 @@ Wenn {if LANGUAGE_USE_INFORMAL_VARIANT}du{else}Sie{/if} unter <em>System -&gt; O
 freigeschaltet. {if LANGUAGE_USE_INFORMAL_VARIANT}Du kannst{else}Sie können{/if} die Funktionen {if LANGUAGE_USE_INFORMAL_VARIANT}deines{else}Ihres{/if} Benutzerkontos nun in vollem Umfang nutzen.</p>]]></item>
                <item name="wcf.acp.user.activation.mail.plaintext"><![CDATA[Hallo {@$mailbox->getUser()->username},
 
-{if LANGUAGE_USE_INFORMAL_VARIANT}Ihr{else}Dein{/if} Benutzerkonto auf der Website: {@PAGE_TITLE|language} [1] wurde von
+{if LANGUAGE_USE_INFORMAL_VARIANT}Ihr{else}Dein{/if} Benutzerkonto auf der Website: {@PAGE_TITLE|language} [URL:{link}{/link}] wurde von
 einem Administrator freigeschaltet. {if LANGUAGE_USE_INFORMAL_VARIANT}Du kannst{else}Sie können{/if} die Funktionen {if LANGUAGE_USE_INFORMAL_VARIANT}deines{else}Ihres{/if}
-Benutzerkontos nun in vollem Umfang nutzen.
-
-[1] {link}{/link}]]></item>
+Benutzerkontos nun in vollem Umfang nutzen.]]></item>
                <item name="wcf.acp.user.notificationPresetSettings"><![CDATA[Vorgabewerte für Benachrichtigungen bearbeiten]]></item>
                <item name="wcf.acp.user.notificationPresetSettings.description"><![CDATA[{if LANGUAGE_USE_INFORMAL_VARIANT}Du kannst{else}Sie können{/if} auf dieser Seite die Standardeinstellungen für neue Benutzer festlegen, dies wirkt sich nicht auf bestehende Benutzer aus. Benutzer können abweichende Einstellungen festlegen.]]></item>
                <item name="wcf.acp.user.notificationPresetSettings.applyChangesToExistingUsers"><![CDATA[Änderungen auch auf bestehende Benutzerkonten anwenden]]></item>
@@ -3048,7 +3046,7 @@ unter: <a href="mailto:{MAIL_ADMIN_ADDRESS}">{MAIL_ADMIN_ADDRESS}</a>. Wenn {if
 dann {if LANGUAGE_USE_INFORMAL_VARIANT}kannst du{else}können Sie{/if} diese E-Mail ignorieren.</p>]]></item>
                <item name="wcf.user.register.needActivation.mail.plaintext"><![CDATA[Hallo {$mailbox->getUser()->username},
 
-vielen Dank für {if LANGUAGE_USE_INFORMAL_VARIANT}deine{else}Ihre{/if} Registrierung auf der Website: {@PAGE_TITLE|language} [1].
+vielen Dank für {if LANGUAGE_USE_INFORMAL_VARIANT}deine{else}Ihre{/if} Registrierung auf der Website: {@PAGE_TITLE|language} [URL:{link}{/link}].
 Bevor {if LANGUAGE_USE_INFORMAL_VARIANT}du dein{else}Sie Ihr{/if} Benutzerkonto vollständig verwenden {if LANGUAGE_USE_INFORMAL_VARIANT}kannst{else}können{/if} ist es notwendig,
 dass Sie einmalig durch Klicken des Folgenden Links die Gültigkeit {if LANGUAGE_USE_INFORMAL_VARIANT}deiner{else}Ihrer{/if}
 E-Mail-Adresse {if LANGUAGE_USE_INFORMAL_VARIANT}bestätigst{else}bestätigen{/if}:
@@ -3061,9 +3059,7 @@ Wenn {if LANGUAGE_USE_INFORMAL_VARIANT}du{else}Sie{/if} Probleme mit der Aktivie
 dich{else}wenden
 Sie sich{/if} bitte an den Administrator unter: {@MAIL_ADMIN_ADDRESS}. Wenn {if LANGUAGE_USE_INFORMAL_VARIANT}du
 dich{else}Sie
-sich{/if} nicht bei uns registriert {if LANGUAGE_USE_INFORMAL_VARIANT}hast{else}haben{/if}, dann {if LANGUAGE_USE_INFORMAL_VARIANT}kannst du{else}können Sie{/if} diese E-Mail ignorieren.
-
-[1] {link}{/link}]]></item>
+sich{/if} nicht bei uns registriert {if LANGUAGE_USE_INFORMAL_VARIANT}hast{else}haben{/if}, dann {if LANGUAGE_USE_INFORMAL_VARIANT}kannst du{else}können Sie{/if} diese E-Mail ignorieren.]]></item>
                
                <!-- Success Messages -->
                <item name="wcf.user.register.success"><![CDATA[Vielen Dank für die Registrierung, {$user->username}. Ihre Registrierung ist hiermit vollständig abgeschlossen.]]></item>
index dbbd6aa3e0cbd4652a7d871c72455928f8ea99fb..5e38e1100a94af9026a0aa7abf660cd8f8a92601 100644 (file)
@@ -1779,11 +1779,9 @@ Login with your new password: {link controller='Login' isEmail=true}{/link}]]></
 by an administrator. You are now able to use your user account to it’s full extend.</p>]]></item>
                <item name="wcf.acp.user.activation.mail.plaintext"><![CDATA[Dear {@$mailbox->getUser()->username},
 
-your account on the website: {@PAGE_TITLE|language} [1] has been approved
+your account on the website: {@PAGE_TITLE|language} [URL:{link}{/link}] has been approved
 by an administrator. You are now able to use your user account to it’s
-full extend.
-
-[1] {link}{/link}]]></item>
+full extend.]]></item>
                <item name="wcf.acp.user.notificationPresetSettings"><![CDATA[Default Notification Settings]]></item>
                <item name="wcf.acp.user.notificationPresetSettings.description"><![CDATA[You can set the default notification settings for new users, any changes made here do not affect existing users. Users may customize their settings at any time.]]></item>
                <item name="wcf.acp.user.notificationPresetSettings.applyChangesToExistingUsers"><![CDATA[Apply changes for existing users too]]></item>
@@ -3086,7 +3084,7 @@ user account to it’s full extent it is required that you confirm validity of y
 you did not register an account with us.</p>]]></item>
                <item name="wcf.user.register.needActivation.mail.plaintext"><![CDATA[Dear {$mailbox->getUser()->username},
 
-thank your for registering at: {@PAGE_TITLE|language} [1]. Before you are
+thank your for registering at: {@PAGE_TITLE|language} [URL:{link}{/link}]. Before you are
 able to user your user account to it's full extent it is required that you
 confirm the validity of your email address once:
 
@@ -3096,9 +3094,7 @@ Your activation code is: {@$mailbox->getUser()->activationCode} {* this line end
 
 If you have troubles confirming your email address, please contect the
 administrator at: {@MAIL_ADMIN_ADDRESS}. Please ignore this email if you did
-not register with us.
-
-[1] {link}{/link}]]></item>
+not register with us.]]></item>
                
                <!-- Success Messages -->
                <item name="wcf.user.register.success"><![CDATA[Thank you for registering, {$user->username}.<br>