Compatible with DokuWiki
Similar to querychangelog, recent
This plugin allows you to embed a list of recent changes as a simple list into any page.
Download and install the plugin using the Plugin Manager using the following URL. Refer to Plugins on how to install plugins manually.
A public git repository is available at http://github.com/cosmocode/changes
Please report bugs in the bug tracker at http://github.com/cosmocode/changes/issues
Polish — aleks
aleks
2011/11/17 11:05
The list is created using the following syntax:
{{changes>}}
Optionally you can specify a number of parameters that control the scope of the shown changes and the way the list is rendered. By default plugin shows the changes in the entire wiki. To restrict the list of changes to a given namespace and its sub-namespaces you can specify its name either directly or using ns parameter:
{{changes>foo}}
{{changes>ns=foo}}
The ns parameter supports both inclusion and exclusion of the namespaces. If a namespace name starts with a minus sign that namespace will be excluded. Also you can assign a number of namespaces as a comma separated list:
{{changes>ns = -foo}}
{{changes>ns = foo, bar, -bar:baz}}
The first example will show the changes in all namespaces except of “foo”, the second one will include “foo” and “bar” namespaces except of “bar:baz” sub-namespace.
The number of changes that are presented in the list is controlled with count parameter (defaults to 10). The count can also be specified as just a number:
{{changes>15}}
{{changes>count=15}}
It is also possible to control the type of changes shown in the list. By default all types are shown but with type parameter you can restrict the shown changes to a given type. The supported types are create, edit, minor and delete. Multiple types can be specified separated by a comma:
{{changes>type = create}}
{{changes>type = edit, minor}}
You can also filter by user. Multiple users are also separated by comma:
{{changes>user = rauschen}}
{{changes>user = rauschen, andi}}
Filtering by age is possible, too. Just specify the maximum age in seconds (or configure a default in the config).
{{changes>maxage = 500}}
The changes can be rendered either as a simple list (default) or using Pagelist plugin. You have to install the Pagelist plugin separately, if it's not available the simple list is used instead. The renderer is selected with the “render” parameter:
{{changes>render = list}}
{{changes>render = pagelist}}
The renderers can have extra parameters, which can be passed within parenthesis:
{{changes>render = list(signature)}}
{{changes>render = pagelist(header, nouser)}}
{{changes>ns = foo, bar, -bar:baz&render = pagelist}}
The built-in list renderer supports the following parameters:
summary, nosummary — show/hide the change summary.signature, nosignature — show/hide user name and time of the change.By default only the summary is shown. For the list of parameters supported by Pagelist plugin refer to its documentation.
If you want to pass a number of parameters to the plugin they should be separated with an ampersand, for example:
{{changes>foo&15&type=create&user=rauschen}}
The above syntax would display the last 15 pages created by user rauschen inside the “foo” namespace.
Note: The plugin ACL permissions but output is cached with the page it is in until a new change was made. If you're listing ACL dependent changes use the ~~NOCACHE~~ macro in the page you're using this plugin.
I use the changes plugin to show pages recently created in my sidebar (this is like my dashboard - pages I am likely to be working on, or wanting to link to etc), but I hated all the read links from pages I had created and deleted, moved etc. It would be nice if there was an option in the plugin to only show pages that still exist. Anyway I modified the code, by replacing the for function around line 161 in syntax.php to this:
for($i = count($lines)-1; $i >= 0; $i--){
$change = $this->handleChangelogLine($lines[$i], $ns, $type, $user, $seen);
if($change !== false && page_exists($change['id'])){
$changes[] = $change;
// break when we have enough entries
if(++$count >= $num) break;
}
}
return $changes;
I also commented out line 284-286 in the same file, because I didn't want the editing summary (Created, etc).
// if($flags['summary']){
// $R->cdata(' '.$change['sum']);
// }
— houshuanghoushuang
2011/04/30 18:39
I actually had aproblem with this very nice plugin in combination with the indexmenu plugin. When I also include the changes plugin the indexmenu plugin stops updating the js tree. New nodes are no longer directly displayed. Only when the cache expires the js tree is updated. I do not know which plugin makes the problem. Disabling the PARSER_CACHE_USE hook for testing, makes indexmenu work again as expected.
— Philipp 2011/10/19 16:02
Can it possible to update for Angua version?
{{changes>ns = -foo}}
{{changes>ns = foo, bar, -bar:baz}}
Because above syntax with namespace not working. Thanks.