/[webpac2]/Webpacus/lib/Webpacus/Controller/Search.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /Webpacus/lib/Webpacus/Controller/Search.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 153 by dpavlin, Sat Nov 26 01:54:31 2005 UTC revision 160 by dpavlin, Sat Nov 26 16:22:08 2005 UTC
# Line 7  use base 'Catalyst::Controller'; Line 7  use base 'Catalyst::Controller';
7  use Data::Dumper;  use Data::Dumper;
8    
9  use lib '/data/webpac2/lib';  use lib '/data/webpac2/lib';
10  use WebPAC::Search::Estraier;  use WebPAC::Search::Estraier 0.03;
11    
12    
13  =head1 NAME  =head1 NAME
14    
15  Webpacus::Controller::Search - Catalyst Controller  Webpacus::Controller::Search - Search WebPAC data
16    
17  =head1 SYNOPSIS  =head1 SYNOPSIS
18    
19  See L<Webpacus>  See L<WebPAC>, L<Webpacus>
20    
21  =head1 DESCRIPTION  =head1 DESCRIPTION
22    
23  Catalyst Controller for autocompleting search fields.  Catalyst Controller for search fields Hyper Estraier
24    
25  =head1 METHODS  =head1 METHODS
26    
# Line 39  sub default : Private { Line 39  sub default : Private {
39    
40  Returns results for URLs like C<search/suggest/FieldName>  Returns results for URLs like C<search/suggest/FieldName>
41    
42    It will return field from URL (C<FieldName> in example>) and use
43    same filed in paramerers (comming from form or URL) or if it doesn't
44    exist field named C<all>.
45    
46  =cut  =cut
47    
48  sub suggest : Regex('^search/suggest/*([^/]*)') {  sub suggest : Regex('^search/suggest/*([^/]*)') {
# Line 48  sub suggest : Regex('^search/suggest/*([ Line 52  sub suggest : Regex('^search/suggest/*([
52    
53          my $log = $c->log;          my $log = $c->log;
54    
55          my $est_conf = $c->config->{hyperestraier};          my $webpac = $c->comp('Model::WebPAC');
         $est_conf->{log} = $c->log;  
   
         my $est = new WebPAC::Search::Estraier( %{ $est_conf } );  
56    
57          my $q = $c->req->params->{$what} ||          my $q = $c->req->params->{$what} ||
58                  $c->req->params->{all} || $c->res->output("no results");                  $c->req->params->{all} || $c->res->output("no results");
# Line 59  sub suggest : Regex('^search/suggest/*([ Line 60  sub suggest : Regex('^search/suggest/*([
60    
61          $log->info("search for '$q' in $what\n");          $log->info("search for '$q' in $what\n");
62    
63          my $max = $est_conf->{'hits_for_suggest'};          my $max = $c->config->{'hits_for_suggest'};
64          if (! $max) {          if (! $max) {
65                  $log->info("hits_for_suggest isn't defined, defaulting to 10");                  $log->info("hits_for_suggest isn't defined, defaulting to 10");
66                  $c->config->{'hits_for_suggest'} = 10;                  $c->config->{'hits_for_suggest'} = 10;
67                  $max = 10;                  $max = 10;
68          }          }
69    
70          my @hits = $est->search( phrase => $q, max => $max, get_attr => [ $what ] );          my @hits = $webpac->search(
71                    phrase => $q,
72                    max => $max,
73                    get_attr => [ $what ],
74            );
75    
76          my $used;          my $used;
77          my @suggestions;          my @suggestions;
# Line 89  my $hest_op_regex = qr/(:?\[(:?BW|EW|RX) Line 94  my $hest_op_regex = qr/(:?\[(:?BW|EW|RX)
94    
95  =item results  =item results
96    
97  Mothod which uses C<Model::WebPAC> and returns results for search query  Method which uses C<Model::WebPAC> and returns results for search query
98    
99  =cut  =cut
100    
# Line 138  sub results : Local { Line 143  sub results : Local {
143    
144          my $q = join(" $operator ", @words);          my $q = join(" $operator ", @words);
145    
146          my $template = $params->{'_template'};          my $template = $params->{'_template'} || $c->config->{webpac}->{template};
147          $log->debug("using template $template");  
148            $log->die("can't find _template or default from configuration!") unless ($template);
149    
150            my $hits_on_page = $c->config->{'hyperestraier'}->{'hits_on_page'} || 10;
151    
152            $log->debug("using template $template to produce $hits_on_page results");
153    
154          $c->stash->{html_results} = sub {          $c->stash->{html_results} = sub {
155                  my $res = $webpac->search(                  my $res = $webpac->search(
156                          phrase => $q,                          phrase => $q,
157                          template => $template,                          template => $template,
158                          add_attr => \@attr                          add_attr => \@attr,
159                            get_attr => [ '@uri' ],
160                            max => $hits_on_page,
161                            page => $params->{'_page'},
162                  );                  );
163          #       $log->debug("controller got " . ( $#{$res} + 1 ) . " results for '$q' " . Dumper( $res ));  #               $log->debug("controller got " . ( $#{$res} + 1 ) . " results for '$q' " . Dumper( $res ));
164                  return $res;                  return $res;
165          };          };
166    
167          $c->stash->{phrase} = $q;          $c->stash->{phrase} = $q;
168          $c->stash->{attr} = \@attr;          $c->stash->{attr} = \@attr;
169            $c->stash->{page} = $params->{'_page'};
170            $c->stash->{hits_on_page} = $hits_on_page;
171    
172          $c->stash->{template} = 'results.tt';          $c->stash->{template} = 'results.tt';
173  }  }

Legend:
Removed from v.153  
changed lines
  Added in v.160

  ViewVC Help
Powered by ViewVC 1.1.26