Pagelist Recent Changes

Summary: A recent changes page created using Page lists
Version: 1.0
Prerequisites: 2.2.0
Status: Mature
Maintainer: Simon
Categories: PageList, MarkupOnly
Users: +1 (view / edit)

Questions answered by this recipe

  • How do I roll my own recent changes page?
  • How can I gain more control over the recent changes I display?

Description

Using a pagelist to create a recent changes page.

After copying the code, you need to restore the lines, by removing the unnecessary line breaks.

Create a pagelist in Site.LocalTemplates as follows

#recentlychanged

>>comment<<
[[#recentlychanged]]
(:template defaults trail=Site.AllRecentChanges:)
(:template first:)
||width=* 
||!Page ||! Time||!By ||!Change ||
(:template each:)
||''[[{=$FullName} | {=$Groupspaced}.{=$Namespaced}]]'' || [[{=$FullName}?action=diff | {=$LastModified}]]||(:if !equal {=$LastModifiedBy}:)[[~{=$LastModifiedBy}]](:ifend:) ||{=$LastModifiedSummary} ||
[[#recentlychangedend]]
>>font-size:smaller<<

(:pagelist fmt=#recentlychanged count=12:)

(:template defaults trail=Site.AllRecentChanges:) (:template first:)

PageTimeByChange

(:template each:)

{=$Groupspaced}.{=$Namespaced}?{=$LastModified}{=$LastModifiedBy}?{=$LastModifiedSummary}

Add the pagelist to the page of your choice, specifying group, name, count, etc pagelist parameters

(:pagelist fmt=#recentlychanged)

Please note that it is very much faster and less heavy for PmWiki to use trail=Group.RecentChanges count=7 instead of group=Group order=-time count=7. To list all 7 most recent changes, you could have trail=Site.AllRecentChanges count=7. --Petko April 21, 2009, at 06:50 PM

fmt=#recentchanges

>>comment<<
[[#recentchanges]]
(:template defaults order=-time name=-GroupAttributes,-Site.AllRecentChanges,-Site.LastChanged,-RecentChanges,-RecentUploads,-SiteAdmin.Blocklist-*:)
(:template first:)
||width=* 
||!Page ||! Time||!By ||!Change ||
(:template each:)
||''[[{=$FullName} | {=$Groupspaced}.{=$Namespaced}]]'' || [[{=$FullName}?action=diff | {=$LastModified}]]||(:if !equal {=$LastModifiedBy}:)[[~{=$LastModifiedBy}]](:ifend:) ||{=$LastModifiedSummary} ||
[[#recentchangesend]]
>>font-size:smaller<<

(:pagelist group={*$Group} fmt=#recentchanges count=7:)

(:template defaults order=-time name=-GroupAttributes,-Site.AllRecentChanges,-Site.LastChanged,-RecentChanges,-RecentUploads,-SiteAdmin.Blocklist-*:) (:template first:)

PageTimeByChange

(:template each:)

{=$Groupspaced}.{=$Namespaced}?{=$LastModified}{=$LastModifiedBy}?{=$LastModifiedSummary}

Add the pagelist to the page of your choice, specifying group, name, count, etc pagelist parameters

(:pagelist fmt=#recentchanges)

This lists differently from the standard Recent Changes as follows

  • it does not display deleted pages
  • it does show all pages that are updated as the result of a change, eg RecentChanges, RecentUploads, LastChanged, AllRecentChanges
  • if there are zero length files in the page store they are all shown as having changed now.
  • it displays other pages that are updated, eg GroupAttributes, Category pages, SiteAdmin,Blocklist-* pages

Release Notes

If the recipe has multiple releases, then release notes can be placed here. Note that it's often easier for people to work with "release dates" instead of "version numbers".

See Also

Contributors

  • Simon

Comments

See discussion at PagelistRecentChanges-Talk?

User notes +1: If you use, used or reviewed this recipe, you can add your name. These statistics appear in the Cookbook listings and will help newcomers browsing through the wiki.