]> CyberLeo.Net >> Repos - SourceForge/phpwiki.git/blob - lib/plugin/RecentReferrers.php
Use CSS
[SourceForge/phpwiki.git] / lib / plugin / RecentReferrers.php
1 <?php
2
3 /*
4  * Copyright (C) 2004 $ThePhpWikiProgrammingTeam
5  *
6  * This file is part of PhpWiki.
7  *
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.
12  *
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.
17  *
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.
21  */
22
23 /**
24  * Analyze our ACCESS_LOG
25  * Check HTTP_REFERER
26  *
27  */
28 include_once 'lib/PageList.php';
29
30 class WikiPlugin_RecentReferrers extends WikiPlugin
31 {
32     function getDescription()
33     {
34         return _("Analyse access log.");
35     }
36
37     function getDefaultArguments()
38     {
39         return array_merge
40         (
41             PageList::supportedArgs(),
42             array(
43                 'limit' => 15,
44                 'noheader' => false,
45             ));
46     }
47
48     function run($dbi, $argstr, &$request, $basepage)
49     {
50         if (!ACCESS_LOG) {
51             return HTML::div(array('class' => "error"), "Error: no ACCESS_LOG");
52         }
53         $args = $this->getArgs($argstr, $request);
54         $table = HTML::table(array('class' => 'pagelist'));
55         if (!$args['noheader'] and !empty($args['caption']))
56             $table->pushContent(HTML::caption(array('align' => 'top'), $args['caption']));
57         $limit = $args['limit'];
58         $accesslog =& $request->_accesslog;
59         if ($logiter = $accesslog->get_referer($limit, "external_only")
60             and $logiter->count()
61         ) {
62             $table->pushContent(HTML::tr(HTML::th("Target"), HTML::th("Referrer"),
63                 HTML::th("Host"), HTML::th("Date")));
64             while ($logentry = $logiter->next()) {
65                 $table->pushContent(HTML::tr(HTML::td($logentry['request']),
66                     HTML::td($logentry['referer']),
67                     HTML::td($logentry['host']),
68                     HTML::td($logentry['time'])
69                 ));
70             }
71             return $table;
72         }
73         return HTML::raw('');
74     }
75 }
76
77 // Local Variables:
78 // mode: php
79 // tab-width: 8
80 // c-basic-offset: 4
81 // c-hanging-comment-ender-p: nil
82 // indent-tabs-mode: nil
83 // End: