]> CyberLeo.Net >> Repos - SourceForge/phpwiki.git/blob - lib/plugin/TitleSearch.php
Moved description from html template into plugins.
[SourceForge/phpwiki.git] / lib / plugin / TitleSearch.php
1 <?php // -*-php-*-
2 rcs_id('$Id: TitleSearch.php,v 1.3 2001-12-15 10:55:16 carstenklapp Exp $');
3
4 require_once('lib/TextSearchQuery.php');
5
6 /**
7  */
8 class WikiPlugin_TitleSearch
9 extends WikiPlugin
10 {
11     var $name = 'TitleSearch';
12     var $description = 'TitleSearch';
13     
14     function getDefaultArguments() {
15         return array('s'                => false,
16                      'auto_redirect'    => false,
17                      'noheader'         => false);
18     }
19
20     function getDefaultFormArguments() {
21         $defaults = parent::getDefaultFormArguments();
22         $defaults['description'] = 'Title Search';
23         return $defaults;
24     }
25     
26     function run($dbi, $argstr, $request) {
27
28         $args = $this->getArgs($argstr, $request);
29         if (empty($args['s']))
30             return '';
31
32         extract($args);
33         
34         $query = new TextSearchQuery($s);
35         $pages = $dbi->titleSearch($query);
36         $lines = array();
37         while ($page = $pages->next()) {
38             $name = $page->getName();
39             $lines[] = Element('li', LinkExistingWikiWord($name));
40             $last_name = $name;
41         }
42
43         if ($auto_redirect && count($lines) == 1)
44             $request->redirect(WikiURL($last_name));
45
46         $html = '';
47         if (!$noheader)
48             $html .= QElement('p',
49                               sprintf(gettext("Title search results for '%s'"), $s));
50         if ($lines)
51             $html .= Element('ul', join("\n", $lines));
52         else
53             $html .= Element('dl', QElement('dd', gettext("<no matches>")));
54         
55         return $html;
56     }
57 };
58         
59 // Local Variables:
60 // mode: php
61 // tab-width: 8
62 // c-basic-offset: 4
63 // c-hanging-comment-ender-p: nil
64 // indent-tabs-mode: nil
65 // End:   
66 ?>