Ticket #101: Indexer.pm

File Indexer.pm, 880 bytes (added by crschmidt@…, 16 years ago)

search indexer wiki plugin

Line 
1package CGI::Wiki::Plugin::Indexer;
2use strict;
3use CGI::Wiki::Plugin;
4use Data::Dumper;
5
6use vars qw( $VERSION @ISA );
7$VERSION = '0.02';
8@ISA = qw( CGI::Wiki::Plugin );
9
10sub new {
11    my $class = shift;
12    my $self = {};
13    bless $self, $class;
14    return $self;
15}
16
17sub reindex {
18    my ($self, $node, $content, $metadata) = @_;
19    my $search = $self->indexer;
20    my %metadata = %{ $metadata };
21    my $indexText = $content . "\n";
22    foreach my $key ( qw( phone address city postcode website fax summary ) ) {
23            $indexText .= $metadata{$key} . "\n";
24    }
25    foreach my $text (@{ $metadata{category}}) {
26        if ($text) {
27            $indexText .= $text . "\n";
28        }
29    }
30    foreach my $text (@{ $metadata{locale}}) {
31        if ($text) {
32            $indexText .= $text . "\n";
33        }
34    }
35    $search->index_node($node, $indexText);
36    return 1;
37}
381;