'RebuildRC')); function RebuildRC($pagename) { global $RecentChangesFmt, $PCache, $TimeFmt, $CurrentTime, $AuthorLink, $Author, $ChangeSummary, $RebuildRCPattern, $FmtPV, $WikiDir, $PageStartFmt, $PageEndFmt; $page = RetrieveAuthPage($pagename, 'admin', true, READPAGE_CURRENT); if(!$page) Abort('No permissions to rebuild RecentChanges.'); $out = "markup:* Getting list of pages...\n"; SDV($RebuildRCPattern, '*.*,-*.RecentChanges,-*.AllRecentChanges'); $allpages = ListPages($RebuildRCPattern); sort($allpages); $pagearr = array(); $rcarr = array(); $out .= "** Reading and caching ".count($allpages)." pages...\n"; for($i=0; $i$time) { if(!$pn) continue; $FmtPV['$CurrentTime'] = "strftime(\$GLOBALS['TimeFmt'], $time)"; $Author = @$PCache[$pn]['author']; $FmtPV['$AuthorLink'] = ($Author) ? "'[[~$Author]]'" : '"?"'; $FmtPV['$ChangeSummary'] = "@\$PCache['$pn']['csum']"; $seen = array(); foreach($RecentChangesFmt as $rcfmt=>$pgfmt) { $rcname = FmtPageName($rcfmt,$pn); if (!$rcname) continue; $pgtext = FmtPageName($pgfmt,$pn); if (!$pgtext) continue; if ( @$seen[$rcname]++) continue; @$rcarr[$rcname] .= "$pgtext\n"; } } $out .= "* Writing RecentChanges...\n"; foreach($rcarr as $rcname=>$rctext) { $page = $new = ReadPage($rcname); $new['text'] = $rctext; PostPage($rcname, $page, $new); $out .= "** Written [[$rcname]] ([[$rcname?action=diff|diff]])\n"; } $out .= "Done.\n"; $fmt = array(&$PageStartFmt, &$out, &$PageEndFmt); PrintFmt($pagename, $fmt); }