diff options
author | Yorhel <git@yorhel.nl> | 2019-11-15 17:04:41 +0100 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2019-11-15 17:06:23 +0100 |
commit | 34a2d37a7bac141aab6b0c815a17ed75d4ef858e (patch) | |
tree | 87ec011c9281811019c441e92b66c7b009e70681 /lib/VNDB | |
parent | 4580ee0776e4e8a32ec99dc0506625a6e061c854 (diff) |
Move pubskin fetching responsibility to VNWeb::HTML::framework_
Requiring callers to fetch the right fields and pass it along to
framework_() just seems brittle. This implementation requires an extra
query but does make an effort to avoid fetching the skin and css when
it's not needed.
Diffstat (limited to 'lib/VNDB')
-rw-r--r-- | lib/VNDB/DB/Users.pm | 2 | ||||
-rw-r--r-- | lib/VNDB/Handler/Discussions.pm | 4 | ||||
-rw-r--r-- | lib/VNDB/Handler/ULists.pm | 12 |
3 files changed, 8 insertions, 10 deletions
diff --git a/lib/VNDB/DB/Users.pm b/lib/VNDB/DB/Users.pm index 6981d291..2f7d8e5c 100644 --- a/lib/VNDB/DB/Users.pm +++ b/lib/VNDB/DB/Users.pm @@ -11,7 +11,6 @@ our @EXPORT = qw| # %options->{ uid results page what } -# what: pubskin # sort: username registered votes changes tags sub dbUserGet { my $s = shift; @@ -33,7 +32,6 @@ sub dbUserGet { qw|id username c_votes c_changes c_tags hide_list|, VNWeb::DB::sql_user(), # XXX: This duplicates id and username, but updating all the code isn't going to be easy q|extract('epoch' from registered) as registered|, - $o{what} =~ /pubskin/ ? qw|pubskin_can pubskin_enabled customcss skin| : (), ); my($r, $np) = $s->dbPage(\%o, q| diff --git a/lib/VNDB/Handler/Discussions.pm b/lib/VNDB/Handler/Discussions.pm index add0e51c..ac4bd190 100644 --- a/lib/VNDB/Handler/Discussions.pm +++ b/lib/VNDB/Handler/Discussions.pm @@ -389,7 +389,7 @@ sub board { return $self->resNotFound if $f->{_err}; my $obj = !$iid ? undef : - $type eq 'u' ? $self->dbUserGet(uid => $iid, what => 'hide_list pubskin')->[0] : + $type eq 'u' ? $self->dbUserGet(uid => $iid, what => 'hide_list')->[0] : $type eq 'p' ? $self->dbProducerGet(id => $iid)->[0] : $self->dbVNGet(id => $iid)->[0]; return $self->resNotFound if $iid && !$obj; @@ -406,7 +406,7 @@ sub board { asuser => $self->authInfo()->{id}, ); - $self->htmlHeader(title => $title, noindex => 1, feeds => [ $type eq 'an' ? 'announcements' : 'posts' ], $type eq 'u' && $obj ? (pubskin => $obj) : ()); + $self->htmlHeader(title => $title, noindex => 1, feeds => [ $type eq 'an' ? 'announcements' : 'posts' ], type => $type, dbobj => $obj); $self->htmlMainTabs($type, $obj, 'disc') if $iid; form action => '/t/search', method => 'get'; diff --git a/lib/VNDB/Handler/ULists.pm b/lib/VNDB/Handler/ULists.pm index 2c4cb1db..e42a41c0 100644 --- a/lib/VNDB/Handler/ULists.pm +++ b/lib/VNDB/Handler/ULists.pm @@ -117,7 +117,7 @@ sub rlist_e { sub votelist { my($self, $type, $id) = @_; - my $obj = $type eq 'v' ? $self->dbVNGet(id => $id)->[0] : $self->dbUserGet(uid => $id, what => 'hide_list pubskin')->[0]; + my $obj = $type eq 'v' ? $self->dbVNGet(id => $id)->[0] : $self->dbUserGet(uid => $id, what => 'hide_list')->[0]; return $self->resNotFound if !$obj->{id}; my $own = $type eq 'u' && $self->authInfo->{id} && $self->authInfo->{id} == $id; @@ -156,7 +156,7 @@ sub votelist { ); my $title = $type eq 'v' ? "Votes for $obj->{title}" : 'Votes by '.VNWeb::HTML::user_displayname($obj); - $self->htmlHeader(noindex => 1, $type eq 'u' ? (pubskin => $obj) : (), title => $title); + $self->htmlHeader(noindex => 1, type => $type, dbobj => $obj, title => $title); $self->htmlMainTabs($type => $obj, 'votes'); div class => 'mainbox'; h1 $title; @@ -232,7 +232,7 @@ sub wishlist { my($self, $uid) = @_; my $own = $self->authInfo->{id} && $self->authInfo->{id} == $uid; - my $u = $self->dbUserGet(uid => $uid, what => 'hide_list pubskin')->[0]; + my $u = $self->dbUserGet(uid => $uid, what => 'hide_list')->[0]; return $self->resNotFound if !$u || !$own && !(!$u->{hide_list} || $self->authCan('usermod')); my $f = $self->formValidate( @@ -266,7 +266,7 @@ sub wishlist { ); my $title = $own ? 'My wishlist' : VNWeb::HTML::user_displayname($u)."'s wishlist"; - $self->htmlHeader(title => $title, noindex => 1, pubskin => $u); + $self->htmlHeader(title => $title, noindex => 1, type => 'u', dbobj => $u); $self->htmlMainTabs('u', $u, 'wish'); div class => 'mainbox'; h1 $title; @@ -337,7 +337,7 @@ sub vnlist { my($self, $uid) = @_; my $own = $self->authInfo->{id} && $self->authInfo->{id} == $uid; - my $u = $self->dbUserGet(uid => $uid, what => 'hide_list pubskin')->[0]; + my $u = $self->dbUserGet(uid => $uid, what => 'hide_list')->[0]; return $self->resNotFound if !$u || !$own && !(!$u->{hide_list} || $self->authCan('usermod')); my $f = $self->formValidate( @@ -383,7 +383,7 @@ sub vnlist { ); my $title = $own ? 'My visual novel list' : VNWeb::HTML::user_displayname($u)."'s visual novel list"; - $self->htmlHeader(title => $title, noindex => 1, pubskin => $u); + $self->htmlHeader(title => $title, noindex => 1, type => 'u', dbobj => $u); $self->htmlMainTabs('u', $u, 'list'); # url generator |