Skip to content

Commit

Permalink
translate html and text string for signature
Browse files Browse the repository at this point in the history
Default only text string exists, via localized translation a wiki admin
can add his/her own (html) version.
  • Loading branch information
Klap-in committed May 27, 2016
1 parent acb389a commit 774514c
Show file tree
Hide file tree
Showing 56 changed files with 239 additions and 81 deletions.
87 changes: 87 additions & 0 deletions _test/tests/inc/mailer.test.php
Expand Up @@ -242,5 +242,92 @@ function test_lint(){
}

}

function test_simplemailsignature(){
global $conf;
$conf['htmlmail'] = 0;

$mailbody = 'A test mail in ASCII';
$signature = "\n-- \n" . 'This mail was generated by DokuWiki at' . "\n" . DOKU_URL . "\n";
$mail = new TestMailer();
$mail->to('test@example.com');
$mail->setBody($mailbody);

$dump = $mail->dump();

// construct the expected mail body text - include the expected dokuwiki signature
$expected_mail_body = chunk_split(base64_encode($mailbody.$signature),72,MAILHEADER_EOL);
$this->assertRegexp('/'.preg_quote($expected_mail_body,'/').'/',$dump);

$conf['htmlmail'] = 1;
}

function test_htmlmailsignature(){
$mailbody_text = 'A test mail in ASCII :)';
$mailbody_html = 'A test mail in <strong>html</strong>';
$htmlmsg_expected = '<html>
<head>
<title>My Test Wiki</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
A test mail in <strong>html</strong>
<br /><hr />
<small>This mail was generated by DokuWiki at<br /><a href="http://wiki.example.com/tmp/">http://wiki.example.com/tmp/</a></small>
</body>
</html>
';

$mail = new TestMailer();
$mail->to('test@example.com');
$mail->setBody($mailbody_text,null,null,$mailbody_html);

$dump = $mail->dump();

// construct the expected mail body text - include the expected dokuwiki signature
$expected_mail_body = chunk_split(base64_encode($htmlmsg_expected),72,MAILHEADER_EOL);

$this->assertRegexp('/Content-Type: multipart/',$dump);
$this->assertRegexp('#Content-Type: text/plain; charset=UTF-8#',$dump);
$this->assertRegexp('/'.preg_quote($expected_mail_body,'/').'/',$dump);

}

function test_htmlmailsignaturecustom(){
global $lang;
$lang['email_signature_html'] = 'Official message from your DokuWiki @DOKUWIKIURL@<br />Created by wonderful mail class <a href="https://www.dokuwiki.org/devel:mail">https://www.dokuwiki.org/devel:mail</a>';

$mailbody_text = 'A test mail in ASCII :)';
$mailbody_html = 'A test mail in <strong>html</strong>';
$htmlmsg_expected = '<html>
<head>
<title>My Test Wiki</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
A test mail in <strong>html</strong>
<br /><hr />
<small>Official message from your DokuWiki <a href="http://wiki.example.com/tmp/">http://wiki.example.com/tmp/</a><br />Created by wonderful mail class <a href="https://www.dokuwiki.org/devel:mail">https://www.dokuwiki.org/devel:mail</a></small>
</body>
</html>
';

$mail = new TestMailer();
$mail->to('test@example.com');
$mail->setBody($mailbody_text,null,null,$mailbody_html);

$dump = $mail->dump();

// construct the expected mail body text - include the expected dokuwiki signature
$replacements = $mail->prop('replacements');
$expected_mail_body = chunk_split(base64_encode($htmlmsg_expected),72,MAILHEADER_EOL);

$this->assertRegexp('/'.preg_quote($expected_mail_body,'/').'/',$dump);

}
}
//Setup VIM: ex: et ts=4 :
25 changes: 20 additions & 5 deletions inc/Mailer.class.php
Expand Up @@ -620,9 +620,10 @@ protected function prepareTokenReplacements() {
'DOKUWIKIURL' => DOKU_URL,
'USER' => $INPUT->server->str('REMOTE_USER'),
'NAME' => $INFO['userinfo']['name'],
'MAIL' => $INFO['userinfo']['mail'],
'EMAILSIGNATURE' => "\n-- \n" . $lang['email_signature'] . "\n" . DOKU_URL . "\n",
'MAIL' => $INFO['userinfo']['mail']
);
$signature = str_replace('@DOKUWIKIURL@',$this->replacements['text']['DOKUWIKIURL'], $lang['email_signature_text']);
$this->replacements['text']['EMAILSIGNATURE'] = "\n-- \n" . $signature . "\n";

$this->replacements['html'] = array(
'DATE' => '<i>' . hsc(dformat()) . '</i>',
Expand All @@ -634,10 +635,24 @@ protected function prepareTokenReplacements() {
'USER' => hsc($INPUT->server->str('REMOTE_USER')),
'NAME' => hsc($INFO['userinfo']['name']),
'MAIL' => '<a href="mailto:"' . hsc($INFO['userinfo']['mail']) . '">' .
hsc($INFO['userinfo']['mail']) . '</a>',
'EMAILSIGNATURE' => hsc($lang['email_signature']) . ':<br />' .
'<a href="' . DOKU_URL . '">' . DOKU_URL . '</a>',
hsc($INFO['userinfo']['mail']) . '</a>'
);
$signature = $lang['email_signature_text'];
if(!empty($lang['email_signature_html'])) {
$signature = $lang['email_signature_html'];
}
$signature = str_replace(
array(
'@DOKUWIKIURL@',
"\n"
),
array(
$this->replacements['html']['DOKUWIKIURL'],
'<br />'
),
$signature
);
$this->replacements['html']['EMAILSIGNATURE'] = $signature;
}

/**
Expand Down
3 changes: 2 additions & 1 deletion inc/lang/ar/lang.php
Expand Up @@ -345,4 +345,5 @@
$lang['searchresult'] = 'نتيجة البحث';
$lang['plainhtml'] = 'نص HTML غير منسق';
$lang['wikimarkup'] = 'علامات الوكي';
$lang['email_signature'] = 'أنشئت هذه الرسالة من دوكو ويكي في';
$lang['email_signature_text'] = 'أنشئت هذه الرسالة من دوكو ويكي في
@DOKUWIKIURL@';
3 changes: 2 additions & 1 deletion inc/lang/az/lang.php
Expand Up @@ -213,4 +213,5 @@
$lang['hours'] = '%d saat əvvəl';
$lang['minutes'] = '%d dəqiqə əvvəl';
$lang['seconds'] = '%d saniyə əvvəl';
$lang['email_signature'] = 'DokuWiki aşağıdakı adresdə yerləşir';
$lang['email_signature_text'] = 'DokuWiki aşağıdakı adresdə yerləşir
@DOKUWIKIURL@';
5 changes: 3 additions & 2 deletions inc/lang/bg/lang.php
Expand Up @@ -2,7 +2,7 @@

/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
*
* @author Nikolay Vladimirov <nikolay@vladimiroff.com>
* @author Viktor Usunov <usun0v@mail.bg>
* @author Kiril <neohidra@gmail.com>
Expand Down Expand Up @@ -334,4 +334,5 @@
$lang['currentns'] = 'Текущо именно пространство';
$lang['searchresult'] = 'Резултати от търсенето';
$lang['plainhtml'] = 'Обикновен HTML';
$lang['email_signature'] = 'Писмото е генерирано от DokuWiki на адрес';
$lang['email_signature_text'] = 'Писмото е генерирано от DokuWiki на адрес
@DOKUWIKIURL@';
4 changes: 3 additions & 1 deletion inc/lang/ca-valencia/lang.php
Expand Up @@ -218,4 +218,6 @@
$lang['hours'] = 'fa %d hores';
$lang['minutes'] = 'fa %d minuts';
$lang['seconds'] = 'fa %d segons';
$lang['email_signature'] = 'Este correu ha segut generat per DokuWiki en';
$lang['email_signature_text'] = 'Este correu ha segut generat per DokuWiki en
@DOKUWIKIURL@';

3 changes: 2 additions & 1 deletion inc/lang/ca/lang.php
Expand Up @@ -331,7 +331,8 @@
$lang['media_perm_upload'] = 'No teniu permisos suficients per a pujar arxius';
$lang['media_update'] = 'Puja la nova versió';
$lang['media_restore'] = 'Restaura aquesta versió';
$lang['email_signature'] = 'Aquest mail ha estat generat per DokuWiki a';
$lang['email_signature_text'] = 'Aquest mail ha estat generat per DokuWiki a
@DOKUWIKIURL@';
$lang['currentns'] = 'Espai de noms actual';
$lang['searchresult'] = 'Resultats cerca';
$lang['plainhtml'] = 'HTML pla';
5 changes: 3 additions & 2 deletions inc/lang/cs/lang.php
Expand Up @@ -2,7 +2,7 @@

/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
*
* @author Bohumir Zamecnik <bohumir@zamecnik.org>
* @author Tomas Valenta <t.valenta@sh.cvut.cz>
* @author Tomas Valenta <tomas@valenta.cz>
Expand Down Expand Up @@ -353,4 +353,5 @@
$lang['wikimarkup'] = 'Wiki jazyk';
$lang['page_nonexist_rev'] = 'Stránka neexistovala na %s. Byla vytvořena dodatečne na <a href="%s">%s</a>.';
$lang['unable_to_parse_date'] = 'Nelze rozebrat parametr "%s".';
$lang['email_signature'] = 'Tento e-mail byl automaticky vygenerován systémem DokuWiki';
$lang['email_signature_text'] = 'Tento e-mail byl automaticky vygenerován systémem DokuWiki
@DOKUWIKIURL@';
5 changes: 3 additions & 2 deletions inc/lang/da/lang.php
Expand Up @@ -2,7 +2,7 @@

/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
*
* @author koeppe <koeppe@kazur.dk>
* @author Jon Bendtsen <bendtsen@diku.dk>
* @author Lars Næsbye Christensen <larsnaesbye@stud.ku.dk>
Expand Down Expand Up @@ -350,4 +350,5 @@
$lang['plainhtml'] = 'Ren HTML';
$lang['wikimarkup'] = 'Wiki Opmærkning';
$lang['page_nonexist_rev'] = 'Siden blev ikke fundet ved %s. Den blev efterfølgende oprettet ved <a href="%s">%s</a>.';
$lang['email_signature'] = 'Denne e-mail blev genereret af DokuWiki på';
$lang['email_signature_text'] = 'Denne e-mail blev genereret af DokuWiki på
@DOKUWIKIURL@';
3 changes: 2 additions & 1 deletion inc/lang/de-informal/lang.php
Expand Up @@ -350,7 +350,8 @@
$lang['media_acl_warning'] = 'Diese Liste ist möglicherweise nicht vollständig. Versteckte und durch ACL gesperrte Seiten werden nicht angezeigt.';
$lang['currentns'] = 'Aktueller Namensraum';
$lang['searchresult'] = 'Suchergebnis';
$lang['email_signature'] = 'Diese E-Mail wurde erzeugt vom DokuWiki unter';
$lang['email_signature_text'] = 'Diese E-Mail wurde erzeugt vom DokuWiki unter
@DOKUWIKIURL@';
$lang['plainhtml'] = 'Reines HTML';
$lang['wikimarkup'] = 'Wiki Markup';
$lang['page_nonexist_rev'] = 'Seite existierte nicht an der Stelle %s. Sie wurde an folgende Stelle erstellt: <a href="%s">%s</a>.';
5 changes: 3 additions & 2 deletions inc/lang/de/lang.php
Expand Up @@ -2,7 +2,7 @@

/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
*
* @author Andreas Gohr <andi@splitbrain.org>
* @author Christof <gagi@fin.de>
* @author Anika Henke <anika@selfthinker.org>
Expand Down Expand Up @@ -360,4 +360,5 @@
$lang['wikimarkup'] = 'Wiki Markup';
$lang['page_nonexist_rev'] = 'Die Seite exitiert nicht unter %s. Sie wurde aber unter <a href="%s">%s</a>';
$lang['unable_to_parse_date'] = 'Parameter "%s" kann nicht geparsed werden.';
$lang['email_signature'] = 'Diese E-Mail wurde erzeugt vom DokuWiki unter';
$lang['email_signature_text'] = 'Diese E-Mail wurde erzeugt vom DokuWiki unter
@DOKUWIKIURL@';
3 changes: 2 additions & 1 deletion inc/lang/el/lang.php
Expand Up @@ -326,4 +326,5 @@
$lang['media_update'] = 'Φόρτωση νέας έκδοσης';
$lang['media_restore'] = 'Επαναφορά αυτή της έκδοσης';
$lang['searchresult'] = 'Αποτέλεσμα έρευνας';
$lang['email_signature'] = 'Αυτό το e-mail δημιουργήθηκε αυτόματα από την εφαρμογή DokuWiki στην διεύθυνση';
$lang['email_signature_text'] = 'Αυτό το e-mail δημιουργήθηκε αυτόματα από την εφαρμογή DokuWiki στην διεύθυνση
@DOKUWIKIURL@';
4 changes: 3 additions & 1 deletion inc/lang/en/lang.php
Expand Up @@ -368,5 +368,7 @@
$lang['wikimarkup'] = 'Wiki Markup';
$lang['page_nonexist_rev'] = 'Page did not exist at %s. It was subsequently created at <a href="%s">%s</a>.';
$lang['unable_to_parse_date'] = 'Unable to parse at parameter "%s".';
$lang['email_signature'] = 'This mail was generated by DokuWiki at';
$lang['email_signature_text'] = 'This mail was generated by DokuWiki at
@DOKUWIKIURL@';
$lang['email_signature_html'] = '';
//Setup VIM: ex: et ts=2 :
3 changes: 2 additions & 1 deletion inc/lang/eo/lang.php
Expand Up @@ -337,4 +337,5 @@
$lang['searchresult'] = 'Serĉrezulto';
$lang['plainhtml'] = 'Plena HTML';
$lang['wikimarkup'] = 'Vikiteksto';
$lang['email_signature'] = 'Tiu ĉi mesaĝo kreiĝis de DokuWiki ĉe';
$lang['email_signature_text'] = 'Tiu ĉi mesaĝo kreiĝis de DokuWiki ĉe
@DOKUWIKIURL@';
3 changes: 2 additions & 1 deletion inc/lang/es/lang.php
Expand Up @@ -376,4 +376,5 @@
$lang['wikimarkup'] = 'Etiquetado Wiki';
$lang['page_nonexist_rev'] = 'La página no existía en %s. Por tanto fue creada en <a href="%s">%s</a>.';
$lang['unable_to_parse_date'] = 'Incapaz de evaluar el parámetro "%s".';
$lang['email_signature'] = 'Este mail ha sido generado por DokuWiki en';
$lang['email_signature_text'] = 'Este mail ha sido generado por DokuWiki en
@DOKUWIKIURL@';
3 changes: 2 additions & 1 deletion inc/lang/et/lang.php
Expand Up @@ -333,4 +333,5 @@
$lang['searchresult'] = 'Otsingu tulemus';
$lang['plainhtml'] = 'Liht-HTML';
$lang['wikimarkup'] = 'Wiki märgistus';
$lang['email_signature'] = 'See meil on saadetud DokuWiki poolt';
$lang['email_signature_text'] = 'See meil on saadetud DokuWiki poolt
@DOKUWIKIURL@';
5 changes: 3 additions & 2 deletions inc/lang/eu/lang.php
Expand Up @@ -2,7 +2,7 @@

/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
*
* @author Xabi Ezpeleta <xezpeleta@mendikute.com>
* @author Inko Illarramendi <inko.i.a@gmail.com>
* @author Zigor Astarbe <astarbe@gmail.com>
Expand Down Expand Up @@ -306,4 +306,5 @@
$lang['media_edit'] = '%s editatu';
$lang['media_update'] = 'Bertsio berria igo';
$lang['media_restore'] = 'Bertsio hau berrezarri';
$lang['email_signature'] = 'Email hau DokuWiki erabiliz sortu da';
$lang['email_signature_text'] = 'Email hau DokuWiki erabiliz sortu da
@DOKUWIKIURL@';
3 changes: 2 additions & 1 deletion inc/lang/fa/lang.php
Expand Up @@ -347,6 +347,7 @@
$lang['searchresult'] = 'نتیجه‌ی جستجو';
$lang['plainhtml'] = 'HTML ساده';
$lang['wikimarkup'] = 'نشانه‌گذاری ویکی';
$lang['email_signature'] = 'این ایمیل توسط DokuWiki تولید شده است';
$lang['email_signature_text'] = 'این ایمیل توسط DokuWiki تولید شده است
@DOKUWIKIURL@';
$lang['page_nonexist_rev'] = 'صفحه %s وجود نداشت. این صفحه معاقباً در<a href="%s">%s</a> ایجاد شد.';
$lang['unable_to_parse_date'] = 'امکان تجزیه و تحلیل پارامتر «%s» وجود ندارد.';
3 changes: 2 additions & 1 deletion inc/lang/fi/lang.php
Expand Up @@ -337,4 +337,5 @@
$lang['plainhtml'] = 'pelkkä HTML';
$lang['wikimarkup'] = 'Wiki markup';
$lang['unable_to_parse_date'] = 'Parametrin "%s" jäsennys ei onnistu.';
$lang['email_signature'] = 'Tämän postin loi DokuWiki osoitteessa';
$lang['email_signature_text'] = 'Tämän postin loi DokuWiki osoitteessa
@DOKUWIKIURL@';
3 changes: 2 additions & 1 deletion inc/lang/fo/lang.php
Expand Up @@ -167,4 +167,5 @@
$lang['img_camera'] = 'Fototól:';
$lang['img_keywords'] = 'Evnisorð:';
$lang['authtempfail'] = 'Validering av brúkara virkar fyribils ikki. Um hetta er varandi, fá so samband við umboðsstjóran á hesi wiki.';
$lang['email_signature'] = 'Hesin t-postur var skaptur av DokuWiki á';
$lang['email_signature_text'] = 'Hesin t-postur var skaptur av DokuWiki á
@DOKUWIKIURL@';
5 changes: 3 additions & 2 deletions inc/lang/fr/lang.php
Expand Up @@ -2,7 +2,7 @@

/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
*
* @author Sébastien Bauer <sebastien.bauer@advalvas.be>
* @author Antoine Fixary <antoine.fixary@freesbee.fr>
* @author cumulus <pta-n56@myamail.com>
Expand Down Expand Up @@ -369,4 +369,5 @@
$lang['wikimarkup'] = 'Wiki balise';
$lang['page_nonexist_rev'] = 'La page n\'existait pas le %s. Elle a été créée le <a href="%s">%s</a>.';
$lang['unable_to_parse_date'] = 'Ne peut analyser le paramètre date "%s".';
$lang['email_signature'] = 'Ce courriel a été généré par DokuWiki depuis';
$lang['email_signature_text'] = 'Ce courriel a été généré par DokuWiki depuis
@DOKUWIKIURL@';
3 changes: 2 additions & 1 deletion inc/lang/gl/lang.php
Expand Up @@ -315,4 +315,5 @@
$lang['media_perm_upload'] = 'Sentímolo, non tes permisos suficientes para subir arquivos.';
$lang['media_update'] = 'Subir nova versión';
$lang['media_restore'] = 'Restaurar esta versión';
$lang['email_signature'] = 'Este correo foi xerado polo DokuWiki en';
$lang['email_signature_text'] = 'Este correo foi xerado polo DokuWiki en
@DOKUWIKIURL@';
5 changes: 3 additions & 2 deletions inc/lang/he/lang.php
Expand Up @@ -2,7 +2,7 @@

/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
*
* @author גיא שפר <guysoft@ort.org.il>
* @author Denis Simakov <akinoame1@gmail.com>
* @author Dotan Kamber <kamberd@yahoo.com>
Expand Down Expand Up @@ -349,4 +349,5 @@
$lang['plainhtml'] = 'HTML פשוט';
$lang['page_nonexist_rev'] = 'העמוד לא קיים ב%s. העמוד נוצר במקום זאת ב<a href="%s">%s</a>.';
$lang['unable_to_parse_date'] = 'לא ניתן לפענח פרמטר "%s".';
$lang['email_signature'] = 'הודעת דוא״ל זו נוצרה על ידי ה־DokuWiki הזמין בכתובת';
$lang['email_signature_text'] = 'הודעת דוא״ל זו נוצרה על ידי ה־DokuWiki הזמין בכתובת
@DOKUWIKIURL@';
3 changes: 2 additions & 1 deletion inc/lang/hr/lang.php
Expand Up @@ -341,4 +341,5 @@
$lang['wikimarkup'] = 'Wiki kod';
$lang['page_nonexist_rev'] = 'Stranica ne postoji na %s. Ona je naknadno napravljena na <a href="%s">%s</a>.';
$lang['unable_to_parse_date'] = 'Ne mogu analizirati parametar "%s".';
$lang['email_signature'] = 'Ovaj email je poslan na';
$lang['email_signature_text'] = 'Ovaj email je poslan na
@DOKUWIKIURL@';
5 changes: 3 additions & 2 deletions inc/lang/hu-formal/lang.php
Expand Up @@ -2,7 +2,7 @@

/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
*
* @author Marina Vladi <deldadam@gmail.com>
*/
$lang['encoding'] = 'utf-8';
Expand All @@ -25,4 +25,5 @@
$lang['btn_revs'] = 'Korábbi változatok';
$lang['btn_recent'] = 'Legújabb változások';
$lang['btn_upload'] = 'Feltöltés';
$lang['email_signature'] = 'Ezt a levelet a DokuWiki generálta';
$lang['email_signature_text'] = 'Ezt a levelet a DokuWiki generálta
@DOKUWIKIURL@';
3 changes: 2 additions & 1 deletion inc/lang/hu/lang.php
Expand Up @@ -345,6 +345,7 @@
$lang['searchresult'] = 'Keresés eredménye';
$lang['plainhtml'] = 'Sima HTML';
$lang['wikimarkup'] = 'Wiki-jelölőnyelv';
$lang['email_signature'] = 'Ezt a levelet a DokuWiki generálta';
$lang['email_signature_text'] = 'Ezt a levelet a DokuWiki generálta
@DOKUWIKIURL@';
$lang['page_nonexist_rev'] = 'A(z) %s oldal nem létezik. Később lett létrehozva a(z) <a href="%s">%s</a> helyen.';
$lang['unable_to_parse_date'] = 'A "%s" paraméter feldolgozása sikertelen.';
3 changes: 2 additions & 1 deletion inc/lang/ia/lang.php
Expand Up @@ -258,4 +258,5 @@
$lang['hours'] = '%d horas retro';
$lang['minutes'] = '%d minutas retro';
$lang['seconds'] = '%d secundas retro';
$lang['email_signature'] = 'Iste message ha essite generate per DokuWiki a';
$lang['email_signature_text'] = 'Iste message ha essite generate per DokuWiki a
@DOKUWIKIURL@';

0 comments on commit 774514c

Please sign in to comment.