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) ",
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 )