/[nn.old]/trunk/search/nn-swish.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

Diff of /trunk/search/nn-swish.cgi

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

revision 73 by dpavlin, Thu Jun 20 07:57:05 2002 UTC revision 83 by dpavlin, Wed Sep 18 10:03:18 2002 UTC
# Line 2  Line 2 
2    
3  use strict;  use strict;
4  use CGI qw/:standard -no_xhtml/;  use CGI qw/:standard -no_xhtml/;
 use Text::Query;  
5  use CGI::Carp qw(fatalsToBrowser);  use CGI::Carp qw(fatalsToBrowser);
6  use SWISH;  use SWISH;
7    use Unicode::String qw(utf8 utf16);
8  require Unicode::Map8;  require Unicode::Map8;
9    
10  my $dir='/home/dpavlin/nn/swish';  my $dir='/home/dpavlin/nn/swish';
11    
12  my $hits=0;  my $hits=0;
13    my $max_hits=100;
14    
15    my %labels = (100=>' 100', 200=>' 200', 500=>' 500', 0=>'neograničeno');
16    
17  print header(-charset=>'iso-8859-2'),start_html(-title=>'NN pretrazivanje',-lang=>'hr'),start_form;  print header(-charset=>'iso-8859-2'),start_html(-title=>'NN pretrazivanje',-lang=>'hr'),start_form;
18  print "Potraži zakone sa riječima: ",textfield('search');  print "Potraži ",popup_menu(-name=>'max_hits',-values=>[ sort keys %labels ],-labels=>\%labels,-default=>$max_hits)," zakona sa riječima: ",textfield('search');
19  print submit(-value=>'prikaži');  print submit(-value=>'prikaži');
20  print end_form,hr;  print end_form,hr;
21    
22  if (param('search')) {  if (param('search')) {
23    
24          my $s=param('search');          my $s;
25            # re-write query from +/- to and/and not
26            foreach (split(/\s+/,param('search'))) {
27                    if (m/^([+-])(\S+)/) {
28                            $s.= ($s) ? "and " : "";
29                            $s.="not " if ($1 eq "-");
30                            $s.="$2* ";
31                    } else {
32                            $s .= "$_* ";
33                    }
34            }
35          $s=~tr/šđžčćŠĐŽČĆ/šđžčćŠĐŽČĆ/;  # 1250 -> iso8859-2          $s=~tr/šđžčćŠĐŽČĆ/šđžčćŠĐŽČĆ/;  # 1250 -> iso8859-2
36          $s=~tr/šŠđĐčČćĆžŽ/sSdDcCcCzZ/;          $s=~tr/šŠđĐčČćĆžŽ/sSdDcCcCzZ/;
37    
38          my $l2_map = Unicode::Map8->new("ISO-8859-2") || die;          my $l2_map = Unicode::Map8->new("ISO-8859-2") || die;
39          #my $utf8_map = Unicode::Map8->new("utf8") || die;          my $us = Unicode::String->new();
40    
41          my $sh = SWISH->connect('Fork',          my $sh = SWISH->connect('Fork',
42                  prog     => "$dir/swish-e",                  prog     => "$dir/swish-e",
# Line 32  if (param('search')) { Line 45  if (param('search')) {
45                  results  => sub {                  results  => sub {
46                          my ($sh,$hit) = @_;                          my ($sh,$hit) = @_;
47    
48                          my $us=$hit->swishtitle;                          $us->utf8($hit->swishtitle);
49    
50                          print "<a href=\"",$hit->swishdocpath,"\"><tt>NN",$hit->god,"/",$hit->br,"</a> ",$hit->nr," </tt>",$hit->swishtitle,"</a> [",$hit->swishrank,"]<br>\n";                          print "<a href=\"",$hit->swishdocpath,"\"><tt>NN",$hit->god,"/",$hit->br,"</a> ",$hit->nr," </tt>",$l2_map->to8($us->utf16),"</a> [",$hit->swishrank,"]<br>\n";
51    
52  #                       print $_[1]->as_string,"<br>\n";  #                       print $_[1]->as_string,"<br>\n";
53  #                       my @fields = $hit->field_names;  #                       my @fields = $hit->field_names;
54  #                       print "Field '$_' = '", $hit->$_, "'<br>\n" for sort @fields;  #                       print "Field '$_' = '", $hit->$_, "'<br>\n" for sort @fields;
55                  },                  },
56                    maxhits => param('max_hits') || $max_hits,
57          );          );
58    
59          die $SWISH::errstr unless $sh;          die $SWISH::errstr unless $sh;
# Line 47  if (param('search')) { Line 61  if (param('search')) {
61          $hits = $sh->query("naslov_czs=($s)");          $hits = $sh->query("naslov_czs=($s)");
62    
63          if ($hits > 0) {          if ($hits > 0) {
64                  print p,hr,"Nađeno je $hits zakona...";                  print p,hr,"Prikazujem $hits zakona (maks. ",param('max_hits') || $max_hits,")... <small>($s)</small>";
65          } else {          } else {
66                  print p,"Nije nađen niti jedan zakon... (",$sh->errstr,")";                  print p,"Nije nađen niti jedan zakon... <small>($s, ",$sh->errstr,")</small>";
67          }          }
68  } else {  } else {
69          print p('Kod pretraživanja pretraživač pronalazi sve zakone u kojima se pojavljuju <b>sve upisanje riječi</b>.',br,'Ako ispred riječi upišete minus (-) neće se prikazivati zakoni koji imaju takvu riječ. Npr. <tt>+kava +zakon -dopunama</tt>');          print p('Kod pretraživanja pretraživač pronalazi sve zakone u kojima se pojavljuju <b>sve upisanje riječi</b>.',br,'Ako ispred riječi upišete minus (-) neće se prikazivati zakoni koji imaju takvu riječ. Npr. <tt>+kava +zakon -dopunama</tt>');
70          print p("Možete pročitati i <a href=\"http://www.rot13.org/~dpavlin/nn.html\">članak</a> o tome kako je ovaj pretraživač napravljen i zašto.");          print p("Možete pročitati i <a href=\"http://www.rot13.org/~dpavlin/nn.html\">članak</a> o tome kako je ovaj pretraživač napravljen i zašto."),p("Ovo je <i>nova i brža verzija pretraživača</i> o kojoj <a href=\"http://www.rot13.org/~dpavlin/nn.html#buducnost\">više možete saznati</a> iz članka.");
71  }  }

Legend:
Removed from v.73  
changed lines
  Added in v.83

  ViewVC Help
Powered by ViewVC 1.1.26