Lingua-NATools

 view release on metacpan or  search on metacpan

cgis/nat-ntd-browse.cgi  view on Meta::CPAN



  $output .= h3("$word ($wcount)");

  $output .= "<table>\n";

  for (sort {$data{$b} <=> $data{$a}} keys %data) {
    $output .= Tr(td({-class=>"box",
		      -style=>style_from_percent($data{$_})},
		     percent($data{$_})),
		  td({-style=>"width: 300px; padding: 0px"},
		     show_table_2($NTD, $_, $dic2, $dic1)));
  }

  $output .= "</table>\n";
  return $output;
}

sub show_table_2 {
  my ($NTD, $id, $dic1, $dic2) = @_;

  my $output = "<table style=\"margin: 0px; width: 100%\">\n";
  my $word = $NTD->word_from_id($dic1, $id);
  my $wcount = $NTD->word_count_by_id($dic1, $id);
  my $data = $NTD->word_vals_by_id($dic1, $id);
  my %data = (@$data);
  my $lang1 = $lang == 0?1:0;

  $output .= Tr(td({-colspan=>2,-class=>"box"},
		   b(a({-href=>"$url?word=$id&dict=$dict&lang=$lang1"},$word)),
		   "($wcount)"));

  for (sort {$data{$b} <=> $data{$a}} keys %data) {
    $output .= Tr(td({-class=>"box",-style=>style_from_percent($data{$_})},percent($data{$_})),
		  td({-class=>"box",-style=>"width: 75%"},
		     a({-href=>"$url?word=$_&dict=$dict&lang=$lang"},
		       $NTD->word_from_id($dic2, $_))));
  }

  $output .= "</table>\n";
  return $output;
}

sub percent {
  my $x = shift;
  $x *= 100;
  return sprintf("%.2f%%", $x);
}

sub style_from_percent {
  my $x = shift;
  if ($x > .75) { return "background-color: #afa" }
  if ($x > .35) { return "background-color: #ffa" }
  return "background-color: #faa"
}

sub form {
  my ($l1,$l2) = @_;
  return start_form .
    p("Search ", textfield('search'), " on ",
      popup_menu(-name    => 'language',
		 -values  => ["Both",$l1,$l2],
		 -default => "Both"), " language(s)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;",
      hidden("dict", $dict),
      submit(" Go! ")) . end_form;
}

__DATA__
<html>
 <head>
  <title>NATools Dictionary Browse</title>
  <style type="text/css">
   a:visited { color: #009; }
   body { font-family: helvetica }
   a { text-decoration: none; }
   a:hover { text-decoration: underline; }
   .box { border: solid 1px #000; padding: 2px; }
   div.header { font-size: small; padding: 2px; border: dotted 1px #999; }
   form {  padding: 3px; background-color: #eee; border: solid 1px #000; margin-top: 4px;}
   input { border: solid 1px #000 }
  </style>
 </head>

 <body>



( run in 1.055 second using v1.01-cache-2.11-cpan-364913b4093 )