1: <?php
2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
13: class Wicked_Page_RecentChanges extends Wicked_Page {
14:
15: 16: 17: 18: 19:
20: public $supportedModes = array(
21: Wicked::MODE_CONTENT => true,
22: Wicked::MODE_DISPLAY => true);
23:
24: 25: 26: 27: 28: 29:
30: public function content()
31: {
32: global $wicked;
33:
34: $days = (int)Horde_Util::getGet('days', 3);
35: $summaries = $wicked->getRecentChanges($days);
36:
37: $bydate = array();
38: $changes = array();
39: foreach ($summaries as $page) {
40: $page = new Wicked_Page_StandardPage($page);
41:
42: $createDate = $page->versionCreated();
43: $tm = localtime($createDate, true);
44: $createDate = mktime(0, 0, 0, $tm['tm_mon'], $tm['tm_mday'],
45: $tm['tm_year'], $tm['tm_isdst']);
46:
47: $version_url = Horde_Util::addParameter($page->pageUrl(), 'version',
48: $page->version());
49: $diff_url = Horde_Util::addParameter(Horde::url('diff.php'),
50: array('page' => $page->pageName(),
51: 'v1' => '?',
52: 'v2' => $page->version()));
53: $diff_alt = sprintf(_("Show changes for %s"), $page->version());
54: $diff_img = Horde::img('diff.png', $diff_alt);
55: $pageInfo = array('author' => $page->author(),
56: 'name' => $page->pageName(),
57: 'url' => $page->pageUrl(),
58: 'version' => $page->version(),
59: 'version_url' => $version_url,
60: 'version_alt' => sprintf(_("Show version %s"),
61: $page->version()),
62: 'diff_url' => $diff_url,
63: 'diff_alt' => $diff_alt,
64: 'diff_img' => $diff_img,
65: 'created' => $page->formatVersionCreated(),
66: 'change_log' => $page->changeLog());
67: $bydate[$createDate][$page->versionCreated()] = $pageInfo;
68: }
69: krsort($bydate);
70:
71: foreach ($bydate as $pageList) {
72: krsort($pageList);
73: $pageList = array_values($pageList);
74: $changes[] = array('date' => $pageList[0]['created'],
75: 'pages' => $pageList);
76: }
77:
78: return $changes;
79: }
80:
81: 82: 83: 84: 85: 86:
87: public function displayContents($isBlock)
88: {
89: $template = $GLOBALS['injector']->createInstance('Horde_Template');
90: $template->set('changes', $this->content());
91: return $template->fetch(WICKED_TEMPLATES . '/display/RecentChanges.html');
92: }
93:
94: public function pageName()
95: {
96: return 'RecentChanges';
97: }
98:
99: public function pageTitle()
100: {
101: return _("Recent Changes");
102: }
103:
104: }
105: