diff options
-rw-r--r-- | lib/VNWeb/Reviews/VNTab.pm | 15 | ||||
-rw-r--r-- | lib/VNWeb/VN/Page.pm | 8 |
2 files changed, 16 insertions, 7 deletions
diff --git a/lib/VNWeb/Reviews/VNTab.pm b/lib/VNWeb/Reviews/VNTab.pm index 92d36a40..e575a6fa 100644 --- a/lib/VNWeb/Reviews/VNTab.pm +++ b/lib/VNWeb/Reviews/VNTab.pm @@ -21,7 +21,7 @@ sub reviews_ { ); div_ class => 'mainbox', sub { - h1_ $mini ? 'Mini reviews' : 'Reviews'; + h1_ $mini ? 'Mini reviews' : 'Full reviews'; debug_ $lst; div_ class => 'reviews', sub { article_ class => 'reviewbox', sub { @@ -64,8 +64,8 @@ sub reviews_ { } -TUWF::get qr{/$RE{vid}/(?<mini>mini)?reviews}, sub { - my $mini = !!tuwf->capture('mini'); +TUWF::get qr{/$RE{vid}/(?<mini>mini|full)?reviews}, sub { + my $mini = !tuwf->capture('mini') ? undef : tuwf->capture('mini') eq 'mini' ? 1 : 0; my $v = db_entry v => tuwf->capture('id'); return tuwf->resNotFound if !$v; VNWeb::VN::Page::enrich_vn($v); @@ -73,8 +73,13 @@ TUWF::get qr{/$RE{vid}/(?<mini>mini)?reviews}, sub { framework_ title => ($mini?'Mini reviews':'Reviews')." for $v->{title}", index => 1, type => 'v', dbobj => $v, hiddenmsg => 1, sub { VNWeb::VN::Page::infobox_($v); - VNWeb::VN::Page::tabs_($v, ($mini?'minireviews':'reviews')); - reviews_ $v, $mini; + VNWeb::VN::Page::tabs_($v, !defined $mini ? 'reviews' : $mini ? 'minireviews' : 'fullreviews'); + if(defined $mini) { + reviews_ $v, $mini; + } else { + reviews_ $v, 1; + reviews_ $v, 0; + } }; }; diff --git a/lib/VNWeb/VN/Page.pm b/lib/VNWeb/VN/Page.pm index a8e5ea80..ae32ecf3 100644 --- a/lib/VNWeb/VN/Page.pm +++ b/lib/VNWeb/VN/Page.pm @@ -398,8 +398,12 @@ sub tabs_ { ul_ sub { li_ class => ($tab eq '' ? ' tabselected' : ''), sub { a_ href => "/v$v->{id}#main", name => 'main', 'main' } if $chars || $reviews; li_ class => ($tab eq 'chars' ? ' tabselected' : ''), sub { a_ href => "/v$v->{id}/chars#chars", name => 'chars', "characters ($chars)" } if $chars; - li_ class => ($tab eq 'minireviews'?' tabselected':''), sub { a_ href => "/v$v->{id}/minireviews#review", name => 'review', "mini reviews ($reviews->{mini})" } if $reviews->{mini}; - li_ class => ($tab eq 'reviews' ? ' tabselected' : ''), sub { a_ href => "/v$v->{id}/reviews#review", name => 'review', "full reviews ($reviews->{full})" } if $reviews->{full}; + if($reviews->{mini} > 4 || $tab eq 'minireviews' || $tab eq 'fullreviews') { + li_ class => ($tab eq 'minireviews'?' tabselected' : ''), sub { a_ href => "/v$v->{id}/minireviews#review", name => 'review', "mini reviews ($reviews->{mini})" } if $reviews->{mini}; + li_ class => ($tab eq 'fullreviews'?' tabselected' : ''), sub { a_ href => "/v$v->{id}/fullreviews#review", name => 'review', "full reviews ($reviews->{full})" } if $reviews->{full}; + } elsif($reviews->{mini} || $reviews->{full}) { + li_ class => ($tab =~ /reviews/ ?' tabselected':''), sub { a_ href => "/v$v->{id}/reviews#review", name => 'review', sprintf 'reviews (%d)', $reviews->{mini}+$reviews->{full} }; + } }; ul_ sub { if(auth && canvote $v) { |