2 rcs_id('$Id: BackLinks.php,v 1.16 2002-01-30 22:46:35 carstenklapp Exp $');
6 require_once('lib/PageList.php');
8 class WikiPlugin_BackLinks
12 return _("BackLinks");
15 function getDescription () {
16 return sprintf(_("Get BackLinks for %s"),'[pagename]');
19 function getDefaultArguments() {
20 return array('exclude' => '',
23 'page' => '[pagename]',
27 // info arg allows multiple columns info=mtime,hits,summary,version,author,locked,minor
28 // exclude arg allows multiple pagenames exclude=HomePage,RecentChanges
30 function run($dbi, $argstr, $request) {
31 $this->_args = $this->getArgs($argstr, $request);
32 extract($this->_args);
36 $pagelist = new PageList();
37 $this->_init($page, &$pagelist, $info, $exclude, $include_self);
39 $p = $dbi->getPage($page);
40 $backlinks = $p->getLinks();
42 while ($backlink = $backlinks->next()) {
43 $pagelist->addPage($backlink);
47 $pagelink = LinkWikiWord($page);
49 if ($pagelist->isEmpty())
50 return HTML::p(fmt("No pages link to %s.", $pagelink));
52 if ($pagelist->getTotal() == 1)
53 $pagelist->setCaption(fmt("1 page links to %s:",
56 $pagelist->setCaption(fmt("%s pages link to %s:",
57 $pagelist->getTotal(), $pagelink));
59 $pagelist->setMessageIfEmpty('');
65 function _init(&$page, &$pagelist, $info = '', $exclude = '', $include_self = '') {
67 foreach (explode(",", $info) as $col)
68 $pagelist->insertColumn($col);
71 foreach (explode(",", $exclude) as $excludepage)
72 $pagelist->excludePageName($excludepage);
74 $pagelist->excludePageName($page);
84 // c-hanging-comment-ender-p: nil
85 // indent-tabs-mode: nil