diff options
Diffstat (limited to 'lib/VNDB/Handler/Tags.pm')
-rw-r--r-- | lib/VNDB/Handler/Tags.pm | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/lib/VNDB/Handler/Tags.pm b/lib/VNDB/Handler/Tags.pm index 521d4fc8..a8558575 100644 --- a/lib/VNDB/Handler/Tags.pm +++ b/lib/VNDB/Handler/Tags.pm @@ -17,6 +17,7 @@ YAWF::register( qr{v([1-9]\d*)/tagmod}, \&vntagmod, qr{u([1-9]\d*)/tags}, \&usertags, qr{g}, \&tagindex, + qr{g/debug}, \&fulltree, qr{xml/tags\.xml}, \&tagxml, ); @@ -34,7 +35,7 @@ sub tagpage { { name => 'm', required => 0, default => -1, enum => [qw|0 1 2|] }, ); return 404 if $f->{_err}; - my $tagspoil = $self->reqCookie('tagspoil'); + my $tagspoil = $self->reqCookie($self->{cookie_prefix}.'tagspoil'); $f->{m} = $tagspoil =~ /^[0-2]$/ ? $tagspoil : 0 if $f->{m} == -1; my($list, $np) = $t->{meta} || $t->{state} != 2 ? ([],0) : $self->dbVNGet( @@ -591,6 +592,36 @@ sub tagindex { } +# non-translatable debug page +sub fulltree { + my $self = shift; + return $self->htmlDenied if !$self->authCan('tagmod'); + + my $e; + $e = sub { + my $lst = shift; + ul style => 'list-style-type: none; margin-left: 15px'; + for (@$lst) { + li; + txt '> '; + a href => "/g$_->{id}", $_->{name}; + b class => 'grayedout', " ($_->{c_vns})" if $_->{c_vns}; + end; + $e->($_->{sub}) if $_->{sub}; + } + end; + }; + + my $tags = $self->dbTagTree(0, 25); + $self->htmlHeader(title => '[DEBUG] Tag tree', noindex => 1); + div class => 'mainbox'; + h1 '[DEBUG] Tag tree'; + $e->($tags); + end; + $self->htmlFooter; +} + + sub tagxml { my $self = shift; |