]> CyberLeo.Net >> Repos - SourceForge/phpwiki.git/blob - lib/plugin/RecentReferrers.php
php_closing_tag [PSR-2] The closing ?> tag MUST be omitted from files containing...
[SourceForge/phpwiki.git] / lib / plugin / RecentReferrers.php
1 <?php // -*-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 getName () {
33         return _("RecentReferrers");
34     }
35
36     function getDescription () {
37         return _("Analyse access log.");
38     }
39
40     function getDefaultArguments() {
41         return array_merge
42             (
43              PageList::supportedArgs(),
44              array(
45                    'limit'            => 15,
46                    'noheader'      => false,
47                    ));
48     }
49
50     function run($dbi, $argstr, &$request, $basepage) {
51         if (!ACCESS_LOG) {
52             return HTML::div(array('class' => "error"), "Error: no ACCESS_LOG");
53         }
54         $args = $this->getArgs($argstr, $request);
55         $table = HTML::table(array('cellpadding' => 1,
56                                    'cellspacing' => 2,
57                                    'border'      => 0,
58                                    'class'       => 'pagelist'));
59         if (!$args['noheader'] and !empty($args['caption']))
60             $table->pushContent(HTML::caption(array('align'=>'top'), $args['caption']));
61         $logs = array();
62         $limit = $args['limit'];
63         $accesslog =& $request->_accesslog;
64         if ($logiter = $accesslog->get_referer($limit, "external_only")
65             and $logiter->count()) {
66             $table->pushContent(HTML::tr(HTML::th("Target"),HTML::th("Referrer"),
67                                          HTML::th("Host"),HTML::th("Date")));
68             while($logentry = $logiter->next()) {
69                 $table->pushContent(HTML::tr(HTML::td($logentry['request']),
70                                              HTML::td($logentry['referer']),
71                                              HTML::td($logentry['host']),
72                                              HTML::td($logentry['time'])
73                                              ));
74             }
75             return $table;
76         }
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: