2 rcs_id('$Id: RecentChanges.php,v 1.1 2001-09-18 19:19:05 dairiki Exp $');
5 class WikiPlugin_RecentChanges
8 var $name = 'RecentChanges';
10 function getDefaultArguments() {
11 return array('days' => 2,
12 'show_minor' => false,
17 function run($dbi, $argstr, $request) {
18 extract($this->getArgs($argstr, $request));
19 $params = array('include_minor_revisions' => $show_minor,
20 'exclude_major_revisions' => !$show_major,
21 'include_all_revisions' => $show_all);
23 $params['since'] = time() - 24 * 3600 * $days;
24 $html = "<h3>RecentChanges in the last $days days</h3>\n";
27 $html = sprintf("<h3>RecentChanges</h3>\n", $days);
30 $changes = $dbi->mostRecent($params);
33 global $WikiNameRegexp;
38 $diffargs = array('action' => 'diff');
40 while ($rev = $changes->next()) {
41 $created = $rev->get('mtime');
42 $date = strftime($dateformat, $created);
43 $time = strftime("%l:%M %P", $created); // Make configurable.
44 if ($date != $last_date) {
46 $html .= Element('ul', join("\n", $lines));
49 $html .= Element('p',QElement('b', $date));
53 $page = $rev->getPage();
54 $pagename = $page->getName();
57 // FIXME: should set previous, too, if showing only minor or major revs.
59 $diffargs['version'] = $rev->getVersion();
63 array('href' => WikiURL($pagename, $diffargs)),
66 $wikipage = LinkWikiWord($page->getName());
68 $author = $rev->get('author');
69 if (preg_match("/^$WikiNameRegexp\$/", $author))
70 $author = LinkWikiWord($author);
72 $author = htmlspecialchars($author);
74 $summary = $rev->get('summary');
76 $summary = QElement('b', "[$summary]");
78 $lines[] = Element('li',
79 "$diff $wikipage $time $summary ... $author");
82 $html .= Element('ul', join("\n", $lines));
88 // (c-file-style: "gnu")
93 // c-hanging-comment-ender-p: nil
94 // indent-tabs-mode: nil