[[PageOutline(2-5,Contents,pullout)]]
= List all Wiki Pages with Author and Last Changed Date =
== Description ==
The macro `ListOfWikiPages` prints a table of all (user generated, i.e. non-trac-default) wiki pages with last changed date and author as requested in Request-a-Hack #2427.
Version 0.2 provides also a long format which also includes the newest version number and links to the difference and the history as well as the last comment. This was requested by #4717.
The second macro provided by this package is `LastChangesBy` which prints the last changes made by the given user or the logged-in user if no username is given.
This package now uses the AdvParseArgsPlugin which must also be installed.
== Configuration ==
Put the following into your `trac.ini` configuration file:
{{{
[components]
traclistofwikipages.* = enabled
[listofwikipages]
# Optional list of ignored users, defaults to 'trac' to ignore trac's default wiki pages:
#ignore_users = trac
# Select default format 'long' or 'short'. Defaults to 'short' which is the pre-v0.2 format.
#default_format = long
#default_format = short
}}}
== Bugs/Feature Requests ==
Existing bugs and feature requests for ListOfWikiPagesMacro are
[query:status!=closed&component=ListOfWikiPagesMacro&order=priority here].
If you have any issues, create a [/newticket?component=ListOfWikiPagesMacro&owner=martin_s new ticket].
== Download and Source ==
Download the [download:listofwikipagesmacro zipped source], check out [/svn/listofwikipagesmacro using Subversion from here], or [source:listofwikipagesmacro browse the source] with Trac.
== Examples ==
=== !ListOfWikiPages ===
You can use the `ListOfWikiPages` macro like this:
{{{
[[ListOfWikiPages]] # default format as configured in the config file
[[ListOfWikiPages(format=short)]] # short format
[[ListOfWikiPages(format=long)]] # long format (new v0.2)
}}}
which prints a table of all wiki pages, or with a list of wiki pages:
{{{
[[ListOfWikiPages(ThatWikiPage,ThisWikiPage,AnotherWikiPage,format=...)]]
}}}
Since v0.3 the optional arguments `from` and `to` can be used to specify a time/date range as requested by #5344.
The values of this arguments are taken as negative offsets to the current time (i.e. the time the wiki page is displayed).
Allowed is a number followed by a unit which can be `s`,`m`,`h`,`d`,`w`,`o`,`y` for seconds, minutes, hours, days, weeks, month and years.
If the unit is missing seconds are assumed.
{{{
[[ListOfWikiPages(from=3d)]] # displays all wiki pages changed in the last three days
[[ListOfWikiPages(to=15m)]] # displays all wiki pages was where changed longer than 15 minutes ago
[[ListOfWikiPages(from=4.5w,to=15h)]] # displays all wiki pages was where changed between 4 1/2 week and 15 hours ago
}}}
A headline can be given using a `headline` argument:
{{{
[[ListOfWikiPages(headline=Headline text without any comma)]] # sets a table headline, may not contain '`,`'
}}}
The order can be reversed, i.e. list the oldest wikis first, using:
{{{
[[ListOfWikiPages(order=reverse)]]
}}}
Unwanted wiki ranges (e.g. `Trac*`) can be excluded by the `exclude=pattern` option which can be given multiple times.
The wildcards '`*`' (matches everything) and '`?`' (matches a single character) can be used in the pattern. (Requested by #6074)
{{{
[[ListOfWikiPages(exclude=Trac*,exclude=abc?)]]
}}}
The resulting table looks like this (example links not functional) in the `long` format. The `short` format simply lacks the columns `Version`, `Diff`, `History` and `Comment`.
{{{
#!html
WikiPage | Last Changed At | By | Version | Diff | History |
---|
SandBox | 10/24/09 12:21:21 (98 minutes ago) | martin | 43 | Diff | History | |
test | 10/24/09 05:22:14 (9 hours ago) | martin | 3 | Diff | History | |
TracLinks | 10/21/09 15:05:36 (3 days ago) | martin | 4 | Diff | History | Replaced "raw-attachment:" with "htdoc:dl/". |
}}}
=== !LastChangesBy ===
This macro prints a table similar to the one above only with the ''By'' column missing and the author name in the table head.
{{{
[[LastChangesBy(martin_s)]] # the last 5 changes by user `martin_s`
[[LastChangesBy(martin_s,10)]] # the last 10 changes by user `martin_s`
[[LastChangesBy]] # or
[[LastChangesBy()]] # the last 5 changes by the current user (i.e. every user sees it's own changes, if logged-on)
[[LastChangesBy(,12)]] # the last 12 changes by the current user
[[LastChangesBy(...,format=...]] # Selects `long` or `short` table format
[[LastChangesBy(...,from=..,to=..]] # Selects `from` and `to` time/date range
[[LastChangesBy(...,headline=...]] # Overwrites headline, may not contain `','`
[[LastChangesBy(...,order=reverse]] # Lists the wikis in reverse order. Only really useful with few wikis or with `to`/`from`.
[[LastChangesBy(..,exclude=pattern]] # Excludes wikis matching `pattern`. Wildcards `*` and `?` are supported.
}}}
{{{
#!html
Last 3 changes by martin |
---|
WikiPage | Last Changed At | Version | Diff | History |
---|
SandBox | 10/24/09 12:21:21 (98 minutes ago) | 43 | Diff | History | |
test | 10/24/09 05:22:14 (9 hours ago) | 3 | Diff | History | |
TracLinks | 10/21/09 15:05:36 (3 days ago) | 4 | Diff | History | Replaced "raw-attachment:" with "htdoc:dl/". |
}}}
== Recent Changes ==
[[ChangeLog(listofwikipagesmacro, 3)]]
== Author/Contributors ==
'''Author:''' [wiki:martin_s] [[BR]]
'''Maintainer:''' [wiki:martin_s] [[BR]]
'''Contributors:'''