/[webpac2]/trunk/vhost/webpac2.cgi
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /trunk/vhost/webpac2.cgi

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1135 - (show annotations)
Tue Apr 21 23:17:21 2009 UTC (15 years ago) by dpavlin
File size: 1987 byte(s)
 r1776@llin:  dpavlin | 2009-04-22 00:31:55 +0200
 somewhat better design of results

1 #!/usr/bin/perl
2
3 use warnings;
4 use strict;
5
6 use CGI qw/:standard/;
7 use CGI::Carp qw/fatalsToBrowser/;
8 use File::Slurp;
9 use YAML;
10 use Search::Estraier;
11
12 print header;
13
14 sub dump_yaml {
15 my $name = shift;
16 print qq|<pre># $name\n|, YAML::Dump( @_ ), qq|</pre>|;
17 }
18
19 my $path = $ENV{PATH_INFO};
20 my $dir = $0;
21 $dir =~ s{/[^/]+.cgi}{};
22
23 my $config = YAML::LoadFile( "$dir/$path/config.yml" );
24
25 my $database = (keys %{ $config->{databases} })[0];
26 die "$database not in $path" unless $path =~ m{\Q$database\E};
27
28 my $estraier = YAML::LoadFile( "$dir/../var/estraier/$database.yaml" );
29
30 my $db = $config->{databases}->{$database};
31
32 my @attr = keys %{ $estraier->{attr} }; # FIXME replace with real gnerated lookup
33
34 print
35 start_html(
36 -title => $db->{name},
37 -style => '../../style.css',
38 ),
39 h1( $db->{name} ),
40 qq|<div id=description>|, $db->{description}, qq|</div>|,
41 start_form,
42 radio_group(
43 -name => 'attr',
44 -values => [ @attr ],
45 # -linebreak => 0,
46 ),
47 textfield( -name => 'search' ),
48 submit
49 ;
50
51 print end_form;
52
53 if ( my $search = param('search') ) {
54
55 print qq|<div id="results">|;
56
57 my $node = Search::Estraier::Node->new(
58 url => $config->{hyperestraier}->{masterurl} . '/node/' . $database,
59 croak_on_error => 1,
60 );
61
62 my $cond = Search::Estraier::Condition->new;
63 $cond->set_phrase( $search );
64 my $nres = $node->search( $cond, 0 );
65
66 if ( ! $nres ) {
67 my $no_results = "No results for search '%s'";
68 printf qq|<div class="error">$no_results</div>|, $search;
69 } else {
70 my $results = "Got %d results for search '%s'";
71 printf qq|<div class="message">$results</div>|, $nres->hits, $search;
72
73 print qq|<ol>|;
74
75 foreach my $i ( 1 .. $nres->doc_num ) {
76 my $rdoc = $nres->get_doc( $i - 1 );
77 print qq|<li>|;
78 print qq|<div><label>$_</label><span class=$_>|, $rdoc->attr( $_ ), qq|</span></div>|
79 foreach @attr;
80 print qq|</li>\n|;
81 }
82 print qq|</ol>|;
83 }
84 print qq|</div>|;
85 }
86
87 dump_yaml( 'estraier', $estraier );
88 dump_yaml( 'db', $db );
89
90 print end_html;

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC 1.1.26