]> CyberLeo.Net >> Repos - SourceForge/phpwiki.git/blob - lib/plugin/RecentReferrers.php
getName should not translate
[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('cellpadding' => 1,
55             'cellspacing' => 2,
56             'border' => 0,
57             'class' => 'pagelist'));
58         if (!$args['noheader'] and !empty($args['caption']))
59             $table->pushContent(HTML::caption(array('align' => 'top'), $args['caption']));
60         $limit = $args['limit'];
61         $accesslog =& $request->_accesslog;
62         if ($logiter = $accesslog->get_referer($limit, "external_only")
63             and $logiter->count()
64         ) {
65             $table->pushContent(HTML::tr(HTML::th("Target"), HTML::th("Referrer"),
66                 HTML::th("Host"), HTML::th("Date")));
67             while ($logentry = $logiter->next()) {
68                 $table->pushContent(HTML::tr(HTML::td($logentry['request']),
69                     HTML::td($logentry['referer']),
70                     HTML::td($logentry['host']),
71                     HTML::td($logentry['time'])
72                 ));
73             }
74             return $table;
75         }
76         return HTML::raw('');
77     }
78 }
79
80 // Local Variables:
81 // mode: php
82 // tab-width: 8
83 // c-basic-offset: 4
84 // c-hanging-comment-ender-p: nil
85 // indent-tabs-mode: nil
86 // End: