/[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 154 by dpavlin, Sat Nov 26 01:54:31 2005 UTC revision 155 by dpavlin, Sat Nov 26 01:54:42 2005 UTC
# Line 12  use WebPAC::Search::Estraier; Line 12  use WebPAC::Search::Estraier;
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 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    
148            $log->die("can't find _template or default from configuration!") unless ($template);
149    
150          $log->debug("using template $template");          $log->debug("using template $template");
151    
152          $c->stash->{html_results} = sub {          $c->stash->{html_results} = sub {
153                  my $res = $webpac->search(                  my $res = $webpac->search(
154                          phrase => $q,                          phrase => $q,
155                          template => $template,                          template => $template,
156                          add_attr => \@attr                          add_attr => \@attr,
157                            get_attr => [ '@uri' ],
158                            max => $c->config->{'hits_on_page'},
159                  );                  );
160          #       $log->debug("controller got " . ( $#{$res} + 1 ) . " results for '$q' " . Dumper( $res ));          #       $log->debug("controller got " . ( $#{$res} + 1 ) . " results for '$q' " . Dumper( $res ));
161                  return $res;                  return $res;

Legend:
Removed from v.154  
changed lines
  Added in v.155

  ViewVC Help
Powered by ViewVC 1.1.26