History log of /dokuwiki/inc/Extension/PluginTrait.php (Results 1 – 11 of 11)
Revision Date Author Comments
# 73dc0a89 06-May-2026 Andreas Gohr <andi@splitbrain.org>

fix(mail): keep '&' intact in mailto links with multiple query params

Move the email-handling helpers (obfuscate, mail_isvalid,
mail_quotedprintable_encode, mail_setup) out of the procedural
inc/mai

fix(mail): keep '&' intact in mailto links with multiple query params

Move the email-handling helpers (obfuscate, mail_isvalid,
mail_quotedprintable_encode, mail_setup) out of the procedural
inc/mail.php into a namespaced dokuwiki\MailUtils class plus a new
Mailer::configInit(), and add a separate MailUtils::obfuscateUrl() for
the mailto-href context.

The xhtml renderer and PluginTrait now build the link label and the
href separately: the address half is run through the mailguard
obfuscation, the query string is preserved verbatim with only HTML
escaping applied. This fixes #1690 — in 'visible' mode the previous
code rawurlencoded the entire address+query, turning '?' into '%3F' and
breaking multi-parameter mailto links; in all modes the query string is
no longer mangled by the [at]/[dot] substitution.

Core call sites (Mailer, auth, LegacyApiCore, common, the xhtml
renderer, the parser, the bundled config/styling/usermanager plugins)
are migrated to MailUtils directly. The old top-level functions and
PREG_PATTERN_VALID_EMAIL constant remain as deprecated shims with
rector mappings.

Tests for obfuscate / mail_isvalid / mail_quotedprintable_encode are
consolidated into a single _test/tests/MailUtilsTest.php and extended
with regression coverage for the multi-parameter, double-escape and
URL-shape cases.

Closes #1690
Replaces #1964

show more ...


# 093fe67e 07-Mar-2026 Andreas Gohr <andi@splitbrain.org>

updated rector and applied it


# 2c978aed 09-Feb-2024 Andreas Gohr <andi@splitbrain.org>

sprintf expects ...args instead of an array. fixes #4193


# e9472a98 06-Feb-2024 Anna Dabrowska <dabrowska@cosmocode.de>

Fix false errors when calling getInfo() from some plugins


# 3d041397 21-Aug-2023 Andreas Gohr <andi@splitbrain.org>

ensure plugin.info.txt data is complete. fixes #4033


# d4f83172 31-Aug-2023 Andreas Gohr <andi@splitbrain.org>

code style: line breaks


# a19c9aa0 30-Aug-2023 Gerrit Uitslag <klapinklapin@gmail.com>

recover comments in list


# dccd6b2b 30-Aug-2023 Andreas Gohr <andi@splitbrain.org>

coding style: function call spacing


# 1490c177 29-Aug-2023 Andreas Gohr <andi@splitbrain.org>

Apply rector fixes to inc/Extension and inc/Debug


# ec34bb30 19-Oct-2022 Andreas Gohr <andi@splitbrain.org>

Update core code to make use of sexplode()

This makes use of our own explode mechanism everywhere were we expect a
fixed number of results.


# e1d9dcc8 15-Jun-2018 Andreas Gohr <andi@splitbrain.org>

First go at moving the plugin classes into their own namespace