I have a problem with my DokuWiki installation (Linux, Apache with safemode & DokuWiki-SafeModeHack):
Clicking the "Recent changes" button does not show **all** changes but only the changes of pages
that are in the same namespace as the start page (set with $conf['start']). For example, using
$conf['start'] = 'start:start' and clicking "Recent changes" does only show changes of pages
in the start-namespace. If I add a page id by hand to the URL (e.g. .../doku.php?do=recent&id=wiki:playground),
I can force DokuWiki to only show the changes of the corresponding namespace (in the above case, the wiki-
I suppose this is a bug (and had a different behavior in prior versions - there, **all** changes were
Best wishes - Olli
Sorry, I forgot to include the DokuWiki version in my posting:
DokuWiki version: Release 2005-09-22
PHP version 4.3.11
Bye - Olli
It's not a bug, it's a feature to filter recent changes. The behaviour was changed in summer.
Use ../doku.php?do=recent (without any id) to show all recent changes from any namespace.
But using ../doku.php?do=recent (in my installation) does **not** show all recent changes from any namespace! Insted, it shows only the recent changes from the namespace of the page configured in $conf['start'] (and maybe sub-namespaces of this namespace).
Ah yeah, you're right. If you supply no id, $conf['start'] is used. So supply any id in the top namespace as for example ../doku.php?do=recent&id=start - even if that page does not exist.
But why is it a feature, to let the "Recent changes" button point to ../doku.php?do=recent and therefore show only the recent changes of $conf['start']?
Wouldn't it be better to let the "Recent changes" button point to ../doku.php?do=recent&id=<the current page> to show the recent changes of the **current** namespace (i.e., the namespace where the current page is placed)?
E.g., in my installation I have a "start" namespace ($conf['start'] = 'start:start') and from this intro page you can branch to different namespaces. But with the behavior described above in each one of these namespaces you get only the recent changes of the "start" namespace if you click the "Recent changes" button.
This bug only shows up if you use a start page that's inside a namespace, like 'start:start'. Then getNS() returns the start namespace (since it whacks off the last ':whatever') inside html_recent when it is called to generate the HTML for recent changes, which results in the behaviour shown.
This is why specifying any ID that's a single word without colons in it will give you all recent changes.
If there were some way (a configuration option?) to strip down the initial namespace to nothing when you're doing an html_recent() call for whatever results from "tpl_button('recent')", that would help solve this problem.
No, we don't need an additional option. But maybe DokuWiki should pass the current ID when calling do=recent. Then, all changes in the current namespace and its subspaces get listed.
I found how to fixe this bug :
In the function tpl_button($type)
< print html_btn('recent','','r',array('do' => 'recent'));
> print html_btn('recent',$ID,'r',array('do' => 'recent'));
This is the way it behaves for the index, so maybe this fix should be applied. Andi what do you think?
Fixed namespaces being mistakenly allows in conf['start']. Added link to recent changes in whole wiki to recent changes list of a namespace.