summaryrefslogtreecommitdiff
path: root/lib/VNDB/Func.pm
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2009-03-07 11:10:06 +0100
committerYorhel <git@yorhel.nl>2009-03-07 11:15:45 +0100
commitafd4fa3f408e5644c207e7c4d15f41ff4889904b (patch)
tree8562b09f624ceebc8e7e56a14f584982611dd536 /lib/VNDB/Func.pm
parent37196fc10d36249a525b07c1d74489bf259bde99 (diff)
Cute interface for displaying tag scores
...I could've also just used a gradient background image, which is easier to do and looks better... but I hate solutions that require external resources. >.>
Diffstat (limited to 'lib/VNDB/Func.pm')
-rw-r--r--lib/VNDB/Func.pm32
1 files changed, 30 insertions, 2 deletions
diff --git a/lib/VNDB/Func.pm b/lib/VNDB/Func.pm
index a472d2e2..952f214c 100644
--- a/lib/VNDB/Func.pm
+++ b/lib/VNDB/Func.pm
@@ -5,8 +5,8 @@ use strict;
use warnings;
use YAWF ':html';
use Exporter 'import';
-use POSIX 'strftime';
-our @EXPORT = qw| shorten age date datestr monthstr userstr bb2html gtintype liststat clearfloat cssicon |;
+use POSIX 'strftime', 'ceil', 'floor';
+our @EXPORT = qw| shorten age date datestr monthstr userstr bb2html gtintype liststat clearfloat cssicon tagscore|;
# I would've done this as a #define if this was C...
@@ -237,5 +237,33 @@ sub cssicon {
}
+# Tag score in html tags, argument: score, users
+sub tagscore {
+ my $s = shift;
+ div class => 'taglvl', style => sprintf('width: %.0fpx', ($s-floor($s))*10), ' ' if $s < 0 && $s-floor($s) > 0;
+ for(-3..3) {
+ div(class => "taglvl taglvl0", sprintf '%.1f', $s), next if !$_;
+ if($_ < 0) {
+ if($s > 0 || floor($s) > $_) {
+ div class => "taglvl taglvl$_", ' ';
+ } elsif(floor($s) != $_) {
+ div class => "taglvl taglvl$_ taglvlsel", ' ';
+ } else {
+ div class => "taglvl taglvl$_ taglvlsel", style => sprintf('width: %.0fpx', 10-($s-$_)*10), ' ';
+ }
+ } else {
+ if($s < 0 || ceil($s) < $_) {
+ div class => "taglvl taglvl$_", ' ';
+ } elsif(ceil($s) != $_) {
+ div class => "taglvl taglvl$_ taglvlsel", ' ';
+ } else {
+ div class => "taglvl taglvl$_ taglvlsel", style => sprintf('width: %.0fpx', 10-($_-$s)*10), ' ';
+ }
+ }
+ }
+ div class => 'taglvl', style => sprintf('width: %.0fpx', (ceil($s)-$s)*10), ' ' if $s > 0 && ceil($s)-$s > 0;
+}
+
+
1;