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
39 return _("BlogJournal");
42 function getDescription()
44 return _("Include latest blog entries for the current or ADMIN user.");
47 function getDefaultArguments()
49 return array('count' => 7,
51 'order' => 'reverse', // latest first
57 function run($dbi, $argstr, &$request, $basepage)
59 if (is_array($argstr)) { // can do with array also.
61 if (!isset($args['order'])) $args['order'] = 'reverse';
63 $args = $this->getArgs($argstr, $request);
65 $user = $request->getUser();
66 if (empty($args['user'])) {
67 if ($user->isAuthenticated()) {
68 $args['user'] = $user->UserName();
73 if (!$args['user'] or $args['user'] == ADMIN_USER) {
74 if (BLOG_DEFAULT_EMPTY_PREFIX) {
75 $args['user'] = ''; // "Blogs/day" pages
77 $args['user'] = ADMIN_USER; // "Admin/Blogs/day" pages
80 $parent = (empty($args['user']) ? '' : $args['user'] . SUBPAGE_SEPARATOR);
82 $prefix = $base = $parent . $this->_blogPrefix('wikiblog');
84 $prefix .= (SUBPAGE_SEPARATOR . $args['month']);
85 $pages = $dbi->titleSearch(new TextSearchQuery("^" . $prefix . SUBPAGE_SEPARATOR, true, 'posix'));
88 while (($page = $pages->next()) and $i < $args['count']) {
89 $rev = $page->getCurrentRevision(false);
90 if ($rev->get('pagetype') != 'wikiblog') continue;
92 $blog = $this->_blog($rev);
93 //$html->pushContent(HTML::h3(WikiLink($page, 'known', $rev->get('summary'))));
94 $html->pushContent($rev->getTransformedContent('wikiblog'));
96 if ($args['user'] == $user->UserName() or $args['user'] == '')
97 $html->pushContent(Button(array('action' => 'WikiBlog',
99 _("New entry"), $base));
101 return HTML(HTML::h3(_("No Blog Entries")), $html);
102 if (!$args['noheader'])
103 return HTML(HTML::h3(sprintf(_("Blog Entries for %s:"), $this->_monthTitle($args['month']))),
114 // c-hanging-comment-ender-p: nil
115 // indent-tabs-mode: nil