History log of /dokuwiki/inc/Extension/PluginTrait.php (Results 1 – 13 of 13)
Revision Date Author Comments
# b73ece99 10-Jun-2026 Andreas Gohr <andi@splitbrain.org>

Merge branch 'master' into gfm

* master:
�� Rector and PHPCS fixes
�� Update deleted files
Make common_pageinfo tests independent of execution order
Translation update (sk)
chore: adjust o

Merge branch 'master' into gfm

* master:
�� Rector and PHPCS fixes
�� Update deleted files
Make common_pageinfo tests independent of execution order
Translation update (sk)
chore: adjust overlong line
fix(auth): scope media ACL checks to the namespace
refactor(search): extract LegacyIndexer wrapper for BC contract
Translation update (ro)
fix(authad): avoid warning when initAdLdap is called before opts is populated
fix(infoutils): fix synology os-release file parsing
remove valid_input_set(), inline the only remaining callers
Update copyright year in README
fix(mail): keep '&' intact in mailto links with multiple query params

# Conflicts:
# inc/Parsing/ParserMode/Internallink.php

show more ...


# 2e43b799 04-Jun-2026 Andreas Gohr <gohr@cosmocode.de>

Render locale and plugin-bundled text as DokuWiki syntax

Static "intro" text shipped with DokuWiki, templates and plugins —
inc/lang/*/*.txt, template locale files, each plugin's lang/<lc>/*.txt —
i

Render locale and plugin-bundled text as DokuWiki syntax

Static "intro" text shipped with DokuWiki, templates and plugins —
inc/lang/*/*.txt, template locale files, each plugin's lang/<lc>/*.txt —
is authored in DokuWiki syntax. It is a core/plugin asset, not user
content. When an admin configures the wiki for Markdown the DW link and
monospace modes are not loaded, so these files render as literal text:
[[wiki:syntax]] and ''Save'' pairs survive into the HTML.

Pin those entry points to the 'dw' flavour via the override added in the
previous commit:

- p_locale_xhtml() and tpl_locale_xhtml() pass 'dw'.
- PluginTrait::locale_xhtml() passes 'dw'.
- PluginTrait::render_text() / PluginInterface::render_text() gain a
$syntax parameter defaulting to 'dw'. The default is 'dw', not null,
because the method predates GFM and its callers pass DW-syntax strings;
plugins rendering user content opt back into the configured syntax with
render_text($text, 'xhtml', null).

Locale output is now deterministic across a syntax switch, so its caches
get over-invalidated but never under-invalidated — acceptable, as the
locale render path is rare and cheap.

show more ...


# 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