4 * Copyright (C) 2005 $ThePhpWikiProgrammingTeam
6 * This file is part of PhpWiki.
8 * PhpWiki is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
13 * PhpWiki is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
18 * You should have received a copy of the GNU General Public License along
19 * with PhpWiki; if not, write to the Free Software Foundation, Inc.,
20 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
23 require_once 'lib/plugin/WikiBlog.php';
26 * BlogJournal - Include the latest blog entries for the current users blog if signed,
27 * or the ADMIN_USER's Blog if not.
28 * UnfoldSubpages for blogs.
29 * Rui called this plugin "JournalLast", but this was written completely independent,
30 * without having seen the src.
32 * @author: Reini Urban
34 class WikiPlugin_BlogJournal
35 extends WikiPlugin_WikiBlog
37 function getDescription()
39 return _("Include latest blog entries for the current or ADMIN user.");
42 function getDefaultArguments()
44 return array('count' => 7,
46 'order' => 'reverse', // latest first
52 function run($dbi, $argstr, &$request, $basepage)
54 if (is_array($argstr)) { // can do with array also.
56 if (!isset($args['order'])) $args['order'] = 'reverse';
58 $args = $this->getArgs($argstr, $request);
60 $user = $request->getUser();
61 if (empty($args['user'])) {
62 if ($user->isAuthenticated()) {
63 $args['user'] = $user->UserName();
68 if (!$args['user'] or $args['user'] == ADMIN_USER) {
69 if (BLOG_DEFAULT_EMPTY_PREFIX) {
70 $args['user'] = ''; // "Blogs/day" pages
72 $args['user'] = ADMIN_USER; // "Admin/Blogs/day" pages
75 $parent = (empty($args['user']) ? '' : $args['user'] . SUBPAGE_SEPARATOR);
77 $prefix = $base = $parent . $this->blogPrefix('wikiblog');
79 $prefix .= (SUBPAGE_SEPARATOR . $args['month']);
80 $pages = $dbi->titleSearch(new TextSearchQuery("^" . $prefix . SUBPAGE_SEPARATOR, true, 'posix'));
83 while (($page = $pages->next()) and $i < $args['count']) {
84 $rev = $page->getCurrentRevision(false);
85 if ($rev->get('pagetype') != 'wikiblog') continue;
87 $blog = $this->_blog($rev);
88 //$html->pushContent(HTML::h3(WikiLink($page, 'known', $rev->get('summary'))));
89 $html->pushContent($rev->getTransformedContent('wikiblog'));
91 if ($args['user'] == $user->UserName() or $args['user'] == '')
92 $html->pushContent(Button(array('action' => 'WikiBlog',
94 _("New entry"), $base));
96 return HTML(HTML::h3(_("No Blog Entries")), $html);
97 if (!$args['noheader'])
98 return HTML(HTML::h3(sprintf(_("Blog Entries for %s:"), $this->monthTitle($args['month']))),
109 // c-hanging-comment-ender-p: nil
110 // indent-tabs-mode: nil