]> CyberLeo.Net >> Repos - SourceForge/phpwiki.git/blob - lib/plugin/BackLinks.php
Code cleanup:
[SourceForge/phpwiki.git] / lib / plugin / BackLinks.php
1 <?php // -*-php-*-
2 rcs_id('$Id: BackLinks.php,v 1.19 2003-01-18 21:19:25 carstenklapp Exp $');
3 /**
4  Copyright 1999, 2000, 2001, 2002 $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
19  along with PhpWiki; if not, write to the Free Software
20  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
21  */
22
23 /**
24  */
25 require_once('lib/PageList.php');
26
27 class WikiPlugin_BackLinks
28 extends WikiPlugin
29 {
30     function getName() {
31         return _("BackLinks");
32     }
33
34     function getDescription() {
35         return sprintf(_("List all pages which link to %s."), '[pagename]');
36     }
37
38     function getVersion() {
39         return preg_replace("/[Revision: $]/", '',
40                             "\$Revision: 1.19 $");
41     }
42
43     function getDefaultArguments() {
44         return array('exclude'      => '',
45                      'include_self' => 0,
46                      'noheader'     => 0,
47                      'page'         => '[pagename]',
48                      'info'         => false
49                      );
50     }
51     // info arg allows multiple columns
52     // info=mtime,hits,summary,version,author,locked,minor
53     // exclude arg allows multiple pagenames exclude=HomePage,RecentChanges
54
55     function run($dbi, $argstr, $request) {
56         $this->_args = $this->getArgs($argstr, $request);
57         extract($this->_args);
58         if (!$page)
59             return '';
60
61         $exclude = $exclude ? explode(",", $exclude) : array();
62         if (!$include_self)
63             $exclude[] = $page;
64
65         $pagelist = new PageList($info, $exclude);
66
67         $p = $dbi->getPage($page);
68         $pagelist->addPages($p->getLinks());
69
70         if (!$noheader) {
71             $pagelink = WikiLink($page, 'auto');
72
73             if ($pagelist->isEmpty())
74                 return HTML::p(fmt("No pages link to %s.", $pagelink));
75
76             if ($pagelist->getTotal() == 1)
77                 $pagelist->setCaption(fmt("One page links to %s:",
78                                           $pagelink));
79             else
80                 $pagelist->setCaption(fmt("%s pages link to %s:",
81                                           $pagelist->getTotal(), $pagelink));
82         }
83
84         return $pagelist;
85     }
86
87 };
88
89 // $Log: not supported by cvs2svn $
90
91 // For emacs users
92 // Local Variables:
93 // mode: php
94 // tab-width: 8
95 // c-basic-offset: 4
96 // c-hanging-comment-ender-p: nil
97 // indent-tabs-mode: nil
98 // End:
99 ?>