/[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 934 by dpavlin, Wed Oct 31 11:26:39 2007 UTC revision 943 by dpavlin, Wed Oct 31 14:12:01 2007 UTC
# Line 69  sub take_action { Line 69  sub take_action {
69    
70          my $message =          my $message =
71                  _('Found') . " $total_hits " .                  _('Found') . " $total_hits " .
72                  _('results for') . " '$query' " .                  _('results for') . " '$query'";
73                  _('on field') . ' ' . $search->name;          
74            $message .= " " . _('on field') . ' ' . $search->name if $search->name;
75    
76            $self->result->content(
77                    results => Webpacus::Search::Results->new({
78                            count => $total_hits,
79                            index => $index,
80                    }),
81            );
82    
83            $self->result->message( $message );
84        
85            return 1;
86    }
87    
88    package Webpacus::Search::Results;
89    
90    use strict;
91    use warnings;
92    use base qw( Class::Accessor );
93    __PACKAGE__->mk_accessors( qw(
94            count
95            index
96    ) );
97    
98    use lib '/data/webpac2/lib';
99    use WebPAC::Store;
100    
101          while ( my $hit = $index->fetch_hit_hashref ) {  use Data::Dump qw/dump/;
102                  warn dump($hit);  
103    my $debug = 1;
104    
105    my $store;
106    
107    sub next {
108            my $self = shift;
109    
110            if ( ! $store ) {
111                    $store = WebPAC::Store->new({
112                            debug => $debug,
113                    });
114                    warn "## create WebPAC::Store\n";
115          }          }
116    
117            my $hit = $self->index->fetch_hit_hashref;
118    
119          $self->result->message( $message );          return unless $hit;
120        
121          return 1;          warn "## next hit = ", dump( $hit ) if $debug;
122    
123            my $ds = $store->load_ds(
124                    database => $hit->{database},
125                    input    => $hit->{input},
126                    id       => $hit->{id},
127            );
128    
129            if ( ! $ds ) {
130                    warn "can't find ds for hit ", dump( $hit ), $/ unless $ds;
131                    return;
132            }
133    
134            my $row;
135    
136            foreach my $f ( keys %$ds ) {
137                    $row->{$f} = $ds->{$f}->{display} if defined $ds->{$f}->{display};
138            }
139    
140            return unless $row;
141    
142            $row->{$_} ||= $hit->{$_} foreach ( qw/database input id/ );
143    
144            warn "## next row = ", dump( $row ) if $debug;
145    
146            return $row;
147  }  }
148    
149  1;  1;

Legend:
Removed from v.934  
changed lines
  Added in v.943

  ViewVC Help
Powered by ViewVC 1.1.26