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}

PageTimeByChange
Cookbook.Filterable-TalkJune 07, 2025, at 06:40 PMPetkocustom filterbox (+177)
Cookbook.FoxJune 06, 2025, at 06:40 PMHansBupdate (+1)
Cookbook.BulletinJune 02, 2025, at 02:41 PMPetko2025-06-02a: Allow for bulletin= definitions to be on multiple lines ending with backslash (+28)
Cookbook.Fox CSV-TalkJune 02, 2025, at 09:40 AMPetkoEnableTabs (+111)
Cookbook.Pm SyntaxMay 30, 2025, at 09:45 AMPetko.hwrap, .htext (-5)
Cookbook.B 3May 26, 2025, at 10:55 AMPetko20250526: Fix bug showing draft warning twice. (+270)
Cookbook.Hide DiffMay 22, 2025, at 09:12 PMPetko20250522 Fix a bug that could keep the last diff that was supposed to be expunged. (+85)

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.