History log of /dokuwiki/ (Results 1 – 25 of 10770)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
c651c34b17-Jun-2026 Andreas Gohr <gohr@cosmocode.de>

BacklinksTest: give testLinksInDeletedPages its own page

testLinksInDeletedPages reused test:internallinks, the same page
testInternallink already saves and indexes. Since the data dir is
shared acr

BacklinksTest: give testLinksInDeletedPages its own page

testLinksInDeletedPages reused test:internallinks, the same page
testInternallink already saves and indexes. Since the data dir is
shared across the class, when the re-save and the earlier index land
in the same second, needsIndexing() now (correctly) reports the page
as up to date and addPage() skips reindexing, leaving stale link data.
backlinks('test:internallink') then returned an empty array.

Use a dedicated page (test:deletedlinks) with its own link targets so
the test no longer collides with testInternallink's index state.

show more ...

2cda016617-Jun-2026 Andreas Gohr <gohr@cosmocode.de>

Indexer: signal nothing-to-do via boolean return instead of void

The TaskRunner runs indexing, sitemap, digest and changelog-trim tasks
in sequence and relies on each task returning false when it di

Indexer: signal nothing-to-do via boolean return instead of void

The TaskRunner runs indexing, sitemap, digest and changelog-trim tasks
in sequence and relies on each task returning false when it did no work
so the next one is tried. The indexer rewrite changed addPage(),
deletePage() and renamePage() to return void and only abort via
exceptions, breaking that contract: indexing always looked like work was
done and the following tasks never ran.

Restore the boolean return on these three methods (true when work was
done, false when there was nothing to do) while still using exceptions
to signal errors, and propagate it through TaskRunner::runIndexer().
runIndexer() also no longer forces reindexing on every call.

The legacy compatibility layer is adjusted to match: LegacyIndexer and
idx_addPage() forward the boolean, mapping SearchExceptions back to the
historic error-message/false returns. LegacyIndexer::renamePage()
restores the 'page is not in index' message that the move plugin expects.

Closes #4661

show more ...

79dae64d17-Jun-2026 Andreas Gohr <gohr@cosmocode.de>

Indexer: treat same-second save and index as up to date

needsIndexing() compared the .indexed tag mtime against the page mtime
with <=, so a page that was saved and indexed within the same second wa

Indexer: treat same-second save and index as up to date

needsIndexing() compared the .indexed tag mtime against the page mtime
with <=, so a page that was saved and indexed within the same second was
always reported as still needing indexing. Require the page to be
strictly newer than the index tag instead, so an equal mtime correctly
counts as up to date.

show more ...

5d71952d16-Jun-2026 Andreas Gohr <andi@splitbrain.org>

Translation update (de)

2ff7e61c10-Jun-2026 Andreas Gohr <gohr@cosmocode.de>

fix(indexer): explicitly handle renames

In an attempt to simplify the index handling, the newly refactored
indexer implemented a rename as delete+add sequence.

This had unintended consequences for

fix(indexer): explicitly handle renames

In an attempt to simplify the index handling, the newly refactored
indexer implemented a rename as delete+add sequence.

This had unintended consequences for the move plugin which may move
several pages at once, requiring a working index even while some pages
have already been moved while others still remain at their old location.

Related to #4646

show more ...

c959e5ab07-Jun-2026 splitbrain <86426+splitbrain@users.noreply.github.com>

�� Rector and PHPCS fixes

879510b407-Jun-2026 splitbrain <86426+splitbrain@users.noreply.github.com>

�� Update deleted files

b12755b007-Jun-2026 Andreas Gohr <andi@splitbrain.org>

Make common_pageinfo tests independent of execution order

The pageinfo() tests relied on running in a fixed order: test_editor_and_externaledits
mutated wiki:syntax (changelog entry + file mtime), a

Make common_pageinfo tests independent of execution order

The pageinfo() tests relied on running in a fixed order: test_editor_and_externaledits
mutated wiki:syntax (changelog entry + file mtime), and the other tests relied on
that page being pristine. Move the mutating test to its own page (wiki:dokuwiki) so
the shared per-class data dir stays clean, prime the last_change metadata within each
test instead of across tests, and fix the affected expectations. The suite now passes
in isolation and in random/reverse order.

While here, modernize the file:
- capture the pageinfo() result once instead of calling it twice
- add public/protected visibility markers to all methods
- convert array() to the short [] syntax
- replace the deprecated addLogEntry() with the PageFile API it wraps

show more ...

3e42782802-Jun-2026 Wizzard <wizzardsk@gmail.com>

Translation update (sk)

54e7626029-May-2026 Andreas Gohr <andi@splitbrain.org>

chore: adjust overlong line

7e687fd829-May-2026 Andreas Gohr <andi@splitbrain.org>

fix(auth): scope media ACL checks to the namespace

Media files have no per-file ACLs; permissions must be evaluated against
the namespace they live in. Several call sites passed the raw media ID
to

fix(auth): scope media ACL checks to the namespace

Media files have no per-file ACLs; permissions must be evaluated against
the namespace they live in. Several call sites passed the raw media ID
to auth_quickaclcheck(), so a page-intended exact-ID rule (e.g. on
wiki:secret.png) could silently apply to a media file sharing that ID.

Introduce mediaAclPath() that builds the correct namespace wildcard
path (handling root-namespace media) and route all media-related ACL
checks through it. Also normalize the lone `:X` sentinel variant in
fetch.functions.php to the standard `:*` form.

fixes: #4647

show more ...

6e39b4e328-May-2026 Andreas Gohr <andi@splitbrain.org>

refactor(search): extract LegacyIndexer wrapper for BC contract

Move the deprecated helpers (lookupKey, addMetaKeys, renameMetaValue,
getPID, lookup) off Indexer and into a new LegacyIndexer wrapper

refactor(search): extract LegacyIndexer wrapper for BC contract

Move the deprecated helpers (lookupKey, addMetaKeys, renameMetaValue,
getPID, lookup) off Indexer and into a new LegacyIndexer wrapper. The
wrapper also restores the Doku_Indexer return contract (true|string)
around addPage/deletePage/renamePage/clear so plugins using the legacy
API keep working without try/catch.

idx_get_indexer() now returns the LegacyIndexer; getPages stays on
Indexer because plugins call it directly on Indexer instances.

fixes #4645

show more ...

1dbc46ac27-May-2026 Tzipirigu <tzipirigu.radu25683@gmail.com>

Translation update (ro)

08b5f5eb14-May-2026 Andreas Gohr <andi@splitbrain.org>

fix(authad): avoid warning when initAdLdap is called before opts is populated

$this->opts is initialized as an empty array, so the is_array() guard in
initAdLdap() passed even when no domain had bee

fix(authad): avoid warning when initAdLdap is called before opts is populated

$this->opts is initialized as an empty array, so the is_array() guard in
initAdLdap() passed even when no domain had been loaded yet, producing an
"Undefined array key 'domain'" warning on PHP 8 (e.g. from getUserCount()
called by the Popularity admin page).

Fixes #4501

show more ...

649695ab14-May-2026 Andreas Gohr <andi@splitbrain.org>

fix(infoutils): fix synology os-release file parsing

Only remove comments at the start of the line. Should be enough to make
the file parsable enough for what we need.

Fixes #4572

a5debd1114-May-2026 Andreas Gohr <andi@splitbrain.org>

remove valid_input_set(), inline the only remaining callers

The Input::valid() method on $INPUT already provides the cleaner API
originally requested in #667. The last two callers in Subscribe.php
v

remove valid_input_set(), inline the only remaining callers

The Input::valid() method on $INPUT already provides the cleaner API
originally requested in #667. The last two callers in Subscribe.php
validated against a local $params array (not $_POST/$_GET) and need
to throw a specific exception, so inline a small in_array + throw at
those call sites rather than carry the legacy helper.

The class could probably be made cleaner but that's beyond the scope of
this change.

Closes #667

show more ...

8c65103113-May-2026 Andreas Gohr <andi@splitbrain.org>

Update copyright year in README

36ba8ead12-May-2026 Andreas Gohr <andi@splitbrain.org>

test: add tests to catch #4637

Issue #4637 was fixed in 7686f2030b19f948d2e50df1613ef6592fa44b46 but I
didn't like that no test had caught the issue.

This adds a specific test for the issue as a Ha

test: add tests to catch #4637

Issue #4637 was fixed in 7686f2030b19f948d2e50df1613ef6592fa44b46 but I
didn't like that no test had caught the issue.

This adds a specific test for the issue as a HandlerTest. Additionally a
simple smoke test is added that renders the wiki:syntax page and
inspects the created DOM. It's not comprehensive but might help flagging
similar issue in the future.

show more ...

7686f20312-May-2026 Anna Dabrowska <dabrowska@cosmocode.de>

Fix syntax plugin rendering

Reverse the order in which core modes and plugin modes are handled by the \dokuwiki\Parsing\Handler.
Otherwise only the handle() method of the plugin is called, which is

Fix syntax plugin rendering

Reverse the order in which core modes and plugin modes are handled by the \dokuwiki\Parsing\Handler.
Otherwise only the handle() method of the plugin is called, which is fine for core modes. Syntax plugins need to go through plugin() to actually add their own calls.

show more ...

53307a6b09-May-2026 Andreas Gohr <andi@splitbrain.org>

Delete inc/Search/concept.txt

The contents have been added to the wiki


73dc0a8906-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 ...

8788dbbd06-May-2026 splitbrain <86426+splitbrain@users.noreply.github.com>

�� Rector and PHPCS fixes

0096805f06-May-2026 splitbrain <86426+splitbrain@users.noreply.github.com>

�� Update deleted files

e7ebba4706-May-2026 Andreas Gohr <andi@splitbrain.org>

updated phpseclib dependency

560c606106-May-2026 Andreas Gohr <andi@splitbrain.org>

use new ModeRegistry constant in info plugin

Basically all syntax plugins could now return the constants instead of
plain string, but the info plugin is the only syntax plugin we have
directly in co

use new ModeRegistry constant in info plugin

Basically all syntax plugins could now return the constants instead of
plain string, but the info plugin is the only syntax plugin we have
directly in core.

show more ...

12345678910>>...431