/[webpac2]/Webpacus2/lib/Webpacus/Action/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 /Webpacus2/lib/Webpacus/Action/Search.pm

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

revision 940 by dpavlin, Wed Oct 31 12:34:33 2007 UTC revision 954 by dpavlin, Thu Nov 1 00:17:53 2007 UTC
# Line 11  package Webpacus::Action::Search; Line 11  package Webpacus::Action::Search;
11  use base qw/Webpacus::Action Jifty::Action/;  use base qw/Webpacus::Action Jifty::Action/;
12    
13  use Data::Dump qw/dump/;  use Data::Dump qw/dump/;
14  use Webpacus::Webpac;  # enables start witout this file which is created by WebPAC later
15    eval { require Webpacus::Webpac };
16  use KinoSearch::Simple;  use KinoSearch::Simple;
17    
18  use Jifty::Param::Schema;  use Jifty::Param::Schema;
# Line 71  sub take_action { Line 72  sub take_action {
72                  _('Found') . " $total_hits " .                  _('Found') . " $total_hits " .
73                  _('results for') . " '$query'";                  _('results for') . " '$query'";
74                    
75          $message .= " " . _('on field') . ' ' . $search->name if $search->name;          $message .= " " . _('on field') . ' ' . $search->name if $search;
76    
77          $self->result->content(          $self->result->content(
78                  results => Webpacus::Search::Results->new({                  results => Webpacus::Search::Results->new({
# Line 95  __PACKAGE__->mk_accessors( qw( Line 96  __PACKAGE__->mk_accessors( qw(
96          index          index
97  ) );  ) );
98    
99    use lib '/data/webpac2/lib';
100    use WebPAC::Store;
101    
102  use Data::Dump qw/dump/;  use Data::Dump qw/dump/;
103    
104    my $debug = 1;
105    
106    my $store;
107    
108  sub next {  sub next {
109          my $self = shift;          my $self = shift;
         my $row = $self->index->fetch_hit_hashref;  
110    
111          warn "## next row = ", dump( $row );          if ( ! $store ) {
112                    $store = WebPAC::Store->new({
113                            debug => $debug,
114                    });
115                    warn "## create WebPAC::Store\n";
116            }
117    
118            my $hit = $self->index->fetch_hit_hashref;
119    
120            return unless $hit;
121    
122            warn "## next hit = ", dump( $hit ) if $debug;
123    
124            my $ds = $store->load_ds(
125                    database => $hit->{database},
126                    input    => $hit->{input},
127                    id       => $hit->{id},
128            );
129    
130          return $row;          if ( ! $ds ) {
131                    warn "can't find ds for hit ", dump( $hit ), $/ unless $ds;
132                    return;
133            }
134    
135            my $row;
136    
137            foreach my $f ( keys %$ds ) {
138                    $row->{$f} = $ds->{$f}->{display} if defined $ds->{$f}->{display};
139            }
140    
141            return unless $row;
142    
143            $row->{$_} ||= $hit->{$_} foreach ( qw/database input id/ );
144    
145            warn "## next row = ", dump( $row ) if $debug;
146    
147            return sub {
148                    my $name = shift || die "no name?";
149                    if ( defined $row->{$name} ) {
150                            # XXX disabled, Template::Declare always want scalars :-(
151                            if ( 0 && wantarray ) {
152                                    if ( ref($row->{$name}) eq 'ARRAY' ) {
153                                            return $row->{$name};
154                                    } else {
155                                            return [ $row->{$name} ];
156                                    }
157                            } else {
158                                    if ( ref($row->{$name}) eq 'ARRAY' ) {
159                                            return join(' ', @{ $row->{$name} });
160                                    } else {
161                                            return $row->{$name};
162                                    }
163                            }
164                    }
165                    return;
166            }
167  }  }
168    
169  1;  1;

Legend:
Removed from v.940  
changed lines
  Added in v.954

  ViewVC Help
Powered by ViewVC 1.1.26